From 2fefe16f61e7a1ad37721bbb77f6642cac114487 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Thu, 2 May 2024 00:02:09 +0300 Subject: [PATCH 01/17] init hardhat --- .idea/.gitignore | 8 + .idea/block-accounting.iml | 12 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .../22662767f8b1a09e64d324318d70c2ac.json | 1 + artifacts/contracts/Lock.sol/Lock.dbg.json | 4 + artifacts/contracts/Lock.sol/Lock.json | 74 + cache/solidity-files-cache.json | 41 + contract/.gitignore | 17 + contract/contracts/Lock.sol | 34 + contract/hardhat.config.ts | 14 + contract/ignition/modules/Lock.ts | 17 + contract/package-lock.json | 7346 +++++++++++++++++ contract/package.json | 12 + contract/test/Lock.ts | 127 + contract/tsconfig.json | 11 + typechain-types/Lock.ts | 140 + typechain-types/common.ts | 131 + typechain-types/factories/Lock__factory.ts | 133 + typechain-types/factories/index.ts | 4 + typechain-types/hardhat.d.ts | 63 + typechain-types/index.ts | 6 + 22 files changed, 8209 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/block-accounting.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 artifacts/build-info/22662767f8b1a09e64d324318d70c2ac.json create mode 100644 artifacts/contracts/Lock.sol/Lock.dbg.json create mode 100644 artifacts/contracts/Lock.sol/Lock.json create mode 100644 cache/solidity-files-cache.json create mode 100644 contract/.gitignore create mode 100644 contract/contracts/Lock.sol create mode 100644 contract/hardhat.config.ts create mode 100644 contract/ignition/modules/Lock.ts create mode 100644 contract/package-lock.json create mode 100644 contract/package.json create mode 100644 contract/test/Lock.ts create mode 100644 contract/tsconfig.json create mode 100644 typechain-types/Lock.ts create mode 100644 typechain-types/common.ts create mode 100644 typechain-types/factories/Lock__factory.ts create mode 100644 typechain-types/factories/index.ts create mode 100644 typechain-types/hardhat.d.ts create mode 100644 typechain-types/index.ts diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/block-accounting.iml b/.idea/block-accounting.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/block-accounting.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f557d6e --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/artifacts/build-info/22662767f8b1a09e64d324318d70c2ac.json b/artifacts/build-info/22662767f8b1a09e64d324318d70c2ac.json new file mode 100644 index 0000000..4c3ce8a --- /dev/null +++ b/artifacts/build-info/22662767f8b1a09e64d324318d70c2ac.json @@ -0,0 +1 @@ +{"id":"22662767f8b1a09e64d324318d70c2ac","_format":"hh-sol-build-info-1","solcVersion":"0.8.24","solcLongVersion":"0.8.24+commit.e11b9ed9","input":{"language":"Solidity","sources":{"contracts/Lock.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.24;\n\n// Uncomment this line to use console.log\n// import \"hardhat/console.sol\";\n\ncontract Lock {\n uint public unlockTime;\n address payable public owner;\n\n event Withdrawal(uint amount, uint when);\n\n constructor(uint _unlockTime) payable {\n require(\n block.timestamp < _unlockTime,\n \"Unlock time should be in the future\"\n );\n\n unlockTime = _unlockTime;\n owner = payable(msg.sender);\n }\n\n function withdraw() public {\n // Uncomment this line, and the import of \"hardhat/console.sol\", to print a log in your terminal\n // console.log(\"Unlock time is %o and block timestamp is %o\", unlockTime, block.timestamp);\n\n require(block.timestamp >= unlockTime, \"You can't withdraw yet\");\n require(msg.sender == owner, \"You aren't the owner\");\n\n emit Withdrawal(address(this).balance, block.timestamp);\n\n owner.transfer(address(this).balance);\n }\n}\n"}},"settings":{"evmVersion":"paris","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/Lock.sol":{"ast":{"absolutePath":"contracts/Lock.sol","exportedSymbols":{"Lock":[78]},"id":79,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"39:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"Lock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":78,"linearizedBaseContracts":[78],"name":"Lock","nameLocation":"150:4:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"251c1aa3","id":3,"mutability":"mutable","name":"unlockTime","nameLocation":"173:10:0","nodeType":"VariableDeclaration","scope":78,"src":"161:22:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2,"name":"uint","nodeType":"ElementaryTypeName","src":"161:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"8da5cb5b","id":5,"mutability":"mutable","name":"owner","nameLocation":"212:5:0","nodeType":"VariableDeclaration","scope":78,"src":"189:28:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4,"name":"address","nodeType":"ElementaryTypeName","src":"189:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"public"},{"anonymous":false,"eventSelector":"bf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b93","id":11,"name":"Withdrawal","nameLocation":"230:10:0","nodeType":"EventDefinition","parameters":{"id":10,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"246:6:0","nodeType":"VariableDeclaration","scope":11,"src":"241:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint","nodeType":"ElementaryTypeName","src":"241:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9,"indexed":false,"mutability":"mutable","name":"when","nameLocation":"259:4:0","nodeType":"VariableDeclaration","scope":11,"src":"254:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8,"name":"uint","nodeType":"ElementaryTypeName","src":"254:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"240:24:0"},"src":"224:41:0"},{"body":{"id":36,"nodeType":"Block","src":"309:200:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"340:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"346:9:0","memberName":"timestamp","nodeType":"MemberAccess","src":"340:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19,"name":"_unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"358:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"340:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e6c6f636b2074696d652073686f756c6420626520696e2074686520667574757265","id":21,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"383:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413","typeString":"literal_string \"Unlock time should be in the future\""},"value":"Unlock time should be in the future"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413","typeString":"literal_string \"Unlock time should be in the future\""}],"id":16,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"319:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"319:111:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23,"nodeType":"ExpressionStatement","src":"319:111:0"},{"expression":{"id":26,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"441:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25,"name":"_unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"454:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"441:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27,"nodeType":"ExpressionStatement","src":"441:24:0"},{"expression":{"id":34,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"475:5:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":31,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"491:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"495:6:0","memberName":"sender","nodeType":"MemberAccess","src":"491:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"483:8:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":29,"name":"address","nodeType":"ElementaryTypeName","src":"483:8:0","stateMutability":"payable","typeDescriptions":{}}},"id":33,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"475:27:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":35,"nodeType":"ExpressionStatement","src":"475:27:0"}]},"id":37,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13,"mutability":"mutable","name":"_unlockTime","nameLocation":"288:11:0","nodeType":"VariableDeclaration","scope":37,"src":"283:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12,"name":"uint","nodeType":"ElementaryTypeName","src":"283:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"282:18:0"},"returnParameters":{"id":15,"nodeType":"ParameterList","parameters":[],"src":"309:0:0"},"scope":78,"src":"271:238:0","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":76,"nodeType":"Block","src":"542:463:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"766:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":42,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"772:9:0","memberName":"timestamp","nodeType":"MemberAccess","src":"766:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":43,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"785:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"766:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f752063616e277420776974686472617720796574","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"797:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8","typeString":"literal_string \"You can't withdraw yet\""},"value":"You can't withdraw yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8","typeString":"literal_string \"You can't withdraw yet\""}],"id":40,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"758:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":46,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"758:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47,"nodeType":"ExpressionStatement","src":"758:64:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"840:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"844:6:0","memberName":"sender","nodeType":"MemberAccess","src":"840:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"854:5:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"840:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f75206172656e277420746865206f776e6572","id":53,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"861:22:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a","typeString":"literal_string \"You aren't the owner\""},"value":"You aren't the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a","typeString":"literal_string \"You aren't the owner\""}],"id":48,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"832:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"832:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55,"nodeType":"ExpressionStatement","src":"832:52:0"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":59,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"919:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Lock_$78","typeString":"contract Lock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Lock_$78","typeString":"contract Lock"}],"id":58,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"911:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57,"name":"address","nodeType":"ElementaryTypeName","src":"911:7:0","typeDescriptions":{}}},"id":60,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"911:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":61,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"925:7:0","memberName":"balance","nodeType":"MemberAccess","src":"911:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":62,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"934:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"940:9:0","memberName":"timestamp","nodeType":"MemberAccess","src":"934:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56,"name":"Withdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"900:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":64,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"900:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65,"nodeType":"EmitStatement","src":"895:55:0"},{"expression":{"arguments":[{"expression":{"arguments":[{"id":71,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"984:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Lock_$78","typeString":"contract Lock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Lock_$78","typeString":"contract Lock"}],"id":70,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"976:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"976:7:0","typeDescriptions":{}}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"976:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"990:7:0","memberName":"balance","nodeType":"MemberAccess","src":"976:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":66,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"961:5:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":68,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"967:8:0","memberName":"transfer","nodeType":"MemberAccess","src":"961:14:0","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"961:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75,"nodeType":"ExpressionStatement","src":"961:37:0"}]},"functionSelector":"3ccfd60b","id":77,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"524:8:0","nodeType":"FunctionDefinition","parameters":{"id":38,"nodeType":"ParameterList","parameters":[],"src":"532:2:0"},"returnParameters":{"id":39,"nodeType":"ParameterList","parameters":[],"src":"542:0:0"},"scope":78,"src":"515:490:0","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":79,"src":"141:866:0","usedErrors":[],"usedEvents":[11]}],"src":"39:969:0"},"id":0}},"contracts":{"contracts/Lock.sol":{"Lock":{"abi":[{"inputs":[{"internalType":"uint256","name":"_unlockTime","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"when","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_37":{"entryPoint":null,"id":37,"parameterSlots":1,"returnSlots":0},"abi_decode_t_uint256_fromMemory":{"entryPoint":219,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":240,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack":{"entryPoint":381,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":416,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":285,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":186,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":181,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413":{"entryPoint":302,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":196,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2248:1","nodeType":"YulBlock","src":"0:2248:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"379:32:1","nodeType":"YulBlock","src":"379:32:1","statements":[{"nativeSrc":"389:16:1","nodeType":"YulAssignment","src":"389:16:1","value":{"name":"value","nativeSrc":"400:5:1","nodeType":"YulIdentifier","src":"400:5:1"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:1","nodeType":"YulIdentifier","src":"389:7:1"}]}]},"name":"cleanup_t_uint256","nativeSrc":"334:77:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:1","nodeType":"YulTypedName","src":"361:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:1","nodeType":"YulTypedName","src":"371:7:1","type":""}],"src":"334:77:1"},{"body":{"nativeSrc":"460:79:1","nodeType":"YulBlock","src":"460:79:1","statements":[{"body":{"nativeSrc":"517:16:1","nodeType":"YulBlock","src":"517:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:1","nodeType":"YulLiteral","src":"526:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:1","nodeType":"YulLiteral","src":"529:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:1","nodeType":"YulIdentifier","src":"519:6:1"},"nativeSrc":"519:12:1","nodeType":"YulFunctionCall","src":"519:12:1"},"nativeSrc":"519:12:1","nodeType":"YulExpressionStatement","src":"519:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:1","nodeType":"YulIdentifier","src":"483:5:1"},{"arguments":[{"name":"value","nativeSrc":"508:5:1","nodeType":"YulIdentifier","src":"508:5:1"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"490:17:1","nodeType":"YulIdentifier","src":"490:17:1"},"nativeSrc":"490:24:1","nodeType":"YulFunctionCall","src":"490:24:1"}],"functionName":{"name":"eq","nativeSrc":"480:2:1","nodeType":"YulIdentifier","src":"480:2:1"},"nativeSrc":"480:35:1","nodeType":"YulFunctionCall","src":"480:35:1"}],"functionName":{"name":"iszero","nativeSrc":"473:6:1","nodeType":"YulIdentifier","src":"473:6:1"},"nativeSrc":"473:43:1","nodeType":"YulFunctionCall","src":"473:43:1"},"nativeSrc":"470:63:1","nodeType":"YulIf","src":"470:63:1"}]},"name":"validator_revert_t_uint256","nativeSrc":"417:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:1","nodeType":"YulTypedName","src":"453:5:1","type":""}],"src":"417:122:1"},{"body":{"nativeSrc":"608:80:1","nodeType":"YulBlock","src":"608:80:1","statements":[{"nativeSrc":"618:22:1","nodeType":"YulAssignment","src":"618:22:1","value":{"arguments":[{"name":"offset","nativeSrc":"633:6:1","nodeType":"YulIdentifier","src":"633:6:1"}],"functionName":{"name":"mload","nativeSrc":"627:5:1","nodeType":"YulIdentifier","src":"627:5:1"},"nativeSrc":"627:13:1","nodeType":"YulFunctionCall","src":"627:13:1"},"variableNames":[{"name":"value","nativeSrc":"618:5:1","nodeType":"YulIdentifier","src":"618:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"676:5:1","nodeType":"YulIdentifier","src":"676:5:1"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"649:26:1","nodeType":"YulIdentifier","src":"649:26:1"},"nativeSrc":"649:33:1","nodeType":"YulFunctionCall","src":"649:33:1"},"nativeSrc":"649:33:1","nodeType":"YulExpressionStatement","src":"649:33:1"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"545:143:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"586:6:1","nodeType":"YulTypedName","src":"586:6:1","type":""},{"name":"end","nativeSrc":"594:3:1","nodeType":"YulTypedName","src":"594:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"602:5:1","nodeType":"YulTypedName","src":"602:5:1","type":""}],"src":"545:143:1"},{"body":{"nativeSrc":"771:274:1","nodeType":"YulBlock","src":"771:274:1","statements":[{"body":{"nativeSrc":"817:83:1","nodeType":"YulBlock","src":"817:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"819:77:1","nodeType":"YulIdentifier","src":"819:77:1"},"nativeSrc":"819:79:1","nodeType":"YulFunctionCall","src":"819:79:1"},"nativeSrc":"819:79:1","nodeType":"YulExpressionStatement","src":"819:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"792:7:1","nodeType":"YulIdentifier","src":"792:7:1"},{"name":"headStart","nativeSrc":"801:9:1","nodeType":"YulIdentifier","src":"801:9:1"}],"functionName":{"name":"sub","nativeSrc":"788:3:1","nodeType":"YulIdentifier","src":"788:3:1"},"nativeSrc":"788:23:1","nodeType":"YulFunctionCall","src":"788:23:1"},{"kind":"number","nativeSrc":"813:2:1","nodeType":"YulLiteral","src":"813:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"784:3:1","nodeType":"YulIdentifier","src":"784:3:1"},"nativeSrc":"784:32:1","nodeType":"YulFunctionCall","src":"784:32:1"},"nativeSrc":"781:119:1","nodeType":"YulIf","src":"781:119:1"},{"nativeSrc":"910:128:1","nodeType":"YulBlock","src":"910:128:1","statements":[{"nativeSrc":"925:15:1","nodeType":"YulVariableDeclaration","src":"925:15:1","value":{"kind":"number","nativeSrc":"939:1:1","nodeType":"YulLiteral","src":"939:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"929:6:1","nodeType":"YulTypedName","src":"929:6:1","type":""}]},{"nativeSrc":"954:74:1","nodeType":"YulAssignment","src":"954:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1000:9:1","nodeType":"YulIdentifier","src":"1000:9:1"},{"name":"offset","nativeSrc":"1011:6:1","nodeType":"YulIdentifier","src":"1011:6:1"}],"functionName":{"name":"add","nativeSrc":"996:3:1","nodeType":"YulIdentifier","src":"996:3:1"},"nativeSrc":"996:22:1","nodeType":"YulFunctionCall","src":"996:22:1"},{"name":"dataEnd","nativeSrc":"1020:7:1","nodeType":"YulIdentifier","src":"1020:7:1"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"964:31:1","nodeType":"YulIdentifier","src":"964:31:1"},"nativeSrc":"964:64:1","nodeType":"YulFunctionCall","src":"964:64:1"},"variableNames":[{"name":"value0","nativeSrc":"954:6:1","nodeType":"YulIdentifier","src":"954:6:1"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"694:351:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"741:9:1","nodeType":"YulTypedName","src":"741:9:1","type":""},{"name":"dataEnd","nativeSrc":"752:7:1","nodeType":"YulTypedName","src":"752:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"764:6:1","nodeType":"YulTypedName","src":"764:6:1","type":""}],"src":"694:351:1"},{"body":{"nativeSrc":"1147:73:1","nodeType":"YulBlock","src":"1147:73:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1164:3:1","nodeType":"YulIdentifier","src":"1164:3:1"},{"name":"length","nativeSrc":"1169:6:1","nodeType":"YulIdentifier","src":"1169:6:1"}],"functionName":{"name":"mstore","nativeSrc":"1157:6:1","nodeType":"YulIdentifier","src":"1157:6:1"},"nativeSrc":"1157:19:1","nodeType":"YulFunctionCall","src":"1157:19:1"},"nativeSrc":"1157:19:1","nodeType":"YulExpressionStatement","src":"1157:19:1"},{"nativeSrc":"1185:29:1","nodeType":"YulAssignment","src":"1185:29:1","value":{"arguments":[{"name":"pos","nativeSrc":"1204:3:1","nodeType":"YulIdentifier","src":"1204:3:1"},{"kind":"number","nativeSrc":"1209:4:1","nodeType":"YulLiteral","src":"1209:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1200:3:1","nodeType":"YulIdentifier","src":"1200:3:1"},"nativeSrc":"1200:14:1","nodeType":"YulFunctionCall","src":"1200:14:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"1185:11:1","nodeType":"YulIdentifier","src":"1185:11:1"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1051:169:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1119:3:1","nodeType":"YulTypedName","src":"1119:3:1","type":""},{"name":"length","nativeSrc":"1124:6:1","nodeType":"YulTypedName","src":"1124:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1135:11:1","nodeType":"YulTypedName","src":"1135:11:1","type":""}],"src":"1051:169:1"},{"body":{"nativeSrc":"1332:116:1","nodeType":"YulBlock","src":"1332:116:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1354:6:1","nodeType":"YulIdentifier","src":"1354:6:1"},{"kind":"number","nativeSrc":"1362:1:1","nodeType":"YulLiteral","src":"1362:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1350:3:1","nodeType":"YulIdentifier","src":"1350:3:1"},"nativeSrc":"1350:14:1","nodeType":"YulFunctionCall","src":"1350:14:1"},{"hexValue":"556e6c6f636b2074696d652073686f756c6420626520696e2074686520667574","kind":"string","nativeSrc":"1366:34:1","nodeType":"YulLiteral","src":"1366:34:1","type":"","value":"Unlock time should be in the fut"}],"functionName":{"name":"mstore","nativeSrc":"1343:6:1","nodeType":"YulIdentifier","src":"1343:6:1"},"nativeSrc":"1343:58:1","nodeType":"YulFunctionCall","src":"1343:58:1"},"nativeSrc":"1343:58:1","nodeType":"YulExpressionStatement","src":"1343:58:1"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1422:6:1","nodeType":"YulIdentifier","src":"1422:6:1"},{"kind":"number","nativeSrc":"1430:2:1","nodeType":"YulLiteral","src":"1430:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1418:3:1","nodeType":"YulIdentifier","src":"1418:3:1"},"nativeSrc":"1418:15:1","nodeType":"YulFunctionCall","src":"1418:15:1"},{"hexValue":"757265","kind":"string","nativeSrc":"1435:5:1","nodeType":"YulLiteral","src":"1435:5:1","type":"","value":"ure"}],"functionName":{"name":"mstore","nativeSrc":"1411:6:1","nodeType":"YulIdentifier","src":"1411:6:1"},"nativeSrc":"1411:30:1","nodeType":"YulFunctionCall","src":"1411:30:1"},"nativeSrc":"1411:30:1","nodeType":"YulExpressionStatement","src":"1411:30:1"}]},"name":"store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413","nativeSrc":"1226:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1324:6:1","nodeType":"YulTypedName","src":"1324:6:1","type":""}],"src":"1226:222:1"},{"body":{"nativeSrc":"1600:220:1","nodeType":"YulBlock","src":"1600:220:1","statements":[{"nativeSrc":"1610:74:1","nodeType":"YulAssignment","src":"1610:74:1","value":{"arguments":[{"name":"pos","nativeSrc":"1676:3:1","nodeType":"YulIdentifier","src":"1676:3:1"},{"kind":"number","nativeSrc":"1681:2:1","nodeType":"YulLiteral","src":"1681:2:1","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1617:58:1","nodeType":"YulIdentifier","src":"1617:58:1"},"nativeSrc":"1617:67:1","nodeType":"YulFunctionCall","src":"1617:67:1"},"variableNames":[{"name":"pos","nativeSrc":"1610:3:1","nodeType":"YulIdentifier","src":"1610:3:1"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"1782:3:1","nodeType":"YulIdentifier","src":"1782:3:1"}],"functionName":{"name":"store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413","nativeSrc":"1693:88:1","nodeType":"YulIdentifier","src":"1693:88:1"},"nativeSrc":"1693:93:1","nodeType":"YulFunctionCall","src":"1693:93:1"},"nativeSrc":"1693:93:1","nodeType":"YulExpressionStatement","src":"1693:93:1"},{"nativeSrc":"1795:19:1","nodeType":"YulAssignment","src":"1795:19:1","value":{"arguments":[{"name":"pos","nativeSrc":"1806:3:1","nodeType":"YulIdentifier","src":"1806:3:1"},{"kind":"number","nativeSrc":"1811:2:1","nodeType":"YulLiteral","src":"1811:2:1","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1802:3:1","nodeType":"YulIdentifier","src":"1802:3:1"},"nativeSrc":"1802:12:1","nodeType":"YulFunctionCall","src":"1802:12:1"},"variableNames":[{"name":"end","nativeSrc":"1795:3:1","nodeType":"YulIdentifier","src":"1795:3:1"}]}]},"name":"abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack","nativeSrc":"1454:366:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1588:3:1","nodeType":"YulTypedName","src":"1588:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1596:3:1","nodeType":"YulTypedName","src":"1596:3:1","type":""}],"src":"1454:366:1"},{"body":{"nativeSrc":"1997:248:1","nodeType":"YulBlock","src":"1997:248:1","statements":[{"nativeSrc":"2007:26:1","nodeType":"YulAssignment","src":"2007:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"2019:9:1","nodeType":"YulIdentifier","src":"2019:9:1"},{"kind":"number","nativeSrc":"2030:2:1","nodeType":"YulLiteral","src":"2030:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2015:3:1","nodeType":"YulIdentifier","src":"2015:3:1"},"nativeSrc":"2015:18:1","nodeType":"YulFunctionCall","src":"2015:18:1"},"variableNames":[{"name":"tail","nativeSrc":"2007:4:1","nodeType":"YulIdentifier","src":"2007:4:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2054:9:1","nodeType":"YulIdentifier","src":"2054:9:1"},{"kind":"number","nativeSrc":"2065:1:1","nodeType":"YulLiteral","src":"2065:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2050:3:1","nodeType":"YulIdentifier","src":"2050:3:1"},"nativeSrc":"2050:17:1","nodeType":"YulFunctionCall","src":"2050:17:1"},{"arguments":[{"name":"tail","nativeSrc":"2073:4:1","nodeType":"YulIdentifier","src":"2073:4:1"},{"name":"headStart","nativeSrc":"2079:9:1","nodeType":"YulIdentifier","src":"2079:9:1"}],"functionName":{"name":"sub","nativeSrc":"2069:3:1","nodeType":"YulIdentifier","src":"2069:3:1"},"nativeSrc":"2069:20:1","nodeType":"YulFunctionCall","src":"2069:20:1"}],"functionName":{"name":"mstore","nativeSrc":"2043:6:1","nodeType":"YulIdentifier","src":"2043:6:1"},"nativeSrc":"2043:47:1","nodeType":"YulFunctionCall","src":"2043:47:1"},"nativeSrc":"2043:47:1","nodeType":"YulExpressionStatement","src":"2043:47:1"},{"nativeSrc":"2099:139:1","nodeType":"YulAssignment","src":"2099:139:1","value":{"arguments":[{"name":"tail","nativeSrc":"2233:4:1","nodeType":"YulIdentifier","src":"2233:4:1"}],"functionName":{"name":"abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack","nativeSrc":"2107:124:1","nodeType":"YulIdentifier","src":"2107:124:1"},"nativeSrc":"2107:131:1","nodeType":"YulFunctionCall","src":"2107:131:1"},"variableNames":[{"name":"tail","nativeSrc":"2099:4:1","nodeType":"YulIdentifier","src":"2099:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1826:419:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1977:9:1","nodeType":"YulTypedName","src":"1977:9:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1992:4:1","nodeType":"YulTypedName","src":"1992:4:1","type":""}],"src":"1826:419:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413(memPtr) {\n\n mstore(add(memPtr, 0), \"Unlock time should be in the fut\")\n\n mstore(add(memPtr, 32), \"ure\")\n\n }\n\n function abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516105d83803806105d8833981810160405281019061002591906100f0565b804210610067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005e906101a0565b60405180910390fd5b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101c0565b600080fd5b6000819050919050565b6100cd816100ba565b81146100d857600080fd5b50565b6000815190506100ea816100c4565b92915050565b600060208284031215610106576101056100b5565b5b6000610114848285016100db565b91505092915050565b600082825260208201905092915050565b7f556e6c6f636b2074696d652073686f756c6420626520696e207468652066757460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b600061018a60238361011d565b91506101958261012e565b604082019050919050565b600060208201905081810360008301526101b98161017d565b9050919050565b610409806101cf6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x5D8 CODESIZE SUB DUP1 PUSH2 0x5D8 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0xF0 JUMP JUMPDEST DUP1 TIMESTAMP LT PUSH2 0x67 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E SWAP1 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD DUP2 PUSH2 0xBA JUMP JUMPDEST DUP2 EQ PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEA DUP2 PUSH2 0xC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x106 JUMPI PUSH2 0x105 PUSH2 0xB5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x114 DUP5 DUP3 DUP6 ADD PUSH2 0xDB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E6C6F636B2074696D652073686F756C6420626520696E2074686520667574 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7572650000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A PUSH1 0x23 DUP4 PUSH2 0x11D JUMP JUMPDEST SWAP2 POP PUSH2 0x195 DUP3 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1B9 DUP2 PUSH2 0x17D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x409 DUP1 PUSH2 0x1CF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x251C1AA3 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x20B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD TIMESTAMP LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE SWAP1 PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x167 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15E SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBF2ED60BD5B5965D685680C01195C9514E4382E28E3A5A2D2D5244BF59411B93 SELFBALANCE TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x198 SWAP3 SWAP2 SWAP1 PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x244 DUP2 PUSH2 0x231 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x290 DUP3 PUSH2 0x265 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A0 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2BB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x297 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F752063616E27742077697468647261772079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x308 PUSH1 0x16 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x313 DUP3 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x337 DUP2 PUSH2 0x2FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F75206172656E277420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x374 PUSH1 0x14 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x37F DUP3 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3A3 DUP2 PUSH2 0x367 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3BF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B JUMP JUMPDEST PUSH2 0x3CC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 0xB6 MSTORE8 SSTORE 0xAF PUSH10 0x7B0725F7BCDDF1C94BE9 ADDMOD 0xEE PUSH8 0x893E84BD3442D61F 0xDC DUP3 PC POP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ","sourceMap":"141:866:0:-:0;;;271:238;;;;;;;;;;;;;;;;;;;;;:::i;:::-;358:11;340:15;:29;319:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;454:11;441:10;:24;;;;491:10;475:5;;:27;;;;;;;;;;;;;;;;;;271:238;141:866;;88:117:1;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:169::-;1135:11;1169:6;1164:3;1157:19;1209:4;1204:3;1200:14;1185:29;;1051:169;;;;:::o;1226:222::-;1366:34;1362:1;1354:6;1350:14;1343:58;1435:5;1430:2;1422:6;1418:15;1411:30;1226:222;:::o;1454:366::-;1596:3;1617:67;1681:2;1676:3;1617:67;:::i;:::-;1610:74;;1693:93;1782:3;1693:93;:::i;:::-;1811:2;1806:3;1802:12;1795:19;;1454:366;;;:::o;1826:419::-;1992:4;2030:2;2019:9;2015:18;2007:26;;2079:9;2073:4;2069:20;2065:1;2054:9;2050:17;2043:47;2107:131;2233:4;2107:131;:::i;:::-;2099:139;;1826:419;;;:::o;141:866:0:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@owner_5":{"entryPoint":523,"id":5,"parameterSlots":0,"returnSlots":0},"@unlockTime_3":{"entryPoint":140,"id":3,"parameterSlots":0,"returnSlots":0},"@withdraw_77":{"entryPoint":146,"id":77,"parameterSlots":0,"returnSlots":0},"abi_encode_t_address_payable_to_t_address_payable_fromStack":{"entryPoint":663,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack":{"entryPoint":763,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack":{"entryPoint":871,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":571,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed":{"entryPoint":678,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":798,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":906,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":586,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":938,"id":null,"parameterSlots":3,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":705,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":645,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":613,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":561,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8":{"entryPoint":722,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a":{"entryPoint":830,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3550:1","nodeType":"YulBlock","src":"0:3550:1","statements":[{"body":{"nativeSrc":"52:32:1","nodeType":"YulBlock","src":"52:32:1","statements":[{"nativeSrc":"62:16:1","nodeType":"YulAssignment","src":"62:16:1","value":{"name":"value","nativeSrc":"73:5:1","nodeType":"YulIdentifier","src":"73:5:1"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:1","nodeType":"YulIdentifier","src":"62:7:1"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:1","nodeType":"YulTypedName","src":"34:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:1","nodeType":"YulTypedName","src":"44:7:1","type":""}],"src":"7:77:1"},{"body":{"nativeSrc":"155:53:1","nodeType":"YulBlock","src":"155:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:1","nodeType":"YulIdentifier","src":"172:3:1"},{"arguments":[{"name":"value","nativeSrc":"195:5:1","nodeType":"YulIdentifier","src":"195:5:1"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:1","nodeType":"YulIdentifier","src":"177:17:1"},"nativeSrc":"177:24:1","nodeType":"YulFunctionCall","src":"177:24:1"}],"functionName":{"name":"mstore","nativeSrc":"165:6:1","nodeType":"YulIdentifier","src":"165:6:1"},"nativeSrc":"165:37:1","nodeType":"YulFunctionCall","src":"165:37:1"},"nativeSrc":"165:37:1","nodeType":"YulExpressionStatement","src":"165:37:1"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:1","nodeType":"YulTypedName","src":"143:5:1","type":""},{"name":"pos","nativeSrc":"150:3:1","nodeType":"YulTypedName","src":"150:3:1","type":""}],"src":"90:118:1"},{"body":{"nativeSrc":"312:124:1","nodeType":"YulBlock","src":"312:124:1","statements":[{"nativeSrc":"322:26:1","nodeType":"YulAssignment","src":"322:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:1","nodeType":"YulIdentifier","src":"334:9:1"},{"kind":"number","nativeSrc":"345:2:1","nodeType":"YulLiteral","src":"345:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:1","nodeType":"YulIdentifier","src":"330:3:1"},"nativeSrc":"330:18:1","nodeType":"YulFunctionCall","src":"330:18:1"},"variableNames":[{"name":"tail","nativeSrc":"322:4:1","nodeType":"YulIdentifier","src":"322:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:1","nodeType":"YulIdentifier","src":"402:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:1","nodeType":"YulIdentifier","src":"415:9:1"},{"kind":"number","nativeSrc":"426:1:1","nodeType":"YulLiteral","src":"426:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:1","nodeType":"YulIdentifier","src":"411:3:1"},"nativeSrc":"411:17:1","nodeType":"YulFunctionCall","src":"411:17:1"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:1","nodeType":"YulIdentifier","src":"358:43:1"},"nativeSrc":"358:71:1","nodeType":"YulFunctionCall","src":"358:71:1"},"nativeSrc":"358:71:1","nodeType":"YulExpressionStatement","src":"358:71:1"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:1","nodeType":"YulTypedName","src":"284:9:1","type":""},{"name":"value0","nativeSrc":"296:6:1","nodeType":"YulTypedName","src":"296:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:1","nodeType":"YulTypedName","src":"307:4:1","type":""}],"src":"214:222:1"},{"body":{"nativeSrc":"487:81:1","nodeType":"YulBlock","src":"487:81:1","statements":[{"nativeSrc":"497:65:1","nodeType":"YulAssignment","src":"497:65:1","value":{"arguments":[{"name":"value","nativeSrc":"512:5:1","nodeType":"YulIdentifier","src":"512:5:1"},{"kind":"number","nativeSrc":"519:42:1","nodeType":"YulLiteral","src":"519:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:1","nodeType":"YulIdentifier","src":"508:3:1"},"nativeSrc":"508:54:1","nodeType":"YulFunctionCall","src":"508:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:1","nodeType":"YulIdentifier","src":"497:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:1","nodeType":"YulTypedName","src":"469:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:1","nodeType":"YulTypedName","src":"479:7:1","type":""}],"src":"442:126:1"},{"body":{"nativeSrc":"627:51:1","nodeType":"YulBlock","src":"627:51:1","statements":[{"nativeSrc":"637:35:1","nodeType":"YulAssignment","src":"637:35:1","value":{"arguments":[{"name":"value","nativeSrc":"666:5:1","nodeType":"YulIdentifier","src":"666:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"648:17:1","nodeType":"YulIdentifier","src":"648:17:1"},"nativeSrc":"648:24:1","nodeType":"YulFunctionCall","src":"648:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"637:7:1","nodeType":"YulIdentifier","src":"637:7:1"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"574:104:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"609:5:1","nodeType":"YulTypedName","src":"609:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"619:7:1","nodeType":"YulTypedName","src":"619:7:1","type":""}],"src":"574:104:1"},{"body":{"nativeSrc":"765:61:1","nodeType":"YulBlock","src":"765:61:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"782:3:1","nodeType":"YulIdentifier","src":"782:3:1"},{"arguments":[{"name":"value","nativeSrc":"813:5:1","nodeType":"YulIdentifier","src":"813:5:1"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"787:25:1","nodeType":"YulIdentifier","src":"787:25:1"},"nativeSrc":"787:32:1","nodeType":"YulFunctionCall","src":"787:32:1"}],"functionName":{"name":"mstore","nativeSrc":"775:6:1","nodeType":"YulIdentifier","src":"775:6:1"},"nativeSrc":"775:45:1","nodeType":"YulFunctionCall","src":"775:45:1"},"nativeSrc":"775:45:1","nodeType":"YulExpressionStatement","src":"775:45:1"}]},"name":"abi_encode_t_address_payable_to_t_address_payable_fromStack","nativeSrc":"684:142:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"753:5:1","nodeType":"YulTypedName","src":"753:5:1","type":""},{"name":"pos","nativeSrc":"760:3:1","nodeType":"YulTypedName","src":"760:3:1","type":""}],"src":"684:142:1"},{"body":{"nativeSrc":"946:140:1","nodeType":"YulBlock","src":"946:140:1","statements":[{"nativeSrc":"956:26:1","nodeType":"YulAssignment","src":"956:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"968:9:1","nodeType":"YulIdentifier","src":"968:9:1"},{"kind":"number","nativeSrc":"979:2:1","nodeType":"YulLiteral","src":"979:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"964:3:1","nodeType":"YulIdentifier","src":"964:3:1"},"nativeSrc":"964:18:1","nodeType":"YulFunctionCall","src":"964:18:1"},"variableNames":[{"name":"tail","nativeSrc":"956:4:1","nodeType":"YulIdentifier","src":"956:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1052:6:1","nodeType":"YulIdentifier","src":"1052:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"1065:9:1","nodeType":"YulIdentifier","src":"1065:9:1"},{"kind":"number","nativeSrc":"1076:1:1","nodeType":"YulLiteral","src":"1076:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1061:3:1","nodeType":"YulIdentifier","src":"1061:3:1"},"nativeSrc":"1061:17:1","nodeType":"YulFunctionCall","src":"1061:17:1"}],"functionName":{"name":"abi_encode_t_address_payable_to_t_address_payable_fromStack","nativeSrc":"992:59:1","nodeType":"YulIdentifier","src":"992:59:1"},"nativeSrc":"992:87:1","nodeType":"YulFunctionCall","src":"992:87:1"},"nativeSrc":"992:87:1","nodeType":"YulExpressionStatement","src":"992:87:1"}]},"name":"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed","nativeSrc":"832:254:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"918:9:1","nodeType":"YulTypedName","src":"918:9:1","type":""},{"name":"value0","nativeSrc":"930:6:1","nodeType":"YulTypedName","src":"930:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"941:4:1","nodeType":"YulTypedName","src":"941:4:1","type":""}],"src":"832:254:1"},{"body":{"nativeSrc":"1188:73:1","nodeType":"YulBlock","src":"1188:73:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1205:3:1","nodeType":"YulIdentifier","src":"1205:3:1"},{"name":"length","nativeSrc":"1210:6:1","nodeType":"YulIdentifier","src":"1210:6:1"}],"functionName":{"name":"mstore","nativeSrc":"1198:6:1","nodeType":"YulIdentifier","src":"1198:6:1"},"nativeSrc":"1198:19:1","nodeType":"YulFunctionCall","src":"1198:19:1"},"nativeSrc":"1198:19:1","nodeType":"YulExpressionStatement","src":"1198:19:1"},{"nativeSrc":"1226:29:1","nodeType":"YulAssignment","src":"1226:29:1","value":{"arguments":[{"name":"pos","nativeSrc":"1245:3:1","nodeType":"YulIdentifier","src":"1245:3:1"},{"kind":"number","nativeSrc":"1250:4:1","nodeType":"YulLiteral","src":"1250:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1241:3:1","nodeType":"YulIdentifier","src":"1241:3:1"},"nativeSrc":"1241:14:1","nodeType":"YulFunctionCall","src":"1241:14:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"1226:11:1","nodeType":"YulIdentifier","src":"1226:11:1"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1092:169:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1160:3:1","nodeType":"YulTypedName","src":"1160:3:1","type":""},{"name":"length","nativeSrc":"1165:6:1","nodeType":"YulTypedName","src":"1165:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1176:11:1","nodeType":"YulTypedName","src":"1176:11:1","type":""}],"src":"1092:169:1"},{"body":{"nativeSrc":"1373:66:1","nodeType":"YulBlock","src":"1373:66:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1395:6:1","nodeType":"YulIdentifier","src":"1395:6:1"},{"kind":"number","nativeSrc":"1403:1:1","nodeType":"YulLiteral","src":"1403:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1391:3:1","nodeType":"YulIdentifier","src":"1391:3:1"},"nativeSrc":"1391:14:1","nodeType":"YulFunctionCall","src":"1391:14:1"},{"hexValue":"596f752063616e277420776974686472617720796574","kind":"string","nativeSrc":"1407:24:1","nodeType":"YulLiteral","src":"1407:24:1","type":"","value":"You can't withdraw yet"}],"functionName":{"name":"mstore","nativeSrc":"1384:6:1","nodeType":"YulIdentifier","src":"1384:6:1"},"nativeSrc":"1384:48:1","nodeType":"YulFunctionCall","src":"1384:48:1"},"nativeSrc":"1384:48:1","nodeType":"YulExpressionStatement","src":"1384:48:1"}]},"name":"store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8","nativeSrc":"1267:172:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1365:6:1","nodeType":"YulTypedName","src":"1365:6:1","type":""}],"src":"1267:172:1"},{"body":{"nativeSrc":"1591:220:1","nodeType":"YulBlock","src":"1591:220:1","statements":[{"nativeSrc":"1601:74:1","nodeType":"YulAssignment","src":"1601:74:1","value":{"arguments":[{"name":"pos","nativeSrc":"1667:3:1","nodeType":"YulIdentifier","src":"1667:3:1"},{"kind":"number","nativeSrc":"1672:2:1","nodeType":"YulLiteral","src":"1672:2:1","type":"","value":"22"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1608:58:1","nodeType":"YulIdentifier","src":"1608:58:1"},"nativeSrc":"1608:67:1","nodeType":"YulFunctionCall","src":"1608:67:1"},"variableNames":[{"name":"pos","nativeSrc":"1601:3:1","nodeType":"YulIdentifier","src":"1601:3:1"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"1773:3:1","nodeType":"YulIdentifier","src":"1773:3:1"}],"functionName":{"name":"store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8","nativeSrc":"1684:88:1","nodeType":"YulIdentifier","src":"1684:88:1"},"nativeSrc":"1684:93:1","nodeType":"YulFunctionCall","src":"1684:93:1"},"nativeSrc":"1684:93:1","nodeType":"YulExpressionStatement","src":"1684:93:1"},{"nativeSrc":"1786:19:1","nodeType":"YulAssignment","src":"1786:19:1","value":{"arguments":[{"name":"pos","nativeSrc":"1797:3:1","nodeType":"YulIdentifier","src":"1797:3:1"},{"kind":"number","nativeSrc":"1802:2:1","nodeType":"YulLiteral","src":"1802:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1793:3:1","nodeType":"YulIdentifier","src":"1793:3:1"},"nativeSrc":"1793:12:1","nodeType":"YulFunctionCall","src":"1793:12:1"},"variableNames":[{"name":"end","nativeSrc":"1786:3:1","nodeType":"YulIdentifier","src":"1786:3:1"}]}]},"name":"abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack","nativeSrc":"1445:366:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1579:3:1","nodeType":"YulTypedName","src":"1579:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1587:3:1","nodeType":"YulTypedName","src":"1587:3:1","type":""}],"src":"1445:366:1"},{"body":{"nativeSrc":"1988:248:1","nodeType":"YulBlock","src":"1988:248:1","statements":[{"nativeSrc":"1998:26:1","nodeType":"YulAssignment","src":"1998:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"2010:9:1","nodeType":"YulIdentifier","src":"2010:9:1"},{"kind":"number","nativeSrc":"2021:2:1","nodeType":"YulLiteral","src":"2021:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2006:3:1","nodeType":"YulIdentifier","src":"2006:3:1"},"nativeSrc":"2006:18:1","nodeType":"YulFunctionCall","src":"2006:18:1"},"variableNames":[{"name":"tail","nativeSrc":"1998:4:1","nodeType":"YulIdentifier","src":"1998:4:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2045:9:1","nodeType":"YulIdentifier","src":"2045:9:1"},{"kind":"number","nativeSrc":"2056:1:1","nodeType":"YulLiteral","src":"2056:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2041:3:1","nodeType":"YulIdentifier","src":"2041:3:1"},"nativeSrc":"2041:17:1","nodeType":"YulFunctionCall","src":"2041:17:1"},{"arguments":[{"name":"tail","nativeSrc":"2064:4:1","nodeType":"YulIdentifier","src":"2064:4:1"},{"name":"headStart","nativeSrc":"2070:9:1","nodeType":"YulIdentifier","src":"2070:9:1"}],"functionName":{"name":"sub","nativeSrc":"2060:3:1","nodeType":"YulIdentifier","src":"2060:3:1"},"nativeSrc":"2060:20:1","nodeType":"YulFunctionCall","src":"2060:20:1"}],"functionName":{"name":"mstore","nativeSrc":"2034:6:1","nodeType":"YulIdentifier","src":"2034:6:1"},"nativeSrc":"2034:47:1","nodeType":"YulFunctionCall","src":"2034:47:1"},"nativeSrc":"2034:47:1","nodeType":"YulExpressionStatement","src":"2034:47:1"},{"nativeSrc":"2090:139:1","nodeType":"YulAssignment","src":"2090:139:1","value":{"arguments":[{"name":"tail","nativeSrc":"2224:4:1","nodeType":"YulIdentifier","src":"2224:4:1"}],"functionName":{"name":"abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack","nativeSrc":"2098:124:1","nodeType":"YulIdentifier","src":"2098:124:1"},"nativeSrc":"2098:131:1","nodeType":"YulFunctionCall","src":"2098:131:1"},"variableNames":[{"name":"tail","nativeSrc":"2090:4:1","nodeType":"YulIdentifier","src":"2090:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1817:419:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1968:9:1","nodeType":"YulTypedName","src":"1968:9:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1983:4:1","nodeType":"YulTypedName","src":"1983:4:1","type":""}],"src":"1817:419:1"},{"body":{"nativeSrc":"2348:64:1","nodeType":"YulBlock","src":"2348:64:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2370:6:1","nodeType":"YulIdentifier","src":"2370:6:1"},{"kind":"number","nativeSrc":"2378:1:1","nodeType":"YulLiteral","src":"2378:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2366:3:1","nodeType":"YulIdentifier","src":"2366:3:1"},"nativeSrc":"2366:14:1","nodeType":"YulFunctionCall","src":"2366:14:1"},{"hexValue":"596f75206172656e277420746865206f776e6572","kind":"string","nativeSrc":"2382:22:1","nodeType":"YulLiteral","src":"2382:22:1","type":"","value":"You aren't the owner"}],"functionName":{"name":"mstore","nativeSrc":"2359:6:1","nodeType":"YulIdentifier","src":"2359:6:1"},"nativeSrc":"2359:46:1","nodeType":"YulFunctionCall","src":"2359:46:1"},"nativeSrc":"2359:46:1","nodeType":"YulExpressionStatement","src":"2359:46:1"}]},"name":"store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a","nativeSrc":"2242:170:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2340:6:1","nodeType":"YulTypedName","src":"2340:6:1","type":""}],"src":"2242:170:1"},{"body":{"nativeSrc":"2564:220:1","nodeType":"YulBlock","src":"2564:220:1","statements":[{"nativeSrc":"2574:74:1","nodeType":"YulAssignment","src":"2574:74:1","value":{"arguments":[{"name":"pos","nativeSrc":"2640:3:1","nodeType":"YulIdentifier","src":"2640:3:1"},{"kind":"number","nativeSrc":"2645:2:1","nodeType":"YulLiteral","src":"2645:2:1","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2581:58:1","nodeType":"YulIdentifier","src":"2581:58:1"},"nativeSrc":"2581:67:1","nodeType":"YulFunctionCall","src":"2581:67:1"},"variableNames":[{"name":"pos","nativeSrc":"2574:3:1","nodeType":"YulIdentifier","src":"2574:3:1"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2746:3:1","nodeType":"YulIdentifier","src":"2746:3:1"}],"functionName":{"name":"store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a","nativeSrc":"2657:88:1","nodeType":"YulIdentifier","src":"2657:88:1"},"nativeSrc":"2657:93:1","nodeType":"YulFunctionCall","src":"2657:93:1"},"nativeSrc":"2657:93:1","nodeType":"YulExpressionStatement","src":"2657:93:1"},{"nativeSrc":"2759:19:1","nodeType":"YulAssignment","src":"2759:19:1","value":{"arguments":[{"name":"pos","nativeSrc":"2770:3:1","nodeType":"YulIdentifier","src":"2770:3:1"},{"kind":"number","nativeSrc":"2775:2:1","nodeType":"YulLiteral","src":"2775:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2766:3:1","nodeType":"YulIdentifier","src":"2766:3:1"},"nativeSrc":"2766:12:1","nodeType":"YulFunctionCall","src":"2766:12:1"},"variableNames":[{"name":"end","nativeSrc":"2759:3:1","nodeType":"YulIdentifier","src":"2759:3:1"}]}]},"name":"abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack","nativeSrc":"2418:366:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2552:3:1","nodeType":"YulTypedName","src":"2552:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2560:3:1","nodeType":"YulTypedName","src":"2560:3:1","type":""}],"src":"2418:366:1"},{"body":{"nativeSrc":"2961:248:1","nodeType":"YulBlock","src":"2961:248:1","statements":[{"nativeSrc":"2971:26:1","nodeType":"YulAssignment","src":"2971:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"2983:9:1","nodeType":"YulIdentifier","src":"2983:9:1"},{"kind":"number","nativeSrc":"2994:2:1","nodeType":"YulLiteral","src":"2994:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2979:3:1","nodeType":"YulIdentifier","src":"2979:3:1"},"nativeSrc":"2979:18:1","nodeType":"YulFunctionCall","src":"2979:18:1"},"variableNames":[{"name":"tail","nativeSrc":"2971:4:1","nodeType":"YulIdentifier","src":"2971:4:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3018:9:1","nodeType":"YulIdentifier","src":"3018:9:1"},{"kind":"number","nativeSrc":"3029:1:1","nodeType":"YulLiteral","src":"3029:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3014:3:1","nodeType":"YulIdentifier","src":"3014:3:1"},"nativeSrc":"3014:17:1","nodeType":"YulFunctionCall","src":"3014:17:1"},{"arguments":[{"name":"tail","nativeSrc":"3037:4:1","nodeType":"YulIdentifier","src":"3037:4:1"},{"name":"headStart","nativeSrc":"3043:9:1","nodeType":"YulIdentifier","src":"3043:9:1"}],"functionName":{"name":"sub","nativeSrc":"3033:3:1","nodeType":"YulIdentifier","src":"3033:3:1"},"nativeSrc":"3033:20:1","nodeType":"YulFunctionCall","src":"3033:20:1"}],"functionName":{"name":"mstore","nativeSrc":"3007:6:1","nodeType":"YulIdentifier","src":"3007:6:1"},"nativeSrc":"3007:47:1","nodeType":"YulFunctionCall","src":"3007:47:1"},"nativeSrc":"3007:47:1","nodeType":"YulExpressionStatement","src":"3007:47:1"},{"nativeSrc":"3063:139:1","nodeType":"YulAssignment","src":"3063:139:1","value":{"arguments":[{"name":"tail","nativeSrc":"3197:4:1","nodeType":"YulIdentifier","src":"3197:4:1"}],"functionName":{"name":"abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack","nativeSrc":"3071:124:1","nodeType":"YulIdentifier","src":"3071:124:1"},"nativeSrc":"3071:131:1","nodeType":"YulFunctionCall","src":"3071:131:1"},"variableNames":[{"name":"tail","nativeSrc":"3063:4:1","nodeType":"YulIdentifier","src":"3063:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2790:419:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2941:9:1","nodeType":"YulTypedName","src":"2941:9:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2956:4:1","nodeType":"YulTypedName","src":"2956:4:1","type":""}],"src":"2790:419:1"},{"body":{"nativeSrc":"3341:206:1","nodeType":"YulBlock","src":"3341:206:1","statements":[{"nativeSrc":"3351:26:1","nodeType":"YulAssignment","src":"3351:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"3363:9:1","nodeType":"YulIdentifier","src":"3363:9:1"},{"kind":"number","nativeSrc":"3374:2:1","nodeType":"YulLiteral","src":"3374:2:1","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3359:3:1","nodeType":"YulIdentifier","src":"3359:3:1"},"nativeSrc":"3359:18:1","nodeType":"YulFunctionCall","src":"3359:18:1"},"variableNames":[{"name":"tail","nativeSrc":"3351:4:1","nodeType":"YulIdentifier","src":"3351:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3431:6:1","nodeType":"YulIdentifier","src":"3431:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"3444:9:1","nodeType":"YulIdentifier","src":"3444:9:1"},{"kind":"number","nativeSrc":"3455:1:1","nodeType":"YulLiteral","src":"3455:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3440:3:1","nodeType":"YulIdentifier","src":"3440:3:1"},"nativeSrc":"3440:17:1","nodeType":"YulFunctionCall","src":"3440:17:1"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3387:43:1","nodeType":"YulIdentifier","src":"3387:43:1"},"nativeSrc":"3387:71:1","nodeType":"YulFunctionCall","src":"3387:71:1"},"nativeSrc":"3387:71:1","nodeType":"YulExpressionStatement","src":"3387:71:1"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"3512:6:1","nodeType":"YulIdentifier","src":"3512:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"3525:9:1","nodeType":"YulIdentifier","src":"3525:9:1"},{"kind":"number","nativeSrc":"3536:2:1","nodeType":"YulLiteral","src":"3536:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3521:3:1","nodeType":"YulIdentifier","src":"3521:3:1"},"nativeSrc":"3521:18:1","nodeType":"YulFunctionCall","src":"3521:18:1"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3468:43:1","nodeType":"YulIdentifier","src":"3468:43:1"},"nativeSrc":"3468:72:1","nodeType":"YulFunctionCall","src":"3468:72:1"},"nativeSrc":"3468:72:1","nodeType":"YulExpressionStatement","src":"3468:72:1"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"3215:332:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3305:9:1","nodeType":"YulTypedName","src":"3305:9:1","type":""},{"name":"value1","nativeSrc":"3317:6:1","nodeType":"YulTypedName","src":"3317:6:1","type":""},{"name":"value0","nativeSrc":"3325:6:1","nodeType":"YulTypedName","src":"3325:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3336:4:1","nodeType":"YulTypedName","src":"3336:4:1","type":""}],"src":"3215:332:1"}]},"contents":"{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8(memPtr) {\n\n mstore(add(memPtr, 0), \"You can't withdraw yet\")\n\n }\n\n function abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a(memPtr) {\n\n mstore(add(memPtr, 0), \"You aren't the owner\")\n\n }\n\n function abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x251C1AA3 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x20B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD TIMESTAMP LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE SWAP1 PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x167 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15E SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBF2ED60BD5B5965D685680C01195C9514E4382E28E3A5A2D2D5244BF59411B93 SELFBALANCE TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x198 SWAP3 SWAP2 SWAP1 PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x244 DUP2 PUSH2 0x231 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x290 DUP3 PUSH2 0x265 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A0 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2BB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x297 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F752063616E27742077697468647261772079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x308 PUSH1 0x16 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x313 DUP3 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x337 DUP2 PUSH2 0x2FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F75206172656E277420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x374 PUSH1 0x14 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x37F DUP3 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3A3 DUP2 PUSH2 0x367 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3BF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B JUMP JUMPDEST PUSH2 0x3CC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 0xB6 MSTORE8 SSTORE 0xAF PUSH10 0x7B0725F7BCDDF1C94BE9 ADDMOD 0xEE PUSH8 0x893E84BD3442D61F 0xDC DUP3 PC POP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ","sourceMap":"141:866:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;161:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;515:490;;;:::i;:::-;;189:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;161:22;;;;:::o;515:490::-;785:10;;766:15;:29;;758:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;854:5;;;;;;;;;;;840:19;;:10;:19;;;832:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;900:50;911:21;934:15;900:50;;;;;;;:::i;:::-;;;;;;;;961:5;;;;;;;;;;;:14;;:37;976:21;961:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;515:490::o;189:28::-;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:104::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;574:104;;;:::o;684:142::-;787:32;813:5;787:32;:::i;:::-;782:3;775:45;684:142;;:::o;832:254::-;941:4;979:2;968:9;964:18;956:26;;992:87;1076:1;1065:9;1061:17;1052:6;992:87;:::i;:::-;832:254;;;;:::o;1092:169::-;1176:11;1210:6;1205:3;1198:19;1250:4;1245:3;1241:14;1226:29;;1092:169;;;;:::o;1267:172::-;1407:24;1403:1;1395:6;1391:14;1384:48;1267:172;:::o;1445:366::-;1587:3;1608:67;1672:2;1667:3;1608:67;:::i;:::-;1601:74;;1684:93;1773:3;1684:93;:::i;:::-;1802:2;1797:3;1793:12;1786:19;;1445:366;;;:::o;1817:419::-;1983:4;2021:2;2010:9;2006:18;1998:26;;2070:9;2064:4;2060:20;2056:1;2045:9;2041:17;2034:47;2098:131;2224:4;2098:131;:::i;:::-;2090:139;;1817:419;;;:::o;2242:170::-;2382:22;2378:1;2370:6;2366:14;2359:46;2242:170;:::o;2418:366::-;2560:3;2581:67;2645:2;2640:3;2581:67;:::i;:::-;2574:74;;2657:93;2746:3;2657:93;:::i;:::-;2775:2;2770:3;2766:12;2759:19;;2418:366;;;:::o;2790:419::-;2956:4;2994:2;2983:9;2979:18;2971:26;;3043:9;3037:4;3033:20;3029:1;3018:9;3014:17;3007:47;3071:131;3197:4;3071:131;:::i;:::-;3063:139;;2790:419;;;:::o;3215:332::-;3336:4;3374:2;3363:9;3359:18;3351:26;;3387:71;3455:1;3444:9;3440:17;3431:6;3387:71;:::i;:::-;3468:72;3536:2;3525:9;3521:18;3512:6;3468:72;:::i;:::-;3215:332;;;;;:::o"},"methodIdentifiers":{"owner()":"8da5cb5b","unlockTime()":"251c1aa3","withdraw()":"3ccfd60b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_unlockTime\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"when\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Lock.sol\":\"Lock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Lock.sol\":{\"keccak256\":\"0xc458ef1602df81d573ca4759f27c351b6d7b0f7a2cf577fee984c166dda23fb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3791b0b020cda6a03a53481c0702e1126b6ec8dcbc59821b557cc0c91f8048d1\",\"dweb:/ipfs/QmNSDX5uV49DpuBWKq1gW6Uq5nKLyHS542HevwTay3n9vH\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/Lock.sol/Lock.dbg.json b/artifacts/contracts/Lock.sol/Lock.dbg.json new file mode 100644 index 0000000..5b332d8 --- /dev/null +++ b/artifacts/contracts/Lock.sol/Lock.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/22662767f8b1a09e64d324318d70c2ac.json" +} diff --git a/artifacts/contracts/Lock.sol/Lock.json b/artifacts/contracts/Lock.sol/Lock.json new file mode 100644 index 0000000..36afc98 --- /dev/null +++ b/artifacts/contracts/Lock.sol/Lock.json @@ -0,0 +1,74 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Lock", + "sourceName": "contracts/Lock.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_unlockTime", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "when", + "type": "uint256" + } + ], + "name": "Withdrawal", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "unlockTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526040516105d83803806105d8833981810160405281019061002591906100f0565b804210610067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005e906101a0565b60405180910390fd5b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101c0565b600080fd5b6000819050919050565b6100cd816100ba565b81146100d857600080fd5b50565b6000815190506100ea816100c4565b92915050565b600060208284031215610106576101056100b5565b5b6000610114848285016100db565b91505092915050565b600082825260208201905092915050565b7f556e6c6f636b2074696d652073686f756c6420626520696e207468652066757460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b600061018a60238361011d565b91506101958261012e565b604082019050919050565b600060208201905081810360008301526101b98161017d565b9050919050565b610409806101cf6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json new file mode 100644 index 0000000..a5b0d2d --- /dev/null +++ b/cache/solidity-files-cache.json @@ -0,0 +1,41 @@ +{ + "_format": "hh-sol-cache-2", + "files": { + "/Users/nikitapoznyakov/Desktop/work/block-accounting/contracts/Lock.sol": { + "lastModificationDate": 1714595956954, + "contentHash": "dacf0d5cb5b45dc83086de5bc1c26c2c", + "sourceName": "contracts/Lock.sol", + "solcConfig": { + "version": "0.8.24", + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.24" + ], + "artifacts": [ + "Lock" + ] + } + } +} diff --git a/contract/.gitignore b/contract/.gitignore new file mode 100644 index 0000000..e8c12ff --- /dev/null +++ b/contract/.gitignore @@ -0,0 +1,17 @@ +node_modules +.env + +# Hardhat files +/cache +/artifacts + +# TypeChain files +/typechain +/typechain-types + +# solidity-coverage files +/coverage +/coverage.json + +# Hardhat Ignition default folder for deployments against a local node +ignition/deployments/chain-31337 diff --git a/contract/contracts/Lock.sol b/contract/contracts/Lock.sol new file mode 100644 index 0000000..1efbef3 --- /dev/null +++ b/contract/contracts/Lock.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.24; + +// Uncomment this line to use console.log +// import "hardhat/console.sol"; + +contract Lock { + uint public unlockTime; + address payable public owner; + + event Withdrawal(uint amount, uint when); + + constructor(uint _unlockTime) payable { + require( + block.timestamp < _unlockTime, + "Unlock time should be in the future" + ); + + unlockTime = _unlockTime; + owner = payable(msg.sender); + } + + function withdraw() public { + // Uncomment this line, and the import of "hardhat/console.sol", to print a log in your terminal + // console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp); + + require(block.timestamp >= unlockTime, "You can't withdraw yet"); + require(msg.sender == owner, "You aren't the owner"); + + emit Withdrawal(address(this).balance, block.timestamp); + + owner.transfer(address(this).balance); + } +} diff --git a/contract/hardhat.config.ts b/contract/hardhat.config.ts new file mode 100644 index 0000000..e9aa771 --- /dev/null +++ b/contract/hardhat.config.ts @@ -0,0 +1,14 @@ +import {HardhatUserConfig, vars} from "hardhat/config"; +import "@nomicfoundation/hardhat-toolbox"; +const INFURA_API_KEY = vars.get("INFURA_API_KEY"); + +const config: HardhatUserConfig = { + solidity: "0.8.24", + networks: { + sepolia: { + url: `https://sepolia.infura.io/v3/${INFURA_API_KEY}`, + }, + }, +}; + +export default config; diff --git a/contract/ignition/modules/Lock.ts b/contract/ignition/modules/Lock.ts new file mode 100644 index 0000000..eda0eba --- /dev/null +++ b/contract/ignition/modules/Lock.ts @@ -0,0 +1,17 @@ +import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; + +const JAN_1ST_2030 = 1893456000; +const ONE_GWEI: bigint = 1_000_000_000n; + +const LockModule = buildModule("LockModule", (m) => { + const unlockTime = m.getParameter("unlockTime", JAN_1ST_2030); + const lockedAmount = m.getParameter("lockedAmount", ONE_GWEI); + + const lock = m.contract("Lock", [unlockTime], { + value: lockedAmount, + }); + + return { lock }; +}); + +export default LockModule; diff --git a/contract/package-lock.json b/contract/package-lock.json new file mode 100644 index 0000000..04deffc --- /dev/null +++ b/contract/package-lock.json @@ -0,0 +1,7346 @@ +{ + "name": "block-accounting", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "@types/chai": "^4.3.14", + "@types/mocha": "^10.0.6", + "@types/node": "^20.12.8", + "chai": "^4.4.1", + "hardhat": "^2.22.3", + "ts-node": "^10.9.2", + "typescript": "^5.4.5" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "dev": true, + "peer": true + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "dev": true, + "peer": true, + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "dev": true, + "peer": true, + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/curves": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/hashes": "1.3.3" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@scure/bip32": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", + "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/curves": "~1.3.0", + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@scure/bip39": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", + "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", + "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/curves": "1.3.0", + "@noble/hashes": "1.3.3", + "@scure/bip32": "1.3.3", + "@scure/bip39": "1.2.2" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true, + "peer": true + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dev": true, + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "peer": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nomicfoundation/edr": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.3.7.tgz", + "integrity": "sha512-v2JFWnFKRsnOa6PDUrD+sr8amcdhxnG/YbL7LzmgRGU1odWEyOF4/EwNeUajQr4ZNKVWrYnJ6XjydXtUge5OBQ==", + "dev": true, + "engines": { + "node": ">= 18" + }, + "optionalDependencies": { + "@nomicfoundation/edr-darwin-arm64": "0.3.7", + "@nomicfoundation/edr-darwin-x64": "0.3.7", + "@nomicfoundation/edr-linux-arm64-gnu": "0.3.7", + "@nomicfoundation/edr-linux-arm64-musl": "0.3.7", + "@nomicfoundation/edr-linux-x64-gnu": "0.3.7", + "@nomicfoundation/edr-linux-x64-musl": "0.3.7", + "@nomicfoundation/edr-win32-x64-msvc": "0.3.7" + } + }, + "node_modules/@nomicfoundation/edr-darwin-arm64": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.3.7.tgz", + "integrity": "sha512-6tK9Lv/lSfyBvpEQ4nsTfgxyDT1y1Uv/x8Wa+aB+E8qGo3ToexQ1BMVjxJk6PChXCDOWxB3B4KhqaZFjdhl3Ow==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-darwin-x64": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.3.7.tgz", + "integrity": "sha512-1RrQ/1JPwxrYO69e0tglFv5H+ggour5Ii3bb727+yBpBShrxtOTQ7fZyfxA5h62LCN+0Z9wYOPeQ7XFcVurMaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.3.7.tgz", + "integrity": "sha512-ds/CKlBoVXIihjhflhgPn13EdKWed6r5bgvMs/YwRqT5wldQAQJZWAfA2+nYm0Yi2gMGh1RUpBcfkyl4pq7G+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-musl": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.3.7.tgz", + "integrity": "sha512-e29udiRaPujhLkM3+R6ju7QISrcyOqpcaxb2FsDWBkuD7H8uU9JPZEyyUIpEp5uIY0Jh1eEJPKZKIXQmQAEAuw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-gnu": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.3.7.tgz", + "integrity": "sha512-/xkjmTyv+bbJ4akBCW0qzFKxPOV4AqLOmqurov+s9umHb16oOv72osSa3SdzJED2gHDaKmpMITT4crxbar4Axg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-musl": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.3.7.tgz", + "integrity": "sha512-QwBP9xlmsbf/ldZDGLcE4QiAb8Zt46E/+WLpxHBATFhGa7MrpJh6Zse+h2VlrT/SYLPbh2cpHgSmoSlqVxWG9g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-win32-x64-msvc": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.3.7.tgz", + "integrity": "sha512-j/80DEnkxrF2ewdbk/gQ2EOPvgF0XSsg8D0o4+6cKhUVAW6XwtWKzIphNL6dyD2YaWEPgIrNvqiJK/aln0ww4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", + "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-util": "9.0.4" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", + "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", + "dev": true, + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", + "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", + "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", + "dev": true, + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/hardhat-chai-matchers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.6.tgz", + "integrity": "sha512-Te1Uyo9oJcTCF0Jy9dztaLpshmlpjLf2yPtWXlXuLjMt3RRSmJLm/+rKVTW6gfadAEs12U/it6D0ZRnnRGiICQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/chai-as-promised": "^7.1.3", + "chai-as-promised": "^7.1.1", + "deep-eql": "^4.0.1", + "ordinal": "^1.0.3" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "chai": "^4.2.0", + "ethers": "^6.1.0", + "hardhat": "^2.9.4" + } + }, + "node_modules/@nomicfoundation/hardhat-ethers": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz", + "integrity": "sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "lodash.isequal": "^4.5.0" + }, + "peerDependencies": { + "ethers": "^6.1.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.1.tgz", + "integrity": "sha512-hWV/W9ZdG9HIqUiQXexrwoBBGP4IrDLghlZPAXXEXETmJ2AVPnBKQG626YmAYgEk2G3vX9ojn16daT+H2i/mFA==", + "dev": true, + "peer": true, + "dependencies": { + "@nomicfoundation/ignition-core": "^0.15.1", + "@nomicfoundation/ignition-ui": "^0.15.1", + "chalk": "^4.0.0", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "prompts": "^2.4.2" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-verify": "^2.0.1", + "hardhat": "^2.18.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition-ethers": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.1.tgz", + "integrity": "sha512-FPeE0EbJ+RcBGro9TxODyDffpSPhnG8ra43nJp7/1H2M0S+UkmJUeZlSjAIVfUut1zMwy+57j+PNn07dOr/YmQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.4", + "@nomicfoundation/hardhat-ignition": "^0.15.1", + "@nomicfoundation/ignition-core": "^0.15.1", + "ethers": "^6.7.0", + "hardhat": "^2.18.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz", + "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==", + "dev": true, + "peer": true, + "dependencies": { + "ethereumjs-util": "^7.1.4" + }, + "peerDependencies": { + "hardhat": "^2.9.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-toolbox": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz", + "integrity": "sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==", + "dev": true, + "peerDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "@typechain/ethers-v6": "^0.5.0", + "@typechain/hardhat": "^9.0.0", + "@types/chai": "^4.2.0", + "@types/mocha": ">=9.1.0", + "@types/node": ">=18.0.0", + "chai": "^4.2.0", + "ethers": "^6.4.0", + "hardhat": "^2.11.0", + "hardhat-gas-reporter": "^1.0.8", + "solidity-coverage": "^0.8.1", + "ts-node": ">=8.0.0", + "typechain": "^8.3.0", + "typescript": ">=4.5.0" + } + }, + "node_modules/@nomicfoundation/hardhat-verify": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.6.tgz", + "integrity": "sha512-oKUI5fl8QC8jysE2LUBHE6rObzEmccJcc4b43Ov7LFMlCBZJE27qoqGIsg/++wX7L8Jdga+bkejPxl8NvsecpQ==", + "dev": true, + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^8.1.0", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "lodash.clonedeep": "^4.5.0", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.14.0" + }, + "peerDependencies": { + "hardhat": "^2.0.4" + } + }, + "node_modules/@nomicfoundation/ignition-core": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.1.tgz", + "integrity": "sha512-/AZO0YHRv1+yQSOtSSbg4GEH9YhU8EVePSfByU2PZW2bsAK0SA8GdoLYFbVNl140dogem5lrE+bCKtX0eN/n+A==", + "dev": true, + "peer": true, + "dependencies": { + "@ethersproject/address": "5.6.1", + "@nomicfoundation/solidity-analyzer": "^0.1.1", + "cbor": "^9.0.0", + "debug": "^4.3.2", + "ethers": "^6.7.0", + "fs-extra": "^10.0.0", + "immer": "10.0.2", + "lodash": "4.17.21", + "ndjson": "2.0.0" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "dev": true, + "peer": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nomicfoundation/ignition-ui": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.1.tgz", + "integrity": "sha512-ecx6M9K4IeF7L0XCcHg0E72zlVaGSOlkhb/9XuWrA2ltfB/e4ZsOhVxXtwDf9xIcaq7tUdMSxyj6Ld0bPAhxAw==", + "dev": true, + "peer": true + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "dev": true, + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==", + "dev": true, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, + "dependencies": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, + "dependencies": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@solidity-parser/parser": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", + "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", + "dev": true, + "peer": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@typechain/ethers-v6": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", + "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", + "dev": true, + "peer": true, + "dependencies": { + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "ethers": "6.x", + "typechain": "^8.3.2", + "typescript": ">=4.7.0" + } + }, + "node_modules/@typechain/hardhat": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", + "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", + "dev": true, + "peer": true, + "dependencies": { + "fs-extra": "^9.1.0" + }, + "peerDependencies": { + "@typechain/ethers-v6": "^0.5.1", + "ethers": "^6.1.0", + "hardhat": "^2.9.9", + "typechain": "^8.3.2" + } + }, + "node_modules/@typechain/hardhat/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typechain/hardhat/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@typechain/hardhat/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.14", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz", + "integrity": "sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==", + "dev": true + }, + "node_modules/@types/chai-as-promised": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "peer": true + }, + "node_modules/@types/mocha": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", + "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.12.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz", + "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "peer": true + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "dev": true, + "peer": true + }, + "node_modules/@types/secp256k1": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", + "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "dev": true, + "peer": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "dev": true, + "peer": true + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "dev": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true, + "peer": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "peer": true + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "dev": true, + "peer": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "peer": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dev": true, + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true, + "peer": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dev": true, + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dev": true, + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "peer": true + }, + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", + "dev": true, + "peer": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "peer": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "peer": true, + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-table3/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "peer": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "peer": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dev": true, + "peer": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "dev": true, + "peer": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "peer": true + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "peer": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/death": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", + "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", + "dev": true, + "peer": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "peer": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", + "dev": true, + "peer": true, + "dependencies": { + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "peer": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "peer": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "dev": true, + "peer": true, + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true, + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eth-gas-reporter": { + "version": "0.2.27", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", + "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", + "dev": true, + "peer": true, + "dependencies": { + "@solidity-parser/parser": "^0.14.0", + "axios": "^1.5.1", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^5.7.2", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^10.2.0", + "req-cwd": "^2.0.0", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" + }, + "peerDependencies": { + "@codechecks/client": "^0.1.0" + }, + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } + } + }, + "node_modules/eth-gas-reporter/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.1.0.tgz", + "integrity": "sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/hashes": "^1.4.0" + } + }, + "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethers": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.12.1.tgz", + "integrity": "sha512-j6wcVoZf06nqEcBbDWkKg8Fp895SS96dSnTCjiXT+8vt2o02raTn4Lo9ERUuIVU5bAjoPYeA+7ytQFexFmLuVw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", + "dev": true, + "peer": true + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true, + "peer": true + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "dev": true, + "peer": true, + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true, + "peer": true + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dev": true, + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "peer": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "peer": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "peer": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true, + "peer": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", + "dev": true, + "peer": true, + "dependencies": { + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" + }, + "bin": { + "testrpc-sc": "index.js" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "peer": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "peer": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "peer": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "peer": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hardhat": { + "version": "2.22.3", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.3.tgz", + "integrity": "sha512-k8JV2ECWNchD6ahkg2BR5wKVxY0OiKot7fuxiIpRK0frRqyOljcR2vKwgWSLw6YIeDcNNA4xybj7Og7NSxr2hA==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/edr": "^0.3.5", + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-tx": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "boxen": "^5.1.2", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/hardhat-gas-reporter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", + "dev": true, + "peer": true, + "dependencies": { + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" + }, + "peerDependencies": { + "hardhat": "^2.0.2" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "peer": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "dev": true, + "peer": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dev": true, + "peer": true, + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true, + "peer": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", + "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", + "dev": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "peer": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, + "dependencies": { + "fp-ts": "^1.0.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "dev": true, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "peer": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "peer": true + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "peer": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "peer": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true, + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "peer": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true, + "peer": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true, + "peer": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "peer": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true, + "peer": true + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "dev": true, + "peer": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "peer": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "peer": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "peer": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, + "dependencies": { + "obliterator": "^2.0.0" + } + }, + "node_modules/mocha": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", + "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "8.1.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/ndjson": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", + "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", + "dev": true, + "peer": true, + "dependencies": { + "json-stringify-safe": "^5.0.1", + "minimist": "^1.2.5", + "readable-stream": "^3.6.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "ndjson": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "peer": true + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "peer": true, + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "peer": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "dev": true, + "peer": true, + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "dev": true, + "peer": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "peer": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ordinal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", + "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", + "dev": true, + "peer": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true, + "peer": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "peer": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "peer": true + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dev": true, + "peer": true, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "peer": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "peer": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", + "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", + "dev": true, + "peer": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "peer": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dev": true, + "peer": true, + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/req-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", + "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", + "dev": true, + "peer": true, + "dependencies": { + "req-from": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", + "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", + "dev": true, + "peer": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "peer": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dev": true, + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sc-istanbul": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", + "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", + "dev": true, + "peer": true, + "dependencies": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "istanbul": "lib/cli.js" + } + }, + "node_modules/sc-istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/sc-istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dev": true, + "peer": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sc-istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sc-istanbul/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true, + "peer": true + }, + "node_modules/sc-istanbul/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "peer": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha1": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", + "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", + "dev": true, + "peer": true, + "dependencies": { + "charenc": ">= 0.0.1", + "crypt": ">= 0.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "peer": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "peer": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, + "dependencies": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solcjs" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/solc/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "node_modules/solc/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solidity-coverage": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.12.tgz", + "integrity": "sha512-8cOB1PtjnjFRqOgwFiD8DaUsYJtVJ6+YdXQtSZDrLGf8cdhhh8xzTtGzVTGeBf15kTv0v7lYPJlV/az7zLEPJw==", + "dev": true, + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.0.9", + "@solidity-parser/parser": "^0.18.0", + "chalk": "^2.4.2", + "death": "^1.1.0", + "difflib": "^0.2.4", + "fs-extra": "^8.1.0", + "ghost-testrpc": "^0.0.2", + "global-modules": "^2.0.0", + "globby": "^10.0.1", + "jsonschema": "^1.2.4", + "lodash": "^4.17.21", + "mocha": "^10.2.0", + "node-emoji": "^1.10.0", + "pify": "^4.0.1", + "recursive-readdir": "^2.2.2", + "sc-istanbul": "^0.4.5", + "semver": "^7.3.4", + "shelljs": "^0.8.3", + "web3-utils": "^1.3.6" + }, + "bin": { + "solidity-coverage": "plugins/bin.js" + }, + "peerDependencies": { + "hardhat": "^2.11.0" + } + }, + "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "dev": true, + "peer": true + }, + "node_modules/solidity-coverage/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/solidity-coverage/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "peer": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "peer": true + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "dev": true, + "peer": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dev": true, + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dev": true, + "peer": true, + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dev": true, + "peer": true, + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "dev": true, + "peer": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dev": true, + "peer": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "dev": true, + "peer": true + }, + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "peer": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "dev": true, + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" + } + }, + "node_modules/ts-command-line-args/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-command-line-args/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-command-line-args/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/ts-command-line-args/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-command-line-args/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typechain": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "dev": true, + "peer": true, + "dependencies": { + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" + } + }, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typechain/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "peer": true + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "peer": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "dev": true, + "peer": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/web3-utils": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", + "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", + "dev": true, + "peer": true, + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereum-cryptography": "^2.1.2", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils/node_modules/@noble/curves": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/hashes": "1.3.3" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@scure/bip32": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", + "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/curves": "~1.3.0", + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@scure/bip39": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", + "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/ethereum-cryptography": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", + "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/curves": "1.3.0", + "@noble/hashes": "1.3.3", + "@scure/bip32": "1.3.3", + "@scure/bip39": "1.2.2" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "peer": true + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dev": true, + "peer": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "peer": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/contract/package.json b/contract/package.json new file mode 100644 index 0000000..96582ea --- /dev/null +++ b/contract/package.json @@ -0,0 +1,12 @@ +{ + "devDependencies": { + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "@types/chai": "^4.3.14", + "@types/mocha": "^10.0.6", + "@types/node": "^20.12.8", + "chai": "^4.4.1", + "hardhat": "^2.22.3", + "ts-node": "^10.9.2", + "typescript": "^5.4.5" + } +} diff --git a/contract/test/Lock.ts b/contract/test/Lock.ts new file mode 100644 index 0000000..160dbfa --- /dev/null +++ b/contract/test/Lock.ts @@ -0,0 +1,127 @@ +import { + time, + loadFixture, +} from "@nomicfoundation/hardhat-toolbox/network-helpers"; +import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs"; +import { expect } from "chai"; +import hre from "hardhat"; + +describe("Lock", function () { + // We define a fixture to reuse the same setup in every test. + // We use loadFixture to run this setup once, snapshot that state, + // and reset Hardhat Network to that snapshot in every test. + async function deployOneYearLockFixture() { + const ONE_YEAR_IN_SECS = 365 * 24 * 60 * 60; + const ONE_GWEI = 1_000_000_000; + + const lockedAmount = ONE_GWEI; + const unlockTime = (await time.latest()) + ONE_YEAR_IN_SECS; + + // Contracts are deployed using the first signer/account by default + const [owner, otherAccount] = await hre.ethers.getSigners(); + + const Lock = await hre.ethers.getContractFactory("Lock"); + const lock = await Lock.deploy(unlockTime, { value: lockedAmount }); + + return { lock, unlockTime, lockedAmount, owner, otherAccount }; + } + + describe("Deployment", function () { + it("Should set the right unlockTime", async function () { + const { lock, unlockTime } = await loadFixture(deployOneYearLockFixture); + + expect(await lock.unlockTime()).to.equal(unlockTime); + }); + + it("Should set the right owner", async function () { + const { lock, owner } = await loadFixture(deployOneYearLockFixture); + + expect(await lock.owner()).to.equal(owner.address); + }); + + it("Should receive and store the funds to lock", async function () { + const { lock, lockedAmount } = await loadFixture( + deployOneYearLockFixture + ); + + expect(await hre.ethers.provider.getBalance(lock.target)).to.equal( + lockedAmount + ); + }); + + it("Should fail if the unlockTime is not in the future", async function () { + // We don't use the fixture here because we want a different deployment + const latestTime = await time.latest(); + const Lock = await hre.ethers.getContractFactory("Lock"); + await expect(Lock.deploy(latestTime, { value: 1 })).to.be.revertedWith( + "Unlock time should be in the future" + ); + }); + }); + + describe("Withdrawals", function () { + describe("Validations", function () { + it("Should revert with the right error if called too soon", async function () { + const { lock } = await loadFixture(deployOneYearLockFixture); + + await expect(lock.withdraw()).to.be.revertedWith( + "You can't withdraw yet" + ); + }); + + it("Should revert with the right error if called from another account", async function () { + const { lock, unlockTime, otherAccount } = await loadFixture( + deployOneYearLockFixture + ); + + // We can increase the time in Hardhat Network + await time.increaseTo(unlockTime); + + // We use lock.connect() to send a transaction from another account + await expect(lock.connect(otherAccount).withdraw()).to.be.revertedWith( + "You aren't the owner" + ); + }); + + it("Shouldn't fail if the unlockTime has arrived and the owner calls it", async function () { + const { lock, unlockTime } = await loadFixture( + deployOneYearLockFixture + ); + + // Transactions are sent using the first signer by default + await time.increaseTo(unlockTime); + + await expect(lock.withdraw()).not.to.be.reverted; + }); + }); + + describe("Events", function () { + it("Should emit an event on withdrawals", async function () { + const { lock, unlockTime, lockedAmount } = await loadFixture( + deployOneYearLockFixture + ); + + await time.increaseTo(unlockTime); + + await expect(lock.withdraw()) + .to.emit(lock, "Withdrawal") + .withArgs(lockedAmount, anyValue); // We accept any value as `when` arg + }); + }); + + describe("Transfers", function () { + it("Should transfer the funds to the owner", async function () { + const { lock, unlockTime, lockedAmount, owner } = await loadFixture( + deployOneYearLockFixture + ); + + await time.increaseTo(unlockTime); + + await expect(lock.withdraw()).to.changeEtherBalances( + [owner, lock], + [lockedAmount, -lockedAmount] + ); + }); + }); + }); +}); diff --git a/contract/tsconfig.json b/contract/tsconfig.json new file mode 100644 index 0000000..574e785 --- /dev/null +++ b/contract/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es2020", + "module": "commonjs", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "resolveJsonModule": true + } +} diff --git a/typechain-types/Lock.ts b/typechain-types/Lock.ts new file mode 100644 index 0000000..10557cc --- /dev/null +++ b/typechain-types/Lock.ts @@ -0,0 +1,140 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface LockInterface extends Interface { + getFunction( + nameOrSignature: "owner" | "unlockTime" | "withdraw" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; + + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "unlockTime", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "withdraw", values?: undefined): string; + + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unlockTime", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; +} + +export namespace WithdrawalEvent { + export type InputTuple = [amount: BigNumberish, when: BigNumberish]; + export type OutputTuple = [amount: bigint, when: bigint]; + export interface OutputObject { + amount: bigint; + when: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Lock extends BaseContract { + connect(runner?: ContractRunner | null): Lock; + waitForDeployment(): Promise; + + interface: LockInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + owner: TypedContractMethod<[], [string], "view">; + + unlockTime: TypedContractMethod<[], [bigint], "view">; + + withdraw: TypedContractMethod<[], [void], "nonpayable">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "owner" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unlockTime" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "withdraw" + ): TypedContractMethod<[], [void], "nonpayable">; + + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Withdrawal(uint256,uint256)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/common.ts b/typechain-types/common.ts new file mode 100644 index 0000000..56b5f21 --- /dev/null +++ b/typechain-types/common.ts @@ -0,0 +1,131 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + FunctionFragment, + Typed, + EventFragment, + ContractTransaction, + ContractTransactionResponse, + DeferredTopicFilter, + EventLog, + TransactionRequest, + LogDescription, +} from "ethers"; + +export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> + extends DeferredTopicFilter {} + +export interface TypedContractEvent< + InputTuple extends Array = any, + OutputTuple extends Array = any, + OutputObject = any +> { + (...args: Partial): TypedDeferredTopicFilter< + TypedContractEvent + >; + name: string; + fragment: EventFragment; + getFragment(...args: Partial): EventFragment; +} + +type __TypechainAOutputTuple = T extends TypedContractEvent< + infer _U, + infer W +> + ? W + : never; +type __TypechainOutputObject = T extends TypedContractEvent< + infer _U, + infer _W, + infer V +> + ? V + : never; + +export interface TypedEventLog + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export interface TypedLogDescription + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export type TypedListener = ( + ...listenerArg: [ + ...__TypechainAOutputTuple, + TypedEventLog, + ...undefined[] + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; + +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; + +export type StateMutability = "nonpayable" | "payable" | "view"; + +export type BaseOverrides = Omit; +export type NonPayableOverrides = Omit< + BaseOverrides, + "value" | "blockTag" | "enableCcipRead" +>; +export type PayableOverrides = Omit< + BaseOverrides, + "blockTag" | "enableCcipRead" +>; +export type ViewOverrides = Omit; +export type Overrides = S extends "nonpayable" + ? NonPayableOverrides + : S extends "payable" + ? PayableOverrides + : ViewOverrides; + +export type PostfixOverrides, S extends StateMutability> = + | A + | [...A, Overrides]; +export type ContractMethodArgs< + A extends Array, + S extends StateMutability +> = PostfixOverrides<{ [I in keyof A]-?: A[I] | Typed }, S>; + +export type DefaultReturnType = R extends Array ? R[0] : R; + +// export interface ContractMethod = Array, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> { +export interface TypedContractMethod< + A extends Array = Array, + R = any, + S extends StateMutability = "payable" +> { + (...args: ContractMethodArgs): S extends "view" + ? Promise> + : Promise; + + name: string; + + fragment: FunctionFragment; + + getFragment(...args: ContractMethodArgs): FunctionFragment; + + populateTransaction( + ...args: ContractMethodArgs + ): Promise; + staticCall( + ...args: ContractMethodArgs + ): Promise>; + send(...args: ContractMethodArgs): Promise; + estimateGas(...args: ContractMethodArgs): Promise; + staticCallResult(...args: ContractMethodArgs): Promise; +} diff --git a/typechain-types/factories/Lock__factory.ts b/typechain-types/factories/Lock__factory.ts new file mode 100644 index 0000000..4b6926d --- /dev/null +++ b/typechain-types/factories/Lock__factory.ts @@ -0,0 +1,133 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + BigNumberish, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { PayableOverrides } from "../common"; +import type { Lock, LockInterface } from "../Lock"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "_unlockTime", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "when", + type: "uint256", + }, + ], + name: "Withdrawal", + type: "event", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address payable", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "unlockTime", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60806040526040516105d83803806105d8833981810160405281019061002591906100f0565b804210610067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005e906101a0565b60405180910390fd5b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101c0565b600080fd5b6000819050919050565b6100cd816100ba565b81146100d857600080fd5b50565b6000815190506100ea816100c4565b92915050565b600060208284031215610106576101056100b5565b5b6000610114848285016100db565b91505092915050565b600082825260208201905092915050565b7f556e6c6f636b2074696d652073686f756c6420626520696e207468652066757460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b600061018a60238361011d565b91506101958261012e565b604082019050919050565b600060208201905081810360008301526101b98161017d565b9050919050565b610409806101cf6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033"; + +type LockConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: LockConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Lock__factory extends ContractFactory { + constructor(...args: LockConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _unlockTime: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(_unlockTime, overrides || {}); + } + override deploy( + _unlockTime: BigNumberish, + overrides?: PayableOverrides & { from?: string } + ) { + return super.deploy(_unlockTime, overrides || {}) as Promise< + Lock & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Lock__factory { + return super.connect(runner) as Lock__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): LockInterface { + return new Interface(_abi) as LockInterface; + } + static connect(address: string, runner?: ContractRunner | null): Lock { + return new Contract(address, _abi, runner) as unknown as Lock; + } +} diff --git a/typechain-types/factories/index.ts b/typechain-types/factories/index.ts new file mode 100644 index 0000000..884e7b0 --- /dev/null +++ b/typechain-types/factories/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Lock__factory } from "./Lock__factory"; diff --git a/typechain-types/hardhat.d.ts b/typechain-types/hardhat.d.ts new file mode 100644 index 0000000..9af9956 --- /dev/null +++ b/typechain-types/hardhat.d.ts @@ -0,0 +1,63 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { ethers } from "ethers"; +import { + DeployContractOptions, + FactoryOptions, + HardhatEthersHelpers as HardhatEthersHelpersBase, +} from "@nomicfoundation/hardhat-ethers/types"; + +import * as Contracts from "."; + +declare module "hardhat/types/runtime" { + interface HardhatEthersHelpers extends HardhatEthersHelpersBase { + getContractFactory( + name: "Lock", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + + getContractAt( + name: "Lock", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + + deployContract( + name: "Lock", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + + deployContract( + name: "Lock", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + + // default types + getContractFactory( + name: string, + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + abi: any[], + bytecode: ethers.BytesLike, + signer?: ethers.Signer + ): Promise; + getContractAt( + nameOrAbi: string | any[], + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + deployContract( + name: string, + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: string, + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + } +} diff --git a/typechain-types/index.ts b/typechain-types/index.ts new file mode 100644 index 0000000..9ce83e1 --- /dev/null +++ b/typechain-types/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Lock } from "./Lock"; +export * as factories from "./factories"; +export { Lock__factory } from "./factories/Lock__factory"; From aff46e2f5aac4877a900299b13bcd632b1eed197 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Sun, 5 May 2024 02:11:22 +0300 Subject: [PATCH 02/17] multisig init --- .idea/prettier.xml | 7 + README.md | 7 + .../22662767f8b1a09e64d324318d70c2ac.json | 1 - artifacts/contracts/Lock.sol/Lock.dbg.json | 4 - artifacts/contracts/Lock.sol/Lock.json | 74 --------- cache/solidity-files-cache.json | 41 ----- contract/contracts/MultiSigWallet.sol | 109 ++++++++++++++ login-flow.png | Bin 0 -> 37210 bytes typechain-types/Lock.ts | 140 ------------------ typechain-types/common.ts | 131 ---------------- typechain-types/factories/Lock__factory.ts | 133 ----------------- typechain-types/factories/index.ts | 4 - typechain-types/hardhat.d.ts | 63 -------- typechain-types/index.ts | 6 - 14 files changed, 123 insertions(+), 597 deletions(-) create mode 100644 .idea/prettier.xml delete mode 100644 artifacts/build-info/22662767f8b1a09e64d324318d70c2ac.json delete mode 100644 artifacts/contracts/Lock.sol/Lock.dbg.json delete mode 100644 artifacts/contracts/Lock.sol/Lock.json delete mode 100644 cache/solidity-files-cache.json create mode 100644 contract/contracts/MultiSigWallet.sol create mode 100644 login-flow.png delete mode 100644 typechain-types/Lock.ts delete mode 100644 typechain-types/common.ts delete mode 100644 typechain-types/factories/Lock__factory.ts delete mode 100644 typechain-types/factories/index.ts delete mode 100644 typechain-types/hardhat.d.ts delete mode 100644 typechain-types/index.ts diff --git a/.idea/prettier.xml b/.idea/prettier.xml new file mode 100644 index 0000000..0c83ac4 --- /dev/null +++ b/.idea/prettier.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 924db9e..9b1ff75 100644 --- a/README.md +++ b/README.md @@ -1 +1,8 @@ +![LOGIN FLOW](./login-flow.png "Login") ![Example architecture](./arch.png "Arch") + + +# Registration Flow +- On First Login - Owner inputs his SEED_KEY (mnemonic), creates an organization, we save its seed hash for future login and signing internal txs. +- When inviting an employee to organization- we generate an invitation link, then after clicking on this link - the user is asked for seed, if he's already registered or able to generate a seed for new account. +- \ No newline at end of file diff --git a/artifacts/build-info/22662767f8b1a09e64d324318d70c2ac.json b/artifacts/build-info/22662767f8b1a09e64d324318d70c2ac.json deleted file mode 100644 index 4c3ce8a..0000000 --- a/artifacts/build-info/22662767f8b1a09e64d324318d70c2ac.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"22662767f8b1a09e64d324318d70c2ac","_format":"hh-sol-build-info-1","solcVersion":"0.8.24","solcLongVersion":"0.8.24+commit.e11b9ed9","input":{"language":"Solidity","sources":{"contracts/Lock.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.24;\n\n// Uncomment this line to use console.log\n// import \"hardhat/console.sol\";\n\ncontract Lock {\n uint public unlockTime;\n address payable public owner;\n\n event Withdrawal(uint amount, uint when);\n\n constructor(uint _unlockTime) payable {\n require(\n block.timestamp < _unlockTime,\n \"Unlock time should be in the future\"\n );\n\n unlockTime = _unlockTime;\n owner = payable(msg.sender);\n }\n\n function withdraw() public {\n // Uncomment this line, and the import of \"hardhat/console.sol\", to print a log in your terminal\n // console.log(\"Unlock time is %o and block timestamp is %o\", unlockTime, block.timestamp);\n\n require(block.timestamp >= unlockTime, \"You can't withdraw yet\");\n require(msg.sender == owner, \"You aren't the owner\");\n\n emit Withdrawal(address(this).balance, block.timestamp);\n\n owner.transfer(address(this).balance);\n }\n}\n"}},"settings":{"evmVersion":"paris","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/Lock.sol":{"ast":{"absolutePath":"contracts/Lock.sol","exportedSymbols":{"Lock":[78]},"id":79,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"39:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"Lock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":78,"linearizedBaseContracts":[78],"name":"Lock","nameLocation":"150:4:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"251c1aa3","id":3,"mutability":"mutable","name":"unlockTime","nameLocation":"173:10:0","nodeType":"VariableDeclaration","scope":78,"src":"161:22:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2,"name":"uint","nodeType":"ElementaryTypeName","src":"161:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"8da5cb5b","id":5,"mutability":"mutable","name":"owner","nameLocation":"212:5:0","nodeType":"VariableDeclaration","scope":78,"src":"189:28:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":4,"name":"address","nodeType":"ElementaryTypeName","src":"189:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"public"},{"anonymous":false,"eventSelector":"bf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b93","id":11,"name":"Withdrawal","nameLocation":"230:10:0","nodeType":"EventDefinition","parameters":{"id":10,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"246:6:0","nodeType":"VariableDeclaration","scope":11,"src":"241:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint","nodeType":"ElementaryTypeName","src":"241:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9,"indexed":false,"mutability":"mutable","name":"when","nameLocation":"259:4:0","nodeType":"VariableDeclaration","scope":11,"src":"254:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8,"name":"uint","nodeType":"ElementaryTypeName","src":"254:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"240:24:0"},"src":"224:41:0"},{"body":{"id":36,"nodeType":"Block","src":"309:200:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"340:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"346:9:0","memberName":"timestamp","nodeType":"MemberAccess","src":"340:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":19,"name":"_unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"358:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"340:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e6c6f636b2074696d652073686f756c6420626520696e2074686520667574757265","id":21,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"383:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413","typeString":"literal_string \"Unlock time should be in the future\""},"value":"Unlock time should be in the future"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413","typeString":"literal_string \"Unlock time should be in the future\""}],"id":16,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"319:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"319:111:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23,"nodeType":"ExpressionStatement","src":"319:111:0"},{"expression":{"id":26,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"441:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25,"name":"_unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"454:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"441:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27,"nodeType":"ExpressionStatement","src":"441:24:0"},{"expression":{"id":34,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"475:5:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":31,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"491:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"495:6:0","memberName":"sender","nodeType":"MemberAccess","src":"491:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"483:8:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":29,"name":"address","nodeType":"ElementaryTypeName","src":"483:8:0","stateMutability":"payable","typeDescriptions":{}}},"id":33,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"475:27:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":35,"nodeType":"ExpressionStatement","src":"475:27:0"}]},"id":37,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13,"mutability":"mutable","name":"_unlockTime","nameLocation":"288:11:0","nodeType":"VariableDeclaration","scope":37,"src":"283:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12,"name":"uint","nodeType":"ElementaryTypeName","src":"283:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"282:18:0"},"returnParameters":{"id":15,"nodeType":"ParameterList","parameters":[],"src":"309:0:0"},"scope":78,"src":"271:238:0","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":76,"nodeType":"Block","src":"542:463:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"766:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":42,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"772:9:0","memberName":"timestamp","nodeType":"MemberAccess","src":"766:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":43,"name":"unlockTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"785:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"766:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f752063616e277420776974686472617720796574","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"797:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8","typeString":"literal_string \"You can't withdraw yet\""},"value":"You can't withdraw yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8","typeString":"literal_string \"You can't withdraw yet\""}],"id":40,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"758:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":46,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"758:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47,"nodeType":"ExpressionStatement","src":"758:64:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"840:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"844:6:0","memberName":"sender","nodeType":"MemberAccess","src":"840:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"854:5:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"840:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"596f75206172656e277420746865206f776e6572","id":53,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"861:22:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a","typeString":"literal_string \"You aren't the owner\""},"value":"You aren't the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a","typeString":"literal_string \"You aren't the owner\""}],"id":48,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"832:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"832:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55,"nodeType":"ExpressionStatement","src":"832:52:0"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":59,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"919:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Lock_$78","typeString":"contract Lock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Lock_$78","typeString":"contract Lock"}],"id":58,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"911:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57,"name":"address","nodeType":"ElementaryTypeName","src":"911:7:0","typeDescriptions":{}}},"id":60,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"911:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":61,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"925:7:0","memberName":"balance","nodeType":"MemberAccess","src":"911:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":62,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"934:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"940:9:0","memberName":"timestamp","nodeType":"MemberAccess","src":"934:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56,"name":"Withdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"900:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":64,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"900:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65,"nodeType":"EmitStatement","src":"895:55:0"},{"expression":{"arguments":[{"expression":{"arguments":[{"id":71,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"984:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Lock_$78","typeString":"contract Lock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Lock_$78","typeString":"contract Lock"}],"id":70,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"976:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"976:7:0","typeDescriptions":{}}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"976:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"990:7:0","memberName":"balance","nodeType":"MemberAccess","src":"976:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":66,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"961:5:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":68,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"967:8:0","memberName":"transfer","nodeType":"MemberAccess","src":"961:14:0","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"961:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75,"nodeType":"ExpressionStatement","src":"961:37:0"}]},"functionSelector":"3ccfd60b","id":77,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"524:8:0","nodeType":"FunctionDefinition","parameters":{"id":38,"nodeType":"ParameterList","parameters":[],"src":"532:2:0"},"returnParameters":{"id":39,"nodeType":"ParameterList","parameters":[],"src":"542:0:0"},"scope":78,"src":"515:490:0","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":79,"src":"141:866:0","usedErrors":[],"usedEvents":[11]}],"src":"39:969:0"},"id":0}},"contracts":{"contracts/Lock.sol":{"Lock":{"abi":[{"inputs":[{"internalType":"uint256","name":"_unlockTime","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"when","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_37":{"entryPoint":null,"id":37,"parameterSlots":1,"returnSlots":0},"abi_decode_t_uint256_fromMemory":{"entryPoint":219,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":240,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack":{"entryPoint":381,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":416,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":285,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":186,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":181,"id":null,"parameterSlots":0,"returnSlots":0},"store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413":{"entryPoint":302,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":196,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2248:1","nodeType":"YulBlock","src":"0:2248:1","statements":[{"body":{"nativeSrc":"47:35:1","nodeType":"YulBlock","src":"47:35:1","statements":[{"nativeSrc":"57:19:1","nodeType":"YulAssignment","src":"57:19:1","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:1","nodeType":"YulLiteral","src":"73:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:1","nodeType":"YulIdentifier","src":"67:5:1"},"nativeSrc":"67:9:1","nodeType":"YulFunctionCall","src":"67:9:1"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:1","nodeType":"YulIdentifier","src":"57:6:1"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:1","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:1","nodeType":"YulTypedName","src":"40:6:1","type":""}],"src":"7:75:1"},{"body":{"nativeSrc":"177:28:1","nodeType":"YulBlock","src":"177:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:1","nodeType":"YulLiteral","src":"194:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:1","nodeType":"YulLiteral","src":"197:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:1","nodeType":"YulIdentifier","src":"187:6:1"},"nativeSrc":"187:12:1","nodeType":"YulFunctionCall","src":"187:12:1"},"nativeSrc":"187:12:1","nodeType":"YulExpressionStatement","src":"187:12:1"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:1","nodeType":"YulFunctionDefinition","src":"88:117:1"},{"body":{"nativeSrc":"300:28:1","nodeType":"YulBlock","src":"300:28:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:1","nodeType":"YulLiteral","src":"317:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:1","nodeType":"YulLiteral","src":"320:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:1","nodeType":"YulIdentifier","src":"310:6:1"},"nativeSrc":"310:12:1","nodeType":"YulFunctionCall","src":"310:12:1"},"nativeSrc":"310:12:1","nodeType":"YulExpressionStatement","src":"310:12:1"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:1","nodeType":"YulFunctionDefinition","src":"211:117:1"},{"body":{"nativeSrc":"379:32:1","nodeType":"YulBlock","src":"379:32:1","statements":[{"nativeSrc":"389:16:1","nodeType":"YulAssignment","src":"389:16:1","value":{"name":"value","nativeSrc":"400:5:1","nodeType":"YulIdentifier","src":"400:5:1"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:1","nodeType":"YulIdentifier","src":"389:7:1"}]}]},"name":"cleanup_t_uint256","nativeSrc":"334:77:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:1","nodeType":"YulTypedName","src":"361:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:1","nodeType":"YulTypedName","src":"371:7:1","type":""}],"src":"334:77:1"},{"body":{"nativeSrc":"460:79:1","nodeType":"YulBlock","src":"460:79:1","statements":[{"body":{"nativeSrc":"517:16:1","nodeType":"YulBlock","src":"517:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:1","nodeType":"YulLiteral","src":"526:1:1","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:1","nodeType":"YulLiteral","src":"529:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:1","nodeType":"YulIdentifier","src":"519:6:1"},"nativeSrc":"519:12:1","nodeType":"YulFunctionCall","src":"519:12:1"},"nativeSrc":"519:12:1","nodeType":"YulExpressionStatement","src":"519:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:1","nodeType":"YulIdentifier","src":"483:5:1"},{"arguments":[{"name":"value","nativeSrc":"508:5:1","nodeType":"YulIdentifier","src":"508:5:1"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"490:17:1","nodeType":"YulIdentifier","src":"490:17:1"},"nativeSrc":"490:24:1","nodeType":"YulFunctionCall","src":"490:24:1"}],"functionName":{"name":"eq","nativeSrc":"480:2:1","nodeType":"YulIdentifier","src":"480:2:1"},"nativeSrc":"480:35:1","nodeType":"YulFunctionCall","src":"480:35:1"}],"functionName":{"name":"iszero","nativeSrc":"473:6:1","nodeType":"YulIdentifier","src":"473:6:1"},"nativeSrc":"473:43:1","nodeType":"YulFunctionCall","src":"473:43:1"},"nativeSrc":"470:63:1","nodeType":"YulIf","src":"470:63:1"}]},"name":"validator_revert_t_uint256","nativeSrc":"417:122:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:1","nodeType":"YulTypedName","src":"453:5:1","type":""}],"src":"417:122:1"},{"body":{"nativeSrc":"608:80:1","nodeType":"YulBlock","src":"608:80:1","statements":[{"nativeSrc":"618:22:1","nodeType":"YulAssignment","src":"618:22:1","value":{"arguments":[{"name":"offset","nativeSrc":"633:6:1","nodeType":"YulIdentifier","src":"633:6:1"}],"functionName":{"name":"mload","nativeSrc":"627:5:1","nodeType":"YulIdentifier","src":"627:5:1"},"nativeSrc":"627:13:1","nodeType":"YulFunctionCall","src":"627:13:1"},"variableNames":[{"name":"value","nativeSrc":"618:5:1","nodeType":"YulIdentifier","src":"618:5:1"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"676:5:1","nodeType":"YulIdentifier","src":"676:5:1"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"649:26:1","nodeType":"YulIdentifier","src":"649:26:1"},"nativeSrc":"649:33:1","nodeType":"YulFunctionCall","src":"649:33:1"},"nativeSrc":"649:33:1","nodeType":"YulExpressionStatement","src":"649:33:1"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"545:143:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"586:6:1","nodeType":"YulTypedName","src":"586:6:1","type":""},{"name":"end","nativeSrc":"594:3:1","nodeType":"YulTypedName","src":"594:3:1","type":""}],"returnVariables":[{"name":"value","nativeSrc":"602:5:1","nodeType":"YulTypedName","src":"602:5:1","type":""}],"src":"545:143:1"},{"body":{"nativeSrc":"771:274:1","nodeType":"YulBlock","src":"771:274:1","statements":[{"body":{"nativeSrc":"817:83:1","nodeType":"YulBlock","src":"817:83:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"819:77:1","nodeType":"YulIdentifier","src":"819:77:1"},"nativeSrc":"819:79:1","nodeType":"YulFunctionCall","src":"819:79:1"},"nativeSrc":"819:79:1","nodeType":"YulExpressionStatement","src":"819:79:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"792:7:1","nodeType":"YulIdentifier","src":"792:7:1"},{"name":"headStart","nativeSrc":"801:9:1","nodeType":"YulIdentifier","src":"801:9:1"}],"functionName":{"name":"sub","nativeSrc":"788:3:1","nodeType":"YulIdentifier","src":"788:3:1"},"nativeSrc":"788:23:1","nodeType":"YulFunctionCall","src":"788:23:1"},{"kind":"number","nativeSrc":"813:2:1","nodeType":"YulLiteral","src":"813:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"784:3:1","nodeType":"YulIdentifier","src":"784:3:1"},"nativeSrc":"784:32:1","nodeType":"YulFunctionCall","src":"784:32:1"},"nativeSrc":"781:119:1","nodeType":"YulIf","src":"781:119:1"},{"nativeSrc":"910:128:1","nodeType":"YulBlock","src":"910:128:1","statements":[{"nativeSrc":"925:15:1","nodeType":"YulVariableDeclaration","src":"925:15:1","value":{"kind":"number","nativeSrc":"939:1:1","nodeType":"YulLiteral","src":"939:1:1","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"929:6:1","nodeType":"YulTypedName","src":"929:6:1","type":""}]},{"nativeSrc":"954:74:1","nodeType":"YulAssignment","src":"954:74:1","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1000:9:1","nodeType":"YulIdentifier","src":"1000:9:1"},{"name":"offset","nativeSrc":"1011:6:1","nodeType":"YulIdentifier","src":"1011:6:1"}],"functionName":{"name":"add","nativeSrc":"996:3:1","nodeType":"YulIdentifier","src":"996:3:1"},"nativeSrc":"996:22:1","nodeType":"YulFunctionCall","src":"996:22:1"},{"name":"dataEnd","nativeSrc":"1020:7:1","nodeType":"YulIdentifier","src":"1020:7:1"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"964:31:1","nodeType":"YulIdentifier","src":"964:31:1"},"nativeSrc":"964:64:1","nodeType":"YulFunctionCall","src":"964:64:1"},"variableNames":[{"name":"value0","nativeSrc":"954:6:1","nodeType":"YulIdentifier","src":"954:6:1"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"694:351:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"741:9:1","nodeType":"YulTypedName","src":"741:9:1","type":""},{"name":"dataEnd","nativeSrc":"752:7:1","nodeType":"YulTypedName","src":"752:7:1","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"764:6:1","nodeType":"YulTypedName","src":"764:6:1","type":""}],"src":"694:351:1"},{"body":{"nativeSrc":"1147:73:1","nodeType":"YulBlock","src":"1147:73:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1164:3:1","nodeType":"YulIdentifier","src":"1164:3:1"},{"name":"length","nativeSrc":"1169:6:1","nodeType":"YulIdentifier","src":"1169:6:1"}],"functionName":{"name":"mstore","nativeSrc":"1157:6:1","nodeType":"YulIdentifier","src":"1157:6:1"},"nativeSrc":"1157:19:1","nodeType":"YulFunctionCall","src":"1157:19:1"},"nativeSrc":"1157:19:1","nodeType":"YulExpressionStatement","src":"1157:19:1"},{"nativeSrc":"1185:29:1","nodeType":"YulAssignment","src":"1185:29:1","value":{"arguments":[{"name":"pos","nativeSrc":"1204:3:1","nodeType":"YulIdentifier","src":"1204:3:1"},{"kind":"number","nativeSrc":"1209:4:1","nodeType":"YulLiteral","src":"1209:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1200:3:1","nodeType":"YulIdentifier","src":"1200:3:1"},"nativeSrc":"1200:14:1","nodeType":"YulFunctionCall","src":"1200:14:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"1185:11:1","nodeType":"YulIdentifier","src":"1185:11:1"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1051:169:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1119:3:1","nodeType":"YulTypedName","src":"1119:3:1","type":""},{"name":"length","nativeSrc":"1124:6:1","nodeType":"YulTypedName","src":"1124:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1135:11:1","nodeType":"YulTypedName","src":"1135:11:1","type":""}],"src":"1051:169:1"},{"body":{"nativeSrc":"1332:116:1","nodeType":"YulBlock","src":"1332:116:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1354:6:1","nodeType":"YulIdentifier","src":"1354:6:1"},{"kind":"number","nativeSrc":"1362:1:1","nodeType":"YulLiteral","src":"1362:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1350:3:1","nodeType":"YulIdentifier","src":"1350:3:1"},"nativeSrc":"1350:14:1","nodeType":"YulFunctionCall","src":"1350:14:1"},{"hexValue":"556e6c6f636b2074696d652073686f756c6420626520696e2074686520667574","kind":"string","nativeSrc":"1366:34:1","nodeType":"YulLiteral","src":"1366:34:1","type":"","value":"Unlock time should be in the fut"}],"functionName":{"name":"mstore","nativeSrc":"1343:6:1","nodeType":"YulIdentifier","src":"1343:6:1"},"nativeSrc":"1343:58:1","nodeType":"YulFunctionCall","src":"1343:58:1"},"nativeSrc":"1343:58:1","nodeType":"YulExpressionStatement","src":"1343:58:1"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1422:6:1","nodeType":"YulIdentifier","src":"1422:6:1"},{"kind":"number","nativeSrc":"1430:2:1","nodeType":"YulLiteral","src":"1430:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1418:3:1","nodeType":"YulIdentifier","src":"1418:3:1"},"nativeSrc":"1418:15:1","nodeType":"YulFunctionCall","src":"1418:15:1"},{"hexValue":"757265","kind":"string","nativeSrc":"1435:5:1","nodeType":"YulLiteral","src":"1435:5:1","type":"","value":"ure"}],"functionName":{"name":"mstore","nativeSrc":"1411:6:1","nodeType":"YulIdentifier","src":"1411:6:1"},"nativeSrc":"1411:30:1","nodeType":"YulFunctionCall","src":"1411:30:1"},"nativeSrc":"1411:30:1","nodeType":"YulExpressionStatement","src":"1411:30:1"}]},"name":"store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413","nativeSrc":"1226:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1324:6:1","nodeType":"YulTypedName","src":"1324:6:1","type":""}],"src":"1226:222:1"},{"body":{"nativeSrc":"1600:220:1","nodeType":"YulBlock","src":"1600:220:1","statements":[{"nativeSrc":"1610:74:1","nodeType":"YulAssignment","src":"1610:74:1","value":{"arguments":[{"name":"pos","nativeSrc":"1676:3:1","nodeType":"YulIdentifier","src":"1676:3:1"},{"kind":"number","nativeSrc":"1681:2:1","nodeType":"YulLiteral","src":"1681:2:1","type":"","value":"35"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1617:58:1","nodeType":"YulIdentifier","src":"1617:58:1"},"nativeSrc":"1617:67:1","nodeType":"YulFunctionCall","src":"1617:67:1"},"variableNames":[{"name":"pos","nativeSrc":"1610:3:1","nodeType":"YulIdentifier","src":"1610:3:1"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"1782:3:1","nodeType":"YulIdentifier","src":"1782:3:1"}],"functionName":{"name":"store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413","nativeSrc":"1693:88:1","nodeType":"YulIdentifier","src":"1693:88:1"},"nativeSrc":"1693:93:1","nodeType":"YulFunctionCall","src":"1693:93:1"},"nativeSrc":"1693:93:1","nodeType":"YulExpressionStatement","src":"1693:93:1"},{"nativeSrc":"1795:19:1","nodeType":"YulAssignment","src":"1795:19:1","value":{"arguments":[{"name":"pos","nativeSrc":"1806:3:1","nodeType":"YulIdentifier","src":"1806:3:1"},{"kind":"number","nativeSrc":"1811:2:1","nodeType":"YulLiteral","src":"1811:2:1","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1802:3:1","nodeType":"YulIdentifier","src":"1802:3:1"},"nativeSrc":"1802:12:1","nodeType":"YulFunctionCall","src":"1802:12:1"},"variableNames":[{"name":"end","nativeSrc":"1795:3:1","nodeType":"YulIdentifier","src":"1795:3:1"}]}]},"name":"abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack","nativeSrc":"1454:366:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1588:3:1","nodeType":"YulTypedName","src":"1588:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1596:3:1","nodeType":"YulTypedName","src":"1596:3:1","type":""}],"src":"1454:366:1"},{"body":{"nativeSrc":"1997:248:1","nodeType":"YulBlock","src":"1997:248:1","statements":[{"nativeSrc":"2007:26:1","nodeType":"YulAssignment","src":"2007:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"2019:9:1","nodeType":"YulIdentifier","src":"2019:9:1"},{"kind":"number","nativeSrc":"2030:2:1","nodeType":"YulLiteral","src":"2030:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2015:3:1","nodeType":"YulIdentifier","src":"2015:3:1"},"nativeSrc":"2015:18:1","nodeType":"YulFunctionCall","src":"2015:18:1"},"variableNames":[{"name":"tail","nativeSrc":"2007:4:1","nodeType":"YulIdentifier","src":"2007:4:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2054:9:1","nodeType":"YulIdentifier","src":"2054:9:1"},{"kind":"number","nativeSrc":"2065:1:1","nodeType":"YulLiteral","src":"2065:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2050:3:1","nodeType":"YulIdentifier","src":"2050:3:1"},"nativeSrc":"2050:17:1","nodeType":"YulFunctionCall","src":"2050:17:1"},{"arguments":[{"name":"tail","nativeSrc":"2073:4:1","nodeType":"YulIdentifier","src":"2073:4:1"},{"name":"headStart","nativeSrc":"2079:9:1","nodeType":"YulIdentifier","src":"2079:9:1"}],"functionName":{"name":"sub","nativeSrc":"2069:3:1","nodeType":"YulIdentifier","src":"2069:3:1"},"nativeSrc":"2069:20:1","nodeType":"YulFunctionCall","src":"2069:20:1"}],"functionName":{"name":"mstore","nativeSrc":"2043:6:1","nodeType":"YulIdentifier","src":"2043:6:1"},"nativeSrc":"2043:47:1","nodeType":"YulFunctionCall","src":"2043:47:1"},"nativeSrc":"2043:47:1","nodeType":"YulExpressionStatement","src":"2043:47:1"},{"nativeSrc":"2099:139:1","nodeType":"YulAssignment","src":"2099:139:1","value":{"arguments":[{"name":"tail","nativeSrc":"2233:4:1","nodeType":"YulIdentifier","src":"2233:4:1"}],"functionName":{"name":"abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack","nativeSrc":"2107:124:1","nodeType":"YulIdentifier","src":"2107:124:1"},"nativeSrc":"2107:131:1","nodeType":"YulFunctionCall","src":"2107:131:1"},"variableNames":[{"name":"tail","nativeSrc":"2099:4:1","nodeType":"YulIdentifier","src":"2099:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1826:419:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1977:9:1","nodeType":"YulTypedName","src":"1977:9:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1992:4:1","nodeType":"YulTypedName","src":"1992:4:1","type":""}],"src":"1826:419:1"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413(memPtr) {\n\n mstore(add(memPtr, 0), \"Unlock time should be in the fut\")\n\n mstore(add(memPtr, 32), \"ure\")\n\n }\n\n function abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516105d83803806105d8833981810160405281019061002591906100f0565b804210610067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005e906101a0565b60405180910390fd5b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101c0565b600080fd5b6000819050919050565b6100cd816100ba565b81146100d857600080fd5b50565b6000815190506100ea816100c4565b92915050565b600060208284031215610106576101056100b5565b5b6000610114848285016100db565b91505092915050565b600082825260208201905092915050565b7f556e6c6f636b2074696d652073686f756c6420626520696e207468652066757460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b600061018a60238361011d565b91506101958261012e565b604082019050919050565b600060208201905081810360008301526101b98161017d565b9050919050565b610409806101cf6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x5D8 CODESIZE SUB DUP1 PUSH2 0x5D8 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0xF0 JUMP JUMPDEST DUP1 TIMESTAMP LT PUSH2 0x67 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E SWAP1 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD DUP2 PUSH2 0xBA JUMP JUMPDEST DUP2 EQ PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEA DUP2 PUSH2 0xC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x106 JUMPI PUSH2 0x105 PUSH2 0xB5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x114 DUP5 DUP3 DUP6 ADD PUSH2 0xDB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E6C6F636B2074696D652073686F756C6420626520696E2074686520667574 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7572650000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A PUSH1 0x23 DUP4 PUSH2 0x11D JUMP JUMPDEST SWAP2 POP PUSH2 0x195 DUP3 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1B9 DUP2 PUSH2 0x17D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x409 DUP1 PUSH2 0x1CF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x251C1AA3 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x20B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD TIMESTAMP LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE SWAP1 PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x167 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15E SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBF2ED60BD5B5965D685680C01195C9514E4382E28E3A5A2D2D5244BF59411B93 SELFBALANCE TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x198 SWAP3 SWAP2 SWAP1 PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x244 DUP2 PUSH2 0x231 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x290 DUP3 PUSH2 0x265 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A0 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2BB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x297 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F752063616E27742077697468647261772079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x308 PUSH1 0x16 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x313 DUP3 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x337 DUP2 PUSH2 0x2FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F75206172656E277420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x374 PUSH1 0x14 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x37F DUP3 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3A3 DUP2 PUSH2 0x367 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3BF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B JUMP JUMPDEST PUSH2 0x3CC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 0xB6 MSTORE8 SSTORE 0xAF PUSH10 0x7B0725F7BCDDF1C94BE9 ADDMOD 0xEE PUSH8 0x893E84BD3442D61F 0xDC DUP3 PC POP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ","sourceMap":"141:866:0:-:0;;;271:238;;;;;;;;;;;;;;;;;;;;;:::i;:::-;358:11;340:15;:29;319:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;454:11;441:10;:24;;;;491:10;475:5;;:27;;;;;;;;;;;;;;;;;;271:238;141:866;;88:117:1;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:169::-;1135:11;1169:6;1164:3;1157:19;1209:4;1204:3;1200:14;1185:29;;1051:169;;;;:::o;1226:222::-;1366:34;1362:1;1354:6;1350:14;1343:58;1435:5;1430:2;1422:6;1418:15;1411:30;1226:222;:::o;1454:366::-;1596:3;1617:67;1681:2;1676:3;1617:67;:::i;:::-;1610:74;;1693:93;1782:3;1693:93;:::i;:::-;1811:2;1806:3;1802:12;1795:19;;1454:366;;;:::o;1826:419::-;1992:4;2030:2;2019:9;2015:18;2007:26;;2079:9;2073:4;2069:20;2065:1;2054:9;2050:17;2043:47;2107:131;2233:4;2107:131;:::i;:::-;2099:139;;1826:419;;;:::o;141:866:0:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@owner_5":{"entryPoint":523,"id":5,"parameterSlots":0,"returnSlots":0},"@unlockTime_3":{"entryPoint":140,"id":3,"parameterSlots":0,"returnSlots":0},"@withdraw_77":{"entryPoint":146,"id":77,"parameterSlots":0,"returnSlots":0},"abi_encode_t_address_payable_to_t_address_payable_fromStack":{"entryPoint":663,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack":{"entryPoint":763,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack":{"entryPoint":871,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":571,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed":{"entryPoint":678,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":798,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":906,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":586,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":938,"id":null,"parameterSlots":3,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":705,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":645,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":613,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":561,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8":{"entryPoint":722,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a":{"entryPoint":830,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3550:1","nodeType":"YulBlock","src":"0:3550:1","statements":[{"body":{"nativeSrc":"52:32:1","nodeType":"YulBlock","src":"52:32:1","statements":[{"nativeSrc":"62:16:1","nodeType":"YulAssignment","src":"62:16:1","value":{"name":"value","nativeSrc":"73:5:1","nodeType":"YulIdentifier","src":"73:5:1"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:1","nodeType":"YulIdentifier","src":"62:7:1"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7:77:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:1","nodeType":"YulTypedName","src":"34:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:1","nodeType":"YulTypedName","src":"44:7:1","type":""}],"src":"7:77:1"},{"body":{"nativeSrc":"155:53:1","nodeType":"YulBlock","src":"155:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"172:3:1","nodeType":"YulIdentifier","src":"172:3:1"},{"arguments":[{"name":"value","nativeSrc":"195:5:1","nodeType":"YulIdentifier","src":"195:5:1"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"177:17:1","nodeType":"YulIdentifier","src":"177:17:1"},"nativeSrc":"177:24:1","nodeType":"YulFunctionCall","src":"177:24:1"}],"functionName":{"name":"mstore","nativeSrc":"165:6:1","nodeType":"YulIdentifier","src":"165:6:1"},"nativeSrc":"165:37:1","nodeType":"YulFunctionCall","src":"165:37:1"},"nativeSrc":"165:37:1","nodeType":"YulExpressionStatement","src":"165:37:1"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"90:118:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"143:5:1","nodeType":"YulTypedName","src":"143:5:1","type":""},{"name":"pos","nativeSrc":"150:3:1","nodeType":"YulTypedName","src":"150:3:1","type":""}],"src":"90:118:1"},{"body":{"nativeSrc":"312:124:1","nodeType":"YulBlock","src":"312:124:1","statements":[{"nativeSrc":"322:26:1","nodeType":"YulAssignment","src":"322:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"334:9:1","nodeType":"YulIdentifier","src":"334:9:1"},{"kind":"number","nativeSrc":"345:2:1","nodeType":"YulLiteral","src":"345:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"330:3:1","nodeType":"YulIdentifier","src":"330:3:1"},"nativeSrc":"330:18:1","nodeType":"YulFunctionCall","src":"330:18:1"},"variableNames":[{"name":"tail","nativeSrc":"322:4:1","nodeType":"YulIdentifier","src":"322:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"402:6:1","nodeType":"YulIdentifier","src":"402:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"415:9:1","nodeType":"YulIdentifier","src":"415:9:1"},{"kind":"number","nativeSrc":"426:1:1","nodeType":"YulLiteral","src":"426:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"411:3:1","nodeType":"YulIdentifier","src":"411:3:1"},"nativeSrc":"411:17:1","nodeType":"YulFunctionCall","src":"411:17:1"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"358:43:1","nodeType":"YulIdentifier","src":"358:43:1"},"nativeSrc":"358:71:1","nodeType":"YulFunctionCall","src":"358:71:1"},"nativeSrc":"358:71:1","nodeType":"YulExpressionStatement","src":"358:71:1"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"214:222:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"284:9:1","nodeType":"YulTypedName","src":"284:9:1","type":""},{"name":"value0","nativeSrc":"296:6:1","nodeType":"YulTypedName","src":"296:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"307:4:1","nodeType":"YulTypedName","src":"307:4:1","type":""}],"src":"214:222:1"},{"body":{"nativeSrc":"487:81:1","nodeType":"YulBlock","src":"487:81:1","statements":[{"nativeSrc":"497:65:1","nodeType":"YulAssignment","src":"497:65:1","value":{"arguments":[{"name":"value","nativeSrc":"512:5:1","nodeType":"YulIdentifier","src":"512:5:1"},{"kind":"number","nativeSrc":"519:42:1","nodeType":"YulLiteral","src":"519:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"508:3:1","nodeType":"YulIdentifier","src":"508:3:1"},"nativeSrc":"508:54:1","nodeType":"YulFunctionCall","src":"508:54:1"},"variableNames":[{"name":"cleaned","nativeSrc":"497:7:1","nodeType":"YulIdentifier","src":"497:7:1"}]}]},"name":"cleanup_t_uint160","nativeSrc":"442:126:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"469:5:1","nodeType":"YulTypedName","src":"469:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"479:7:1","nodeType":"YulTypedName","src":"479:7:1","type":""}],"src":"442:126:1"},{"body":{"nativeSrc":"627:51:1","nodeType":"YulBlock","src":"627:51:1","statements":[{"nativeSrc":"637:35:1","nodeType":"YulAssignment","src":"637:35:1","value":{"arguments":[{"name":"value","nativeSrc":"666:5:1","nodeType":"YulIdentifier","src":"666:5:1"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"648:17:1","nodeType":"YulIdentifier","src":"648:17:1"},"nativeSrc":"648:24:1","nodeType":"YulFunctionCall","src":"648:24:1"},"variableNames":[{"name":"cleaned","nativeSrc":"637:7:1","nodeType":"YulIdentifier","src":"637:7:1"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"574:104:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"609:5:1","nodeType":"YulTypedName","src":"609:5:1","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"619:7:1","nodeType":"YulTypedName","src":"619:7:1","type":""}],"src":"574:104:1"},{"body":{"nativeSrc":"765:61:1","nodeType":"YulBlock","src":"765:61:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"782:3:1","nodeType":"YulIdentifier","src":"782:3:1"},{"arguments":[{"name":"value","nativeSrc":"813:5:1","nodeType":"YulIdentifier","src":"813:5:1"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"787:25:1","nodeType":"YulIdentifier","src":"787:25:1"},"nativeSrc":"787:32:1","nodeType":"YulFunctionCall","src":"787:32:1"}],"functionName":{"name":"mstore","nativeSrc":"775:6:1","nodeType":"YulIdentifier","src":"775:6:1"},"nativeSrc":"775:45:1","nodeType":"YulFunctionCall","src":"775:45:1"},"nativeSrc":"775:45:1","nodeType":"YulExpressionStatement","src":"775:45:1"}]},"name":"abi_encode_t_address_payable_to_t_address_payable_fromStack","nativeSrc":"684:142:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"753:5:1","nodeType":"YulTypedName","src":"753:5:1","type":""},{"name":"pos","nativeSrc":"760:3:1","nodeType":"YulTypedName","src":"760:3:1","type":""}],"src":"684:142:1"},{"body":{"nativeSrc":"946:140:1","nodeType":"YulBlock","src":"946:140:1","statements":[{"nativeSrc":"956:26:1","nodeType":"YulAssignment","src":"956:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"968:9:1","nodeType":"YulIdentifier","src":"968:9:1"},{"kind":"number","nativeSrc":"979:2:1","nodeType":"YulLiteral","src":"979:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"964:3:1","nodeType":"YulIdentifier","src":"964:3:1"},"nativeSrc":"964:18:1","nodeType":"YulFunctionCall","src":"964:18:1"},"variableNames":[{"name":"tail","nativeSrc":"956:4:1","nodeType":"YulIdentifier","src":"956:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1052:6:1","nodeType":"YulIdentifier","src":"1052:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"1065:9:1","nodeType":"YulIdentifier","src":"1065:9:1"},{"kind":"number","nativeSrc":"1076:1:1","nodeType":"YulLiteral","src":"1076:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1061:3:1","nodeType":"YulIdentifier","src":"1061:3:1"},"nativeSrc":"1061:17:1","nodeType":"YulFunctionCall","src":"1061:17:1"}],"functionName":{"name":"abi_encode_t_address_payable_to_t_address_payable_fromStack","nativeSrc":"992:59:1","nodeType":"YulIdentifier","src":"992:59:1"},"nativeSrc":"992:87:1","nodeType":"YulFunctionCall","src":"992:87:1"},"nativeSrc":"992:87:1","nodeType":"YulExpressionStatement","src":"992:87:1"}]},"name":"abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed","nativeSrc":"832:254:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"918:9:1","nodeType":"YulTypedName","src":"918:9:1","type":""},{"name":"value0","nativeSrc":"930:6:1","nodeType":"YulTypedName","src":"930:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"941:4:1","nodeType":"YulTypedName","src":"941:4:1","type":""}],"src":"832:254:1"},{"body":{"nativeSrc":"1188:73:1","nodeType":"YulBlock","src":"1188:73:1","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1205:3:1","nodeType":"YulIdentifier","src":"1205:3:1"},{"name":"length","nativeSrc":"1210:6:1","nodeType":"YulIdentifier","src":"1210:6:1"}],"functionName":{"name":"mstore","nativeSrc":"1198:6:1","nodeType":"YulIdentifier","src":"1198:6:1"},"nativeSrc":"1198:19:1","nodeType":"YulFunctionCall","src":"1198:19:1"},"nativeSrc":"1198:19:1","nodeType":"YulExpressionStatement","src":"1198:19:1"},{"nativeSrc":"1226:29:1","nodeType":"YulAssignment","src":"1226:29:1","value":{"arguments":[{"name":"pos","nativeSrc":"1245:3:1","nodeType":"YulIdentifier","src":"1245:3:1"},{"kind":"number","nativeSrc":"1250:4:1","nodeType":"YulLiteral","src":"1250:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1241:3:1","nodeType":"YulIdentifier","src":"1241:3:1"},"nativeSrc":"1241:14:1","nodeType":"YulFunctionCall","src":"1241:14:1"},"variableNames":[{"name":"updated_pos","nativeSrc":"1226:11:1","nodeType":"YulIdentifier","src":"1226:11:1"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1092:169:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1160:3:1","nodeType":"YulTypedName","src":"1160:3:1","type":""},{"name":"length","nativeSrc":"1165:6:1","nodeType":"YulTypedName","src":"1165:6:1","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1176:11:1","nodeType":"YulTypedName","src":"1176:11:1","type":""}],"src":"1092:169:1"},{"body":{"nativeSrc":"1373:66:1","nodeType":"YulBlock","src":"1373:66:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"1395:6:1","nodeType":"YulIdentifier","src":"1395:6:1"},{"kind":"number","nativeSrc":"1403:1:1","nodeType":"YulLiteral","src":"1403:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1391:3:1","nodeType":"YulIdentifier","src":"1391:3:1"},"nativeSrc":"1391:14:1","nodeType":"YulFunctionCall","src":"1391:14:1"},{"hexValue":"596f752063616e277420776974686472617720796574","kind":"string","nativeSrc":"1407:24:1","nodeType":"YulLiteral","src":"1407:24:1","type":"","value":"You can't withdraw yet"}],"functionName":{"name":"mstore","nativeSrc":"1384:6:1","nodeType":"YulIdentifier","src":"1384:6:1"},"nativeSrc":"1384:48:1","nodeType":"YulFunctionCall","src":"1384:48:1"},"nativeSrc":"1384:48:1","nodeType":"YulExpressionStatement","src":"1384:48:1"}]},"name":"store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8","nativeSrc":"1267:172:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1365:6:1","nodeType":"YulTypedName","src":"1365:6:1","type":""}],"src":"1267:172:1"},{"body":{"nativeSrc":"1591:220:1","nodeType":"YulBlock","src":"1591:220:1","statements":[{"nativeSrc":"1601:74:1","nodeType":"YulAssignment","src":"1601:74:1","value":{"arguments":[{"name":"pos","nativeSrc":"1667:3:1","nodeType":"YulIdentifier","src":"1667:3:1"},{"kind":"number","nativeSrc":"1672:2:1","nodeType":"YulLiteral","src":"1672:2:1","type":"","value":"22"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1608:58:1","nodeType":"YulIdentifier","src":"1608:58:1"},"nativeSrc":"1608:67:1","nodeType":"YulFunctionCall","src":"1608:67:1"},"variableNames":[{"name":"pos","nativeSrc":"1601:3:1","nodeType":"YulIdentifier","src":"1601:3:1"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"1773:3:1","nodeType":"YulIdentifier","src":"1773:3:1"}],"functionName":{"name":"store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8","nativeSrc":"1684:88:1","nodeType":"YulIdentifier","src":"1684:88:1"},"nativeSrc":"1684:93:1","nodeType":"YulFunctionCall","src":"1684:93:1"},"nativeSrc":"1684:93:1","nodeType":"YulExpressionStatement","src":"1684:93:1"},{"nativeSrc":"1786:19:1","nodeType":"YulAssignment","src":"1786:19:1","value":{"arguments":[{"name":"pos","nativeSrc":"1797:3:1","nodeType":"YulIdentifier","src":"1797:3:1"},{"kind":"number","nativeSrc":"1802:2:1","nodeType":"YulLiteral","src":"1802:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1793:3:1","nodeType":"YulIdentifier","src":"1793:3:1"},"nativeSrc":"1793:12:1","nodeType":"YulFunctionCall","src":"1793:12:1"},"variableNames":[{"name":"end","nativeSrc":"1786:3:1","nodeType":"YulIdentifier","src":"1786:3:1"}]}]},"name":"abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack","nativeSrc":"1445:366:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1579:3:1","nodeType":"YulTypedName","src":"1579:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"1587:3:1","nodeType":"YulTypedName","src":"1587:3:1","type":""}],"src":"1445:366:1"},{"body":{"nativeSrc":"1988:248:1","nodeType":"YulBlock","src":"1988:248:1","statements":[{"nativeSrc":"1998:26:1","nodeType":"YulAssignment","src":"1998:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"2010:9:1","nodeType":"YulIdentifier","src":"2010:9:1"},{"kind":"number","nativeSrc":"2021:2:1","nodeType":"YulLiteral","src":"2021:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2006:3:1","nodeType":"YulIdentifier","src":"2006:3:1"},"nativeSrc":"2006:18:1","nodeType":"YulFunctionCall","src":"2006:18:1"},"variableNames":[{"name":"tail","nativeSrc":"1998:4:1","nodeType":"YulIdentifier","src":"1998:4:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2045:9:1","nodeType":"YulIdentifier","src":"2045:9:1"},{"kind":"number","nativeSrc":"2056:1:1","nodeType":"YulLiteral","src":"2056:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2041:3:1","nodeType":"YulIdentifier","src":"2041:3:1"},"nativeSrc":"2041:17:1","nodeType":"YulFunctionCall","src":"2041:17:1"},{"arguments":[{"name":"tail","nativeSrc":"2064:4:1","nodeType":"YulIdentifier","src":"2064:4:1"},{"name":"headStart","nativeSrc":"2070:9:1","nodeType":"YulIdentifier","src":"2070:9:1"}],"functionName":{"name":"sub","nativeSrc":"2060:3:1","nodeType":"YulIdentifier","src":"2060:3:1"},"nativeSrc":"2060:20:1","nodeType":"YulFunctionCall","src":"2060:20:1"}],"functionName":{"name":"mstore","nativeSrc":"2034:6:1","nodeType":"YulIdentifier","src":"2034:6:1"},"nativeSrc":"2034:47:1","nodeType":"YulFunctionCall","src":"2034:47:1"},"nativeSrc":"2034:47:1","nodeType":"YulExpressionStatement","src":"2034:47:1"},{"nativeSrc":"2090:139:1","nodeType":"YulAssignment","src":"2090:139:1","value":{"arguments":[{"name":"tail","nativeSrc":"2224:4:1","nodeType":"YulIdentifier","src":"2224:4:1"}],"functionName":{"name":"abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack","nativeSrc":"2098:124:1","nodeType":"YulIdentifier","src":"2098:124:1"},"nativeSrc":"2098:131:1","nodeType":"YulFunctionCall","src":"2098:131:1"},"variableNames":[{"name":"tail","nativeSrc":"2090:4:1","nodeType":"YulIdentifier","src":"2090:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1817:419:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1968:9:1","nodeType":"YulTypedName","src":"1968:9:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1983:4:1","nodeType":"YulTypedName","src":"1983:4:1","type":""}],"src":"1817:419:1"},{"body":{"nativeSrc":"2348:64:1","nodeType":"YulBlock","src":"2348:64:1","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"2370:6:1","nodeType":"YulIdentifier","src":"2370:6:1"},{"kind":"number","nativeSrc":"2378:1:1","nodeType":"YulLiteral","src":"2378:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2366:3:1","nodeType":"YulIdentifier","src":"2366:3:1"},"nativeSrc":"2366:14:1","nodeType":"YulFunctionCall","src":"2366:14:1"},{"hexValue":"596f75206172656e277420746865206f776e6572","kind":"string","nativeSrc":"2382:22:1","nodeType":"YulLiteral","src":"2382:22:1","type":"","value":"You aren't the owner"}],"functionName":{"name":"mstore","nativeSrc":"2359:6:1","nodeType":"YulIdentifier","src":"2359:6:1"},"nativeSrc":"2359:46:1","nodeType":"YulFunctionCall","src":"2359:46:1"},"nativeSrc":"2359:46:1","nodeType":"YulExpressionStatement","src":"2359:46:1"}]},"name":"store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a","nativeSrc":"2242:170:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2340:6:1","nodeType":"YulTypedName","src":"2340:6:1","type":""}],"src":"2242:170:1"},{"body":{"nativeSrc":"2564:220:1","nodeType":"YulBlock","src":"2564:220:1","statements":[{"nativeSrc":"2574:74:1","nodeType":"YulAssignment","src":"2574:74:1","value":{"arguments":[{"name":"pos","nativeSrc":"2640:3:1","nodeType":"YulIdentifier","src":"2640:3:1"},{"kind":"number","nativeSrc":"2645:2:1","nodeType":"YulLiteral","src":"2645:2:1","type":"","value":"20"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2581:58:1","nodeType":"YulIdentifier","src":"2581:58:1"},"nativeSrc":"2581:67:1","nodeType":"YulFunctionCall","src":"2581:67:1"},"variableNames":[{"name":"pos","nativeSrc":"2574:3:1","nodeType":"YulIdentifier","src":"2574:3:1"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"2746:3:1","nodeType":"YulIdentifier","src":"2746:3:1"}],"functionName":{"name":"store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a","nativeSrc":"2657:88:1","nodeType":"YulIdentifier","src":"2657:88:1"},"nativeSrc":"2657:93:1","nodeType":"YulFunctionCall","src":"2657:93:1"},"nativeSrc":"2657:93:1","nodeType":"YulExpressionStatement","src":"2657:93:1"},{"nativeSrc":"2759:19:1","nodeType":"YulAssignment","src":"2759:19:1","value":{"arguments":[{"name":"pos","nativeSrc":"2770:3:1","nodeType":"YulIdentifier","src":"2770:3:1"},{"kind":"number","nativeSrc":"2775:2:1","nodeType":"YulLiteral","src":"2775:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2766:3:1","nodeType":"YulIdentifier","src":"2766:3:1"},"nativeSrc":"2766:12:1","nodeType":"YulFunctionCall","src":"2766:12:1"},"variableNames":[{"name":"end","nativeSrc":"2759:3:1","nodeType":"YulIdentifier","src":"2759:3:1"}]}]},"name":"abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack","nativeSrc":"2418:366:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"2552:3:1","nodeType":"YulTypedName","src":"2552:3:1","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2560:3:1","nodeType":"YulTypedName","src":"2560:3:1","type":""}],"src":"2418:366:1"},{"body":{"nativeSrc":"2961:248:1","nodeType":"YulBlock","src":"2961:248:1","statements":[{"nativeSrc":"2971:26:1","nodeType":"YulAssignment","src":"2971:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"2983:9:1","nodeType":"YulIdentifier","src":"2983:9:1"},{"kind":"number","nativeSrc":"2994:2:1","nodeType":"YulLiteral","src":"2994:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2979:3:1","nodeType":"YulIdentifier","src":"2979:3:1"},"nativeSrc":"2979:18:1","nodeType":"YulFunctionCall","src":"2979:18:1"},"variableNames":[{"name":"tail","nativeSrc":"2971:4:1","nodeType":"YulIdentifier","src":"2971:4:1"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3018:9:1","nodeType":"YulIdentifier","src":"3018:9:1"},{"kind":"number","nativeSrc":"3029:1:1","nodeType":"YulLiteral","src":"3029:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3014:3:1","nodeType":"YulIdentifier","src":"3014:3:1"},"nativeSrc":"3014:17:1","nodeType":"YulFunctionCall","src":"3014:17:1"},{"arguments":[{"name":"tail","nativeSrc":"3037:4:1","nodeType":"YulIdentifier","src":"3037:4:1"},{"name":"headStart","nativeSrc":"3043:9:1","nodeType":"YulIdentifier","src":"3043:9:1"}],"functionName":{"name":"sub","nativeSrc":"3033:3:1","nodeType":"YulIdentifier","src":"3033:3:1"},"nativeSrc":"3033:20:1","nodeType":"YulFunctionCall","src":"3033:20:1"}],"functionName":{"name":"mstore","nativeSrc":"3007:6:1","nodeType":"YulIdentifier","src":"3007:6:1"},"nativeSrc":"3007:47:1","nodeType":"YulFunctionCall","src":"3007:47:1"},"nativeSrc":"3007:47:1","nodeType":"YulExpressionStatement","src":"3007:47:1"},{"nativeSrc":"3063:139:1","nodeType":"YulAssignment","src":"3063:139:1","value":{"arguments":[{"name":"tail","nativeSrc":"3197:4:1","nodeType":"YulIdentifier","src":"3197:4:1"}],"functionName":{"name":"abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack","nativeSrc":"3071:124:1","nodeType":"YulIdentifier","src":"3071:124:1"},"nativeSrc":"3071:131:1","nodeType":"YulFunctionCall","src":"3071:131:1"},"variableNames":[{"name":"tail","nativeSrc":"3063:4:1","nodeType":"YulIdentifier","src":"3063:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2790:419:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2941:9:1","nodeType":"YulTypedName","src":"2941:9:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2956:4:1","nodeType":"YulTypedName","src":"2956:4:1","type":""}],"src":"2790:419:1"},{"body":{"nativeSrc":"3341:206:1","nodeType":"YulBlock","src":"3341:206:1","statements":[{"nativeSrc":"3351:26:1","nodeType":"YulAssignment","src":"3351:26:1","value":{"arguments":[{"name":"headStart","nativeSrc":"3363:9:1","nodeType":"YulIdentifier","src":"3363:9:1"},{"kind":"number","nativeSrc":"3374:2:1","nodeType":"YulLiteral","src":"3374:2:1","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3359:3:1","nodeType":"YulIdentifier","src":"3359:3:1"},"nativeSrc":"3359:18:1","nodeType":"YulFunctionCall","src":"3359:18:1"},"variableNames":[{"name":"tail","nativeSrc":"3351:4:1","nodeType":"YulIdentifier","src":"3351:4:1"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3431:6:1","nodeType":"YulIdentifier","src":"3431:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"3444:9:1","nodeType":"YulIdentifier","src":"3444:9:1"},{"kind":"number","nativeSrc":"3455:1:1","nodeType":"YulLiteral","src":"3455:1:1","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3440:3:1","nodeType":"YulIdentifier","src":"3440:3:1"},"nativeSrc":"3440:17:1","nodeType":"YulFunctionCall","src":"3440:17:1"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3387:43:1","nodeType":"YulIdentifier","src":"3387:43:1"},"nativeSrc":"3387:71:1","nodeType":"YulFunctionCall","src":"3387:71:1"},"nativeSrc":"3387:71:1","nodeType":"YulExpressionStatement","src":"3387:71:1"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"3512:6:1","nodeType":"YulIdentifier","src":"3512:6:1"},{"arguments":[{"name":"headStart","nativeSrc":"3525:9:1","nodeType":"YulIdentifier","src":"3525:9:1"},{"kind":"number","nativeSrc":"3536:2:1","nodeType":"YulLiteral","src":"3536:2:1","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3521:3:1","nodeType":"YulIdentifier","src":"3521:3:1"},"nativeSrc":"3521:18:1","nodeType":"YulFunctionCall","src":"3521:18:1"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3468:43:1","nodeType":"YulIdentifier","src":"3468:43:1"},"nativeSrc":"3468:72:1","nodeType":"YulFunctionCall","src":"3468:72:1"},"nativeSrc":"3468:72:1","nodeType":"YulExpressionStatement","src":"3468:72:1"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"3215:332:1","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3305:9:1","nodeType":"YulTypedName","src":"3305:9:1","type":""},{"name":"value1","nativeSrc":"3317:6:1","nodeType":"YulTypedName","src":"3317:6:1","type":""},{"name":"value0","nativeSrc":"3325:6:1","nodeType":"YulTypedName","src":"3325:6:1","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3336:4:1","nodeType":"YulTypedName","src":"3336:4:1","type":""}],"src":"3215:332:1"}]},"contents":"{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8(memPtr) {\n\n mstore(add(memPtr, 0), \"You can't withdraw yet\")\n\n }\n\n function abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a(memPtr) {\n\n mstore(add(memPtr, 0), \"You aren't the owner\")\n\n }\n\n function abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n","id":1,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x251C1AA3 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x20B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD TIMESTAMP LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE SWAP1 PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x167 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15E SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBF2ED60BD5B5965D685680C01195C9514E4382E28E3A5A2D2D5244BF59411B93 SELFBALANCE TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x198 SWAP3 SWAP2 SWAP1 PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x244 DUP2 PUSH2 0x231 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x290 DUP3 PUSH2 0x265 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A0 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2BB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x297 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F752063616E27742077697468647261772079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x308 PUSH1 0x16 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x313 DUP3 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x337 DUP2 PUSH2 0x2FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F75206172656E277420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x374 PUSH1 0x14 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x37F DUP3 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3A3 DUP2 PUSH2 0x367 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3BF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B JUMP JUMPDEST PUSH2 0x3CC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 0xB6 MSTORE8 SSTORE 0xAF PUSH10 0x7B0725F7BCDDF1C94BE9 ADDMOD 0xEE PUSH8 0x893E84BD3442D61F 0xDC DUP3 PC POP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ","sourceMap":"141:866:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;161:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;515:490;;;:::i;:::-;;189:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;161:22;;;;:::o;515:490::-;785:10;;766:15;:29;;758:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;854:5;;;;;;;;;;;840:19;;:10;:19;;;832:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;900:50;911:21;934:15;900:50;;;;;;;:::i;:::-;;;;;;;;961:5;;;;;;;;;;;:14;;:37;976:21;961:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;515:490::o;189:28::-;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:104::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;574:104;;;:::o;684:142::-;787:32;813:5;787:32;:::i;:::-;782:3;775:45;684:142;;:::o;832:254::-;941:4;979:2;968:9;964:18;956:26;;992:87;1076:1;1065:9;1061:17;1052:6;992:87;:::i;:::-;832:254;;;;:::o;1092:169::-;1176:11;1210:6;1205:3;1198:19;1250:4;1245:3;1241:14;1226:29;;1092:169;;;;:::o;1267:172::-;1407:24;1403:1;1395:6;1391:14;1384:48;1267:172;:::o;1445:366::-;1587:3;1608:67;1672:2;1667:3;1608:67;:::i;:::-;1601:74;;1684:93;1773:3;1684:93;:::i;:::-;1802:2;1797:3;1793:12;1786:19;;1445:366;;;:::o;1817:419::-;1983:4;2021:2;2010:9;2006:18;1998:26;;2070:9;2064:4;2060:20;2056:1;2045:9;2041:17;2034:47;2098:131;2224:4;2098:131;:::i;:::-;2090:139;;1817:419;;;:::o;2242:170::-;2382:22;2378:1;2370:6;2366:14;2359:46;2242:170;:::o;2418:366::-;2560:3;2581:67;2645:2;2640:3;2581:67;:::i;:::-;2574:74;;2657:93;2746:3;2657:93;:::i;:::-;2775:2;2770:3;2766:12;2759:19;;2418:366;;;:::o;2790:419::-;2956:4;2994:2;2983:9;2979:18;2971:26;;3043:9;3037:4;3033:20;3029:1;3018:9;3014:17;3007:47;3071:131;3197:4;3071:131;:::i;:::-;3063:139;;2790:419;;;:::o;3215:332::-;3336:4;3374:2;3363:9;3359:18;3351:26;;3387:71;3455:1;3444:9;3440:17;3431:6;3387:71;:::i;:::-;3468:72;3536:2;3525:9;3521:18;3512:6;3468:72;:::i;:::-;3215:332;;;;;:::o"},"methodIdentifiers":{"owner()":"8da5cb5b","unlockTime()":"251c1aa3","withdraw()":"3ccfd60b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_unlockTime\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"when\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Lock.sol\":\"Lock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Lock.sol\":{\"keccak256\":\"0xc458ef1602df81d573ca4759f27c351b6d7b0f7a2cf577fee984c166dda23fb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3791b0b020cda6a03a53481c0702e1126b6ec8dcbc59821b557cc0c91f8048d1\",\"dweb:/ipfs/QmNSDX5uV49DpuBWKq1gW6Uq5nKLyHS542HevwTay3n9vH\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/Lock.sol/Lock.dbg.json b/artifacts/contracts/Lock.sol/Lock.dbg.json deleted file mode 100644 index 5b332d8..0000000 --- a/artifacts/contracts/Lock.sol/Lock.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/22662767f8b1a09e64d324318d70c2ac.json" -} diff --git a/artifacts/contracts/Lock.sol/Lock.json b/artifacts/contracts/Lock.sol/Lock.json deleted file mode 100644 index 36afc98..0000000 --- a/artifacts/contracts/Lock.sol/Lock.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Lock", - "sourceName": "contracts/Lock.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_unlockTime", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "when", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address payable", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unlockTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526040516105d83803806105d8833981810160405281019061002591906100f0565b804210610067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005e906101a0565b60405180910390fd5b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101c0565b600080fd5b6000819050919050565b6100cd816100ba565b81146100d857600080fd5b50565b6000815190506100ea816100c4565b92915050565b600060208284031215610106576101056100b5565b5b6000610114848285016100db565b91505092915050565b600082825260208201905092915050565b7f556e6c6f636b2074696d652073686f756c6420626520696e207468652066757460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b600061018a60238361011d565b91506101958261012e565b604082019050919050565b600060208201905081810360008301526101b98161017d565b9050919050565b610409806101cf6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json deleted file mode 100644 index a5b0d2d..0000000 --- a/cache/solidity-files-cache.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "_format": "hh-sol-cache-2", - "files": { - "/Users/nikitapoznyakov/Desktop/work/block-accounting/contracts/Lock.sol": { - "lastModificationDate": 1714595956954, - "contentHash": "dacf0d5cb5b45dc83086de5bc1c26c2c", - "sourceName": "contracts/Lock.sol", - "solcConfig": { - "version": "0.8.24", - "settings": { - "evmVersion": "paris", - "optimizer": { - "enabled": false, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.24" - ], - "artifacts": [ - "Lock" - ] - } - } -} diff --git a/contract/contracts/MultiSigWallet.sol b/contract/contracts/MultiSigWallet.sol new file mode 100644 index 0000000..f5a8806 --- /dev/null +++ b/contract/contracts/MultiSigWallet.sol @@ -0,0 +1,109 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.20; + +contract MultiSigWallet { + event Deposit (address indexed sender, uint amount, uint balance); + event SubmitTransaction ( + address indexed owener, + uint indexed txIndex, + address indexed to, + uint value, + bytes data + ); + + event ConfirmTransaction(address indexed owner, uint indexed txIndex); + event RevokeConfirmation(address indexed owner, uint indexed txIndex); + event ExecuteTransaction(address indexed owner, uint indexed txIndex); + + address[] public owners; + + mapping(address => bool) public isOwner; + + uint public numConfirmationsRequired; + + struct Transaction { + address to; + uint value; + bytes data; + bool executed; + uint numConfirmations; + } + + mapping(uint => mapping(address => bool)) public isConfirmed; + + Transaction[] public transactions; + + modifier txExists(uint _txIndex){ + require(_txIndex < transactions.length, "tx does not exist"); + _; + } + + modifier notConfirmed(uint _txIndex) { + require(!isConfirmed[_txIndex][msg.sender], "tx already confirmed"); + _; + } + + modifier notExecuted(uint _txIndex){ + require(!transactions[_txIndex].executed, "tx already confirmed"); + _; + } + + constructor(address[] memory _owners, uint _numConfirmationsRequired){ + require(_owners.length > 0, "owners required"); + require(_numConfirmationsRequired > 0 && _numConfirmationsRequired <= owners.length, + "invalid number of required confirmations"); + for (uint i = 0; i < _owners.length; i++) { + address owner = _owners[i]; + require(owner != address(0), "invalid owner"); + require(!isOwner[owner], "owner not unique"); + isOwner[owner] = true; + owners.push(owner); + } + numConfirmationsRequired = _numConfirmationsRequired; + } + + receive() external payable { + emit Deposit(msg.sender, msg.value, address(this).balance); + } + + function submitTransaction(address _to, uint _value, bytes memory _data) public onlyOwner { + uint txIndex = transactions.length; + transactions.push( + Transaction({ + to: _to, + value: _value, + data: _data, + executed: false, + numConfirmations: 0 + }) + ); + emit SubmitTransaction(msg.sender, txIndex, _to, _value, _data); + } + + function confirmTransaction( + uint _txIndex + ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) notConfirmed(_txIndex) { + Transaction storage transaction = transactions[_txIndex]; + transaction.numConfirmations +=1; + isConfirmed[_txIndex][msg.sender] = true; + emit ConfirmTransaction(msg.sender, _txIndex); + } + +function executeTransaction(uint _txIndex) public onlyOwner txExists(_txIndex) notExecuted(_txIndex){ + Transaction storage transaction = transactions[_txIndex]; + require( + transaction.numConfirmations >=numConfirmationsRequired, "cannot execute tx" + ); + transaction.executed = true; + (bool, success, ) = transaction.to.call{value: transaction.value}(transaction.data); + require(success, "tx failed"); + emit ExecuteTransaction(msg.sender, _txIndex); +} + + function revokeConfirmation(uint _txIndex) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) { + + } + + +} \ No newline at end of file diff --git a/login-flow.png b/login-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..114f1076e24734c262e03085c8c8c0e01ad4b139 GIT binary patch literal 37210 zcmZ_0Wmwfgw>}JrutB<8LK^87kOpa_TSU5>4I-d)2}*Y;9n#$)(%m7oX^;+ycec-S z&UOAD-VX}b<`*+-)~s3UzVEfe)Kug!(aF#e5D+k5$xFXRKtO_lf6@>X@QJ?iYAyJI z==xet5}|CEVg~_%8sU|+gr=AAemZKsX3zD*&*h39*&hPp-DUnQ&sg{;i{E~3P_Sbn z;gV2SQ^zM)&#Aby8l8P|5soLb|9nmL@u!wllBS2P7x$K~ho+Z@b4wFjJR@CQEuLFS z*UeQ;E2kNr%gH-GpZeX7sZk>!Lc|e}aQqRFsSyH{&;|oJN8(;HEoIIt2#4#@5L(}yI}jMX;fG{FiDqN#Z+LgP#^UowXr$CXx0qY100QPYlA zoSMP#p@Vy~7{Jpba$}Iw|d74avU3J(oiK53y0S=XKb}q$>48c4v%I_+3P^u%a`+%i2j*IAB@rwkt#7ysvYgb zJ7+A+BuwYhRSjpRsWo}7o4!7E=S74qMHi={XP2hE66B1HO(yf7N!6r*rD*ksa=9LM zRQ-y)eibVlbn14F2n3}4q^GVZ^E;WnNBU3pU z_n$Glmw+VfQ(~9^teXcoGPLYe@-;?B15jsWe z*Uog}#Yev?gi2i#zfwzc#n=Ae!z12rTv?%-NkVH6Y|fuGl4tmp(W$C8)T5) z7`js|LKI4%WlCLd{xb%1Fow8*iKPd~@8_0$f=CX}!R7e>Ec%-VF|c7|dc^6_Yk(&( zv#Siv@>jMx3En?TeNzFeCF~+hfXFx)#%dw@gG%?&e|OV=--tsUNsqtZa1bYWx|k9i zAOZJ(@o+FD=FYt0ObD_J2{WD^VKjm>tmN^(>HJAY=v=%cjOn;VGy8?$jo9es4Er|B z=3hZV`|p*{;0^-OCOe2kK#Dw9k3!h{=#Kc$F%d3 z|8a9nu#~(^6LLZRN1cY`6gq~^GOkB0mz69?;L&WT|BUI6K;=3u-VZ)dOr=lI?UWCF zeJ@ANZhAi?u#&{lde!;<;qKDnV$M>aYLGkP&M#UBhVUPgbxTv4(W9n6_5yd94NwX{d@4#wIid}yjBl9_^nX&7Oark)lpl@4hZjtV;-QDep4QG#(FC0jtuucf@hL^N69gq+?)7U0q$240U_6n;?}(+k#Pw+eO@K9PXM2#IrZ;A zH(dVsq7W4uoT-A`b5J@ z+DZCx+`V558C2ki^+J<>wzrbRWoFmq;vtB*9P01jrYX@;YP*CPus0Evuir#QM|Gar zM?FYx1f6sY^9KXSarz#w&AnIFRMv3VxTn9STN|-X1d|ZM+xg0<%72olSkQJpZ9te! zMYJbT?#)-B((FB_O?4U|4uuGEQE9z@vAQ4VlO!#w>Z4h4H1FBDuq3#BWAk>&Gd7x& zW5lNthv!%?>EZ9n1AlQzW%%5?ugZg)i6+JnpYMEq&w`*{SSnd=c^J433vKLcTX{6Xhl^s}>xZl7auZ2eZ@P=c%OIl$+R9^jLV^fm!n3)D7`3 z49486+7HmRo%FMM)~k?HAGJMvIL&;x{n@Lwcb;sKQn>3zUPz8w{)Sxd$*K2Sqg77y zPq9&iyUgtLCibg~v(3x{bSh8g_xxv7}lG}tbto83L3xwJ@vI_Ulo3Yc-OOz-Fbhuot zhNRL(3+5CBe7HT9YtmDrRooolXye7R#+#K0_zO#QB=c3<=8LbHFA(pwx|S@c48(@{9k3hek=+7DnEs{Lj{rd}L1o3S_l zkvttRxvzY!^VYYxw6?O1Ra!Qin`Oq(HA?8X8^4sv(|kQjfPX8~uQl1WtU-9NF1GPi z$%Y8}>2PJ`nHkh z(o~wqytPN`NxR~EE!LvkMi#t-M<^JaA(S3T*9VS%wk_pt4|hi|?2xrsWTLb_s>&ce ze0;*r33hn-l3>wE=M#?Eih36iC z)Ge%hG8;dNnk=>b&A^Hr)X-}8j3DCmu08v~d`2io~?Wqn{dhXxyPaLCa(UKAIrDf=o5;)@ZHQ{D0t z;k^>GmKAcl9|70fxt~j}mRts&v(lbNzc}Qy%z#?R^qKgcPr;7-9-11!BCt%yIO)uW zHIGYhG~YmXz9$Ysx6)@M*qWr=g0Y`EJZ|HE+Gto-e;WMWsTN-KKKaFHP+q0LS&}>dZo_^CwXi!% zB>ctx4=MT!gY!-L74N;$gYVccZ+}GLC-x;$YlKEhnnsJ=Se>S>-1hb|H2sNV%*dDr(DnrjbTZRN!Cz+qW@2h&<$);i zgOcAF3^@w?kIxnPc~+_&QK zD$OBhh32_y7#GX4?ZI>ex`d0f6cgDgi&zp{9g4K%{>paiUyL@BKX;z3SoR{P#6Kse z^Y?7#GM=*W^w3z}C05U(8#FK>uO3ARU<+(`vZ^K+E-ClyV-2ortPD}bDosaJjD#tB zMHz=Jql2o@CPCFtDxW0V@|J0b{Wy|@I{j>hvTe&AImOvNo>C`*J7wo)l_XmcI@!n{ zsS4+tY)4HZyC)^ZOd>MIE=x-C(!Uhh5py53bUqqnINS|EZ_mGTI9`Lp{%!Qjd#}GF zs!!z~Zns{RBFu=mwPc{zkIOHiC@pGgJq@~!5?Ho!97e&SuoC;b&-0g8=Itv11Hb#z zOxDy0dI(3;KDVt7VVKm??;Y6i0pDojXo|j7c2J~4>!O9ZB}Pp-xu|FjsgTRJx%a0- z_KQuDRRrvt(;gbVPYem%>8g5j?}+rbR&yBD(Dzb6q#~z^My}S~Zc!`VzAH~%|AX1M zT&Kv5f_O6W#xt&k|<*HCPtC2HH|Rq_n@RW4l*x2GcpP1>yJ z0uz|c3rc0=N5|_wQ$N4FpA9BB-=CXkrD7w~sPc&9UJmYXm3W5)Iq54PE1K2oQyjx$ zlS~qL=gm^505)(LhpsQ_-hlg`-yP{HG)#l%vWWsl%ZI-$R1+`MI*n);PNIcWQwIEL z%aa${p_A%z$x>KC-6Gc;UoE!MJ-@S>C3Z}@XDsXCMqmwA^(o-ZmrFw_sn1FLHb6M_s25iH{WtFyXFN;_SyAQB}^Gj z>&Ilt=e*~!)egj2pxzG`b#2LyiFDhISviWr=b!jA*W^o3y*-G4gkMyc{hUvg4D(*% zno{vJkyeKwhhx_<8^Fttet)P1fFZkQAJnM?o`PLykPNeizef(_(4ltlGACbaJzIDr2Uj&Z2REJ%$+q zE4*yxK4wZV$#%Li9HqjxhfI4r(I|VH>{%#g3QTpTb<024e6NnQ`B|_Yg^>{+i$>i? zmuu7T_PMIJdh-_KG$9cIlUMSe)vxeX1Us-aK7XOt?~zv1}gc*YC%b?FBt#=c89fu{)r#RaXr(Y3X; z^6vCZoys0EiI#~# zpTp8s?*H0t>Ie3_%Kv+CE9$8!$!^At8PqTfSG^ zliQz~Cl$C+_~i2V7h~qEu0aspnM|3q;{6_;pu zWFk8CC4YV?a8ER6gz9ob;z;>eCp6LLW&P=6g5`A;(n;MjF%6Qm`@B?tkbe&aXFV1$ zF3xD)Y1|pxV^P^=9aQot>|Gg}3Tm)6+?6Uc&~p2llTXRgxHGQt+2-$)oLR12FY;B@ zrC~HT82w0-Alp}a+a;3CDHO;lcWEoqApH|lb~c45CJr;sB~y|_DneF^X55hN0~9Ju+q7jMRtKT(CSwzg=G$-eBN-5U_IF%tctT69G{xS1U>aML!>}rz58k zJsyq9`+KU^(%>(tV)8(y@3B#X;VmAf0;{S0Oumoz>PPU=^r88mR1*oPa&S0W@;)re z+E!q1{hEpT__mg?svL8%GB&)sI>Tk#LVl+2>p_NE17?yp$17b_?2|7^Go}{v1;vlj z2#D4Ly=#Pat9FWt%PMKa4#N^vPNqgW1aIHmOvoOPxHm`5``=8V{iYvT>1PVRq%h5B ztI^oSHK!k>)C|f58M5fK2HWQp5ySbx?>~El`CGwNo;%b$S^yfl{iStf~muiZakwRnF!7=?!ESdYt6Q3&g-g}kcNMuMa4 z-c7e+5WhUa>Mol3P&)I;lnwoEJSwbt6CK-mN10y!JWk0q?oI3c&E5fuYN=2Q$Jz4C z-xkMj4w3)Q#5Yqbk^(Wuv^M@H4Q1Cyqv9Q~;!ZR(yyjF?wa=)qKQ1ZO~&=0u?O}tb4q(U;BdKedW zt;@O`No#AGfox^&FiM;!txDFjgi)Xx#Lt^5%n?-~d(eeydMN#kABp8>O9Y<>sXGO0 zU94(`UMVxQ#%RA`SN?Yc4oN8@nwmX=dp5TztbaS3oYyFKC*_ah4vx?PC(A~UOZx@1^r>b%@ zJQ^5L&U^pOlo3e==R@m4k$$LpMyEa;wHuAwGLbbs6V)n;9_E&Wvga-M4y@Mtb~l*L1qos~S}1P^EOvnN{hNL7SKU&6Ri|=w@HM_NPlz zTMTKG&_hO1q|n4$*pJGv3da%kg|ifn`-iK_Y@fBe%WHFDNcmwq_D5D?45K*0+S(wl5X9<&#Q&>Q-3UdWjp^KmDwny?iIau{K=HVM)e@H^j>E+oIftu zHFmF8R#LCxSV5;yi~uX|@?DJ@N0i)O9fJPxxu|Np{L$>+6SysH?p2$w-`Y&n?r(KB zjI#(Y$W`R};AuEE&u^{G+fNd;&dm6*Hec)8GT#Pvd8$B@{jL~TIBF%6w#$}=t7H@OV)CW`KqX{>sW%f+z&mh6b{!C>8>tA|b)6=HCoWPl>=h%p_ZgybH;UFC&1 zSkSSWG40jojn3M)jbf+-wBIJ9oJHqC`A=_Z!ugkPc=~HmazqU7ozL0rb1o~M$n?KX zqZ?eWWI2$gRns=5vOeL`dYx8G)qyG+z{Qtt%>y|lJ#LD@_}=Qq7;ItlEzP5>{=I#S z8>89oPW;*+p>3vsX_`hLMll+asd~ouB-^)FhOdLfIjiZ58J|L26D*1VW?Hz$u4xG# zG_=@+98y%M-J7|*u`OZGB`gj_^_S2CwOmC$@~?w#&pi) zn{oALNTDb4N$5t*ip~JfI~!+S{=LKy!OO2e^f`KkPBuxWu8p6SWxW^F#J1~M%#>(M zat&C2)FVBAFyZ%Gq}rpfL%J2H9myY?rBg(?Q^&*$$^pVp0}kH*2l&gc=+}@c+D3yuXY89)s+4&sLIIw07#cH^hw^=QdI@?r)XgcTQosuiS8n>V5qH$IOHD zk>$Vtn(xC8_=GJsyZGVn!FLgJ0oAlqF(L{SXq{T)x}q5mQ>Tbgs`mrA_g4lfUSRi$zNRF+K5T>tB8r%dn7~D{_>UMS-(y6*@6&a<&Phd!gMhk7HWW? z<fUnwu z92MPoe0ySdXA`g>V&fm~(?*^~6W{Zjro2`97M zzmlK1p9XWPj@wil#ryjpOD{4!c?KAR!x?YEy^^ZIWXp^>)A1)9%|G!yrVF(omhTupHZxieQu8T!j5iR}UV(JTpVk{Oo&!6}DYE|+bK&-P|U zZo!DAUCT~>f5J{NPc)jozddX^(s$+^9P)EgTs*Y^%QeFW&&K8vtEb?EnxiQ zWH+^BE`yTZeb6oUhrO@N&-~Cx`og1x^84Da_zWii-4~M@9G-+19|FAFVOr0Ua&K<= z%_q!3xu?GG*z12IRc$61q`>6>)ipJG$E95Xnw}LsL{(JB_ji96?lZi1nRx&Xkeco> z|4ZcWepRh%>5H1v4%DYfGDLdax0@V(74C$WVm~QdH_{loA|eo$PwM4wCR7$_oz+FCgtw-ZrVz*E$b&CNEokkTQEv5q%RRtWwQ(4X>eztI%9$)AY=r;Q z!Z{Gi&7U)+0_kq>M>L{BTKp0JGa+hN+LUR2|GFDrbykr+!4D84sbFmv26-oxU;q~8 zg@beCqV(NHADpMA@`k^viZ$Q~u$MQj_1CR@@Nr%7z0~55D>|IFEw?wDOf>lbbzO#T zC2Ob%^?2{dMUk2Ry#t_%y9Bc@K;-op6bzy!j;j&aX2N zO?J*?!`#I0?!0tV$GOwcd9N!3TVNtzweA>(cZc_P*LFf#pvIjLg$ESeumrPMlsrb_ z$_oA^mTD`ID^&l*ti&SjG%)_A6*p4R``sP~c3tgQC`afiqFrbT#M00QO z0y`qvY;!=lvgqB^jJq(f8 z{-nTD5tIX7>2@gN+APzU+E2}4dc@cCuyM99Y=!*yEFTP!o*Qm7EQ7Om@aV(k3p(6w z?t+4h$}%Q4b2xXC%@|Iv<3UIWHNyrWO~I~#|6^I>ZjtN`QKsKLlpJr}0fhjI$9YZq z6i(a%HfzfwUQ0XKlmc%HFHVpu7clnSC^r~Y(tmRd!i43yB3EHTU2}J+DeU`D%vK# z?yTsaXjQHUH^a2-Zrbk8Iap7s5jC$zbc~_qSeQ1>J%XlXjJT_7(%xz%1N@+B$?T%x zoNC^(?#?*9o>-G)YTul{Z2`dXY@{M!uXWbw9HxMKsV+*psYQu9t>O)@U6Pqj#IIaf zUi3W6x;+%8R#4?ObZ{Z|G`5#*gnkh)dh0vHH&ZR3sZ!9C2D^EAFzYJj7v6ABMtTm% zg$0sqrRs*+cjSw3C;*zl`IH%G(qmxZAf> z*dZ*vA1g-{=B=lA{&D!HY*#K0?0NRqnl_N5kQ$$A%M)GB|2BTKHV|PeCyRxM>x5)f z$Vfj=KOIk`fn@X$H(be6?k$Kc`%yVnihfjU!~L_XE0ZbPT&aO4zXX|zP-!yY0hSzo zYxm|?D^xN21el2X40P$M&xw5DwCxIOw3 z0%rXia6V{(Ghbh(P^r9r4Sk|mr(E|YaaIRiC7$gpXhI+=aG!e6j7v1CT9SI7Z)9y~ zqW`L)mJ6waoJ$&NwqF3W4-m}=9UT;s#K(F1R}mt){jC*UST81fG^^uU=8=8C4lyXN ztej`s+*0Bh(sa#$6LC=@6E#@9ulFB7__EUoV=)Mm40PLd_`y_b!g$d7r}N1LCkN$Z z4aj1&L`L0dP+7Kxqh1<5Ylk0Y3$?Ikrht(dwPl-+_yME`DeOj#la!qxZF#$u2NJrF zq}*uXqC-AsZ7YVf$EH;IkFAQWkplU7qsr8XgAXD(IpVHK*pTsn)a?MdZh?3AK5r#{ z_YhPORnEKfZ+62K>k1}J-G9Ud8nk>#8zEVdvbl%nQ*~&$c<+3-s2bugHY`d__`iAN4*{#j*sq~F>I@|5o-r2A(LZG=qJg^R zxwJ_-o_JcKXTWxs^nIhsCCvR^6jQA0Y^uv;og03 zddNHW@8yxB>-QPfj{IspUlipe&W<$CWoZ1FFCd{f`!(^{w=#Unu7N1h>Y;=Y>BNDx zE41G_Ki$G($z8{Fue5HS9M7mcDy{?HUdO`hrexq>a)+qI$NV&Wjj+gO+{?%mF;^6@&>*W6k9rnD_5g~3@9u)-Cvlr* z<r#*Oj{|A+|ze}d`7*1O(8;1#nUBW48?XQX6nZ6elFPk(! z;SGXZBn|qf1GSVX-YQW%zE3+ev{Ov;{(8i3UM&t3FnxCQtHFf0>>cIgsfz3k-4uSe z#}++=I@PpBRJ*Odf9GxCT#(j>>7#JmHsE9XLotChH=~$cfLHhNaeb!R)TynxfjbjC zU?XGA$;TK(wbPWPk6T<@%g@@%R|ljSiw@}Va)tt?Ed6J>n7NIGULbck7z&=BF#N}u z_R&Vn&U(bdGqSFo_NbC%?OlE{%VgUL`jN5A6GbH%sry#K|jLDYBT^1yOQGqcAcp5C8ID0aCn61;6d?CR^LvtK*AaNwe1!E#VmmX>Q}MV1f85 zKWIc8sPJxC&=1s^;v_AnL1CewO$H#o3X5Bp&-EH@!hpTW(&Qen7O5dsM&{E)H zSdhB!Yc;z)5DG`(^_{$-=@C`zQ<&6d#ruMnwUy=?y(G?zTUNrBPH4{7uv=7YA&+`B zrDLM?8mIrs!P?Ybn1;EYGZshKo(-wlvy4wvega}k$bGD(*T4Qgr+FU0foi}R*&Q^% zbSvFybbJor^;uR6W62Ldk5@Uwg3)iTUDzvO{WP9lRz?7+u~7Ymje!77gRQ!_hov7ReVumGIxS!ggq5c-xV{Z<1ipL{MW|qi8 zMn3WW0icpkb`%Yr!UW6NIVJS{#yPZ~D?~;k*c%H(TaAs~>#Q}FZG#*%S^MpBJ_T22 zYabLpB@8p_dB*_?TiK95N-4a*n3|;}^{9N&Y|u_H`De2eD}>k-OBtvM|hB@H9@?y%*tP~fe|3O zC~`i)+gelG8~y$)u?`=mUKzW}r8tUnzSg$FGl?V@sE;hXaFFQ=5JKZwmvp2NIM3)_-1x8FjMJdN!`e zGpI+aKc{T$bHKMJn&5P_+|slpUrwNegpZ-%H1L@{Cz7x%3y?5`>I<@SopFB9B-Y}&} zCBI_Yq#NzSq@g-Jnad>or&9;xQVSBNt7v_N=ytsEKiWA1p$49$RFT3~YXNek4&|Tc zuNi0ut156?{;8C~Ju%z?A`n;TUVNdn45Qus%EMh|RJOL5gT2SMxX(ar{+{1l_P@Gi zNVPmQcBdhupN&*5{+5G+>dU)oJs^0|PoqiPiUqRm&)TL+IR5_hSp+8Y?YToQT6``u zXpY#E;Ckj~GVps{HLzU1%T9K@WH}5R`36&Nngex)ZIJr=s?hKj3Y&A z7A?HX#N)6i=-Q5mnuJRyOJMn1OE#R7qxzae1i4>XJj9^ykqZdf2IUR?K+tBZn&WEh zhV0!igHZKJTpOU#da;hpD~OL!NbEzG0BjJMQBBkk^Ru~c+H4=^kH7e=ZJEY?+;{O* z$@0csmcK8l+^~s|Gy;Lv`=s)kXVaRvvMEE%w>JBy2zrLiC%q0Wv#vYJ0W5~665>o&W z%w!-7Wo-tirvd9IN5cl*o@k<%$(w-3gBJ^qjvvm8O=3IfjlPbNBcrPVvo8epm%@>w zd34*-8tuFt@~0oJOj-N1qJgNK$Lr5;$#T)UI+}h=8a+L9d!XtGc#E$#-wi}TDFD-1 zV9NLt#+dPgTs#Dm+@ggZZ|lY==Wh7L(LRn}^kwsGt>qa`-$!veu-PIx4#eoYj{qKV z3e=nPBPKd3!aL8ZfM-onM2pO$zc73oMnBlNSGKT&KPbD~h{cz8ce%21?|r?Qn5xV_ z_spKR;+%NUG@A1>CMzb`oUd@aK%s9(RsztA9*6r|P+bnKJluPpg5xb2NQOJ@z#_(D z-~JGP06_Gg3`SFe`9Se7&^h484bNpPKLGh%DqM>6smA?xDg`aTHA%MYILH&%KM3uw)-0kfF}ufF1aTPUH$%K?+O>X4W+pb>&@$@7H1yThl{s=T#0070p||4h*;eT=wJ@qfm6o0+zQkUjkq*mNUAWLE=0~F%Rl>+si9B@i47^ z2e8$-W`GG^V1)lKl3r8b{`CDH3D)*_-yT9CTY}009HKDauzOnKKxk~~&smz^G>CO* zZvAo0FnF%p;(g8y)U$aFAcQJ|@LDR@BKMh!C-n4 zV3gUwqAGeGcSjMee+kOfie=}p6M(r7?}I8E1|ZNX0aU#GUBzg)vN~_H{uBAj<0Rtw zI1DPJ4>&P1@4@kT@#(65J-UjDRJ3t&Ckt=yW{pDZ{T0TVpWM+P#QT9^>~3M@ei|K?CEm6k{bCS^k~KS;=WU9UfpBqr z(PP2>!jZMCKBocH*#{%)dl`TSgGKTTbIx(lZBWC$NfF%;3zxadKn6FcaR0SxqpwB#bx zZBrr<6$s)OM>nUm*&6Vd<_pTXO*@hI%yl5){C2~D4Y)Y6p|b(R^-{08d9cuL|3@X; z4}cA^zF2fstpbe*^CcXO&P;F7dK2Y-^?@ju6Hm$mA4)x%=8I{<;kDQFjZqn^yy5iS z?Q!5#CV*VkB5ESt!l}Cc4>=?b=|#&54EnDyRQwl`1Rz0tL?KW__|AJUUYw;5|slWJ9d!?Kt`luTAN_B@1{z-WcA3 z2)S>$3793Dhn9!?zx+Jm_skSO^kc8wL$0>ngUYv0bx@l`!HUE?5!&yH>=xwOVKkg1 ztT=UHYEOm?_#CxZmQQVY#x>%torI!B^ya!n!a=^fsuzgW`og^lG#PFDm=6euq~{s9Ktm`Hbzkr4{k-L z=&U7b?oVTpA4Wc0RCNY1qht<-+QwbE1VXD=Q})1`%%V-ATRKzvf<6rQ38r2#CNj`W zr|^oJ)wPYO^F# z5#`DTITf@XCjzG&8sfn|oXb6+n|dP{L9XQV)ymSEfQM8h9pqg>G&lq>b%D)Ia~E`C zb+7PBHKEn?=~;quF+c#MJ{T^0gn9LRC@9ifwO^RyoHZ&UxKMD(1E z5#birl>aOppH8n!rkuM?Db0X^2mu0%4W|To{BN%-+ zB%hc9!<07im}NL<7X((P1GM=e^Q7HG-mlAt=z z`}?;crwAeRn&=OTpa=ZmDU9VL5`n2hG*FRn&D%fduG_G2FI-*zNsrMiMT-m z#&ICtLwtp@GMd)noUyu)>fPs{JLN43SpWiZCByIT2CN1(NF;xBO;k%mkUZDr@;xSqcB~DIPZc* zZ(tOUK3z-=MU}9s%Z$|b*QP*usBG63y}Mqsp1LFfhSXgj@gnB3$*H# zF#1^zF4&NM0NlYB@u+`79hAG;sbdU~yoOwDQw*`$RKS2v4O3G(K%P;G1Az&`3lF&H zd}pdyhgI3-IT)%7xLVQSH*y|vJ{VAje}EMp5>6jB;y4rRCs8Cak_W7Yu+Cw1>KZHs)`N{=DHkCwT%8f^>0RyI8S`Z6alh+gG7r@Z7aIS|9+( zALA>n>t%yGRZS!7b$9rami+=gVNVu;^VUvpqaC~+6^5M@=gW}UoSS_ z1VZo?;TYCaZGe}H)f>+kUx8|x5x8lE|NoANR=gQnHW)ki<|7T;t3x4Bo>;sU294{L z�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%0D(^=Wx#JTP0^(?iMa&XPo^?3EX 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 literal 0 HcmV?d00001 diff --git a/typechain-types/Lock.ts b/typechain-types/Lock.ts deleted file mode 100644 index 10557cc..0000000 --- a/typechain-types/Lock.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "./common"; - -export interface LockInterface extends Interface { - getFunction( - nameOrSignature: "owner" | "unlockTime" | "withdraw" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; - - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "unlockTime", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "withdraw", values?: undefined): string; - - decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "unlockTime", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; -} - -export namespace WithdrawalEvent { - export type InputTuple = [amount: BigNumberish, when: BigNumberish]; - export type OutputTuple = [amount: bigint, when: bigint]; - export interface OutputObject { - amount: bigint; - when: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface Lock extends BaseContract { - connect(runner?: ContractRunner | null): Lock; - waitForDeployment(): Promise; - - interface: LockInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - owner: TypedContractMethod<[], [string], "view">; - - unlockTime: TypedContractMethod<[], [bigint], "view">; - - withdraw: TypedContractMethod<[], [void], "nonpayable">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "owner" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "unlockTime" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "withdraw" - ): TypedContractMethod<[], [void], "nonpayable">; - - getEvent( - key: "Withdrawal" - ): TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - - filters: { - "Withdrawal(uint256,uint256)": TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - Withdrawal: TypedContractEvent< - WithdrawalEvent.InputTuple, - WithdrawalEvent.OutputTuple, - WithdrawalEvent.OutputObject - >; - }; -} diff --git a/typechain-types/common.ts b/typechain-types/common.ts deleted file mode 100644 index 56b5f21..0000000 --- a/typechain-types/common.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - FunctionFragment, - Typed, - EventFragment, - ContractTransaction, - ContractTransactionResponse, - DeferredTopicFilter, - EventLog, - TransactionRequest, - LogDescription, -} from "ethers"; - -export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> - extends DeferredTopicFilter {} - -export interface TypedContractEvent< - InputTuple extends Array = any, - OutputTuple extends Array = any, - OutputObject = any -> { - (...args: Partial): TypedDeferredTopicFilter< - TypedContractEvent - >; - name: string; - fragment: EventFragment; - getFragment(...args: Partial): EventFragment; -} - -type __TypechainAOutputTuple = T extends TypedContractEvent< - infer _U, - infer W -> - ? W - : never; -type __TypechainOutputObject = T extends TypedContractEvent< - infer _U, - infer _W, - infer V -> - ? V - : never; - -export interface TypedEventLog - extends Omit { - args: __TypechainAOutputTuple & __TypechainOutputObject; -} - -export interface TypedLogDescription - extends Omit { - args: __TypechainAOutputTuple & __TypechainOutputObject; -} - -export type TypedListener = ( - ...listenerArg: [ - ...__TypechainAOutputTuple, - TypedEventLog, - ...undefined[] - ] -) => void; - -export type MinEthersFactory = { - deploy(...a: ARGS[]): Promise; -}; - -export type GetContractTypeFromFactory = F extends MinEthersFactory< - infer C, - any -> - ? C - : never; -export type GetARGsTypeFromFactory = F extends MinEthersFactory - ? Parameters - : never; - -export type StateMutability = "nonpayable" | "payable" | "view"; - -export type BaseOverrides = Omit; -export type NonPayableOverrides = Omit< - BaseOverrides, - "value" | "blockTag" | "enableCcipRead" ->; -export type PayableOverrides = Omit< - BaseOverrides, - "blockTag" | "enableCcipRead" ->; -export type ViewOverrides = Omit; -export type Overrides = S extends "nonpayable" - ? NonPayableOverrides - : S extends "payable" - ? PayableOverrides - : ViewOverrides; - -export type PostfixOverrides, S extends StateMutability> = - | A - | [...A, Overrides]; -export type ContractMethodArgs< - A extends Array, - S extends StateMutability -> = PostfixOverrides<{ [I in keyof A]-?: A[I] | Typed }, S>; - -export type DefaultReturnType = R extends Array ? R[0] : R; - -// export interface ContractMethod = Array, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> { -export interface TypedContractMethod< - A extends Array = Array, - R = any, - S extends StateMutability = "payable" -> { - (...args: ContractMethodArgs): S extends "view" - ? Promise> - : Promise; - - name: string; - - fragment: FunctionFragment; - - getFragment(...args: ContractMethodArgs): FunctionFragment; - - populateTransaction( - ...args: ContractMethodArgs - ): Promise; - staticCall( - ...args: ContractMethodArgs - ): Promise>; - send(...args: ContractMethodArgs): Promise; - estimateGas(...args: ContractMethodArgs): Promise; - staticCallResult(...args: ContractMethodArgs): Promise; -} diff --git a/typechain-types/factories/Lock__factory.ts b/typechain-types/factories/Lock__factory.ts deleted file mode 100644 index 4b6926d..0000000 --- a/typechain-types/factories/Lock__factory.ts +++ /dev/null @@ -1,133 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - BigNumberish, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { PayableOverrides } from "../common"; -import type { Lock, LockInterface } from "../Lock"; - -const _abi = [ - { - inputs: [ - { - internalType: "uint256", - name: "_unlockTime", - type: "uint256", - }, - ], - stateMutability: "payable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "when", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address payable", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "unlockTime", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040526040516105d83803806105d8833981810160405281019061002591906100f0565b804210610067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005e906101a0565b60405180910390fd5b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101c0565b600080fd5b6000819050919050565b6100cd816100ba565b81146100d857600080fd5b50565b6000815190506100ea816100c4565b92915050565b600060208284031215610106576101056100b5565b5b6000610114848285016100db565b91505092915050565b600082825260208201905092915050565b7f556e6c6f636b2074696d652073686f756c6420626520696e207468652066757460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b600061018a60238361011d565b91506101958261012e565b604082019050919050565b600060208201905081810360008301526101b98161017d565b9050919050565b610409806101cf6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033"; - -type LockConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: LockConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Lock__factory extends ContractFactory { - constructor(...args: LockConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _unlockTime: BigNumberish, - overrides?: PayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(_unlockTime, overrides || {}); - } - override deploy( - _unlockTime: BigNumberish, - overrides?: PayableOverrides & { from?: string } - ) { - return super.deploy(_unlockTime, overrides || {}) as Promise< - Lock & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Lock__factory { - return super.connect(runner) as Lock__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): LockInterface { - return new Interface(_abi) as LockInterface; - } - static connect(address: string, runner?: ContractRunner | null): Lock { - return new Contract(address, _abi, runner) as unknown as Lock; - } -} diff --git a/typechain-types/factories/index.ts b/typechain-types/factories/index.ts deleted file mode 100644 index 884e7b0..0000000 --- a/typechain-types/factories/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Lock__factory } from "./Lock__factory"; diff --git a/typechain-types/hardhat.d.ts b/typechain-types/hardhat.d.ts deleted file mode 100644 index 9af9956..0000000 --- a/typechain-types/hardhat.d.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { ethers } from "ethers"; -import { - DeployContractOptions, - FactoryOptions, - HardhatEthersHelpers as HardhatEthersHelpersBase, -} from "@nomicfoundation/hardhat-ethers/types"; - -import * as Contracts from "."; - -declare module "hardhat/types/runtime" { - interface HardhatEthersHelpers extends HardhatEthersHelpersBase { - getContractFactory( - name: "Lock", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - - getContractAt( - name: "Lock", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - - deployContract( - name: "Lock", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - - deployContract( - name: "Lock", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - - // default types - getContractFactory( - name: string, - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - abi: any[], - bytecode: ethers.BytesLike, - signer?: ethers.Signer - ): Promise; - getContractAt( - nameOrAbi: string | any[], - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - deployContract( - name: string, - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: string, - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - } -} diff --git a/typechain-types/index.ts b/typechain-types/index.ts deleted file mode 100644 index 9ce83e1..0000000 --- a/typechain-types/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Lock } from "./Lock"; -export * as factories from "./factories"; -export { Lock__factory } from "./factories/Lock__factory"; From f2c85ca84f5be3a1e02d8313062477e172eca73f Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Sun, 5 May 2024 16:12:22 +0300 Subject: [PATCH 03/17] license idea init --- README.md | 5 +- .../account.excalidraw | 0 excalidraw/license.excalidraw | 1077 +++++++++++++++++ license.png | Bin 0 -> 186603 bytes 4 files changed, 1080 insertions(+), 2 deletions(-) rename account.excalidraw => excalidraw/account.excalidraw (100%) create mode 100644 excalidraw/license.excalidraw create mode 100644 license.png diff --git a/README.md b/README.md index 9b1ff75..bd19269 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ ![LOGIN FLOW](./login-flow.png "Login") ![Example architecture](./arch.png "Arch") +![License](./license.png "Arch") +# Registration Flow -# Registration Flow - On First Login - Owner inputs his SEED_KEY (mnemonic), creates an organization, we save its seed hash for future login and signing internal txs. - When inviting an employee to organization- we generate an invitation link, then after clicking on this link - the user is asked for seed, if he's already registered or able to generate a seed for new account. -- \ No newline at end of file +- diff --git a/account.excalidraw b/excalidraw/account.excalidraw similarity index 100% rename from account.excalidraw rename to excalidraw/account.excalidraw diff --git a/excalidraw/license.excalidraw b/excalidraw/license.excalidraw new file mode 100644 index 0000000..e871e90 --- /dev/null +++ b/excalidraw/license.excalidraw @@ -0,0 +1,1077 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "3cPVZEKMQZis2G6OAG5Nc", + "type": "ellipse", + "x": -261.23884968781294, + "y": 167.45892238179334, + "width": 387.3893229166665, + "height": 253.30078125, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a0", + "roundness": { + "type": 2 + }, + "seed": 1281420777, + "version": 262, + "versionNonce": 1889631335, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "pEakaV_UUlX9hO87fDdx9" + }, + { + "id": "PkpJYE2b0sQaX6zYoXJYv", + "type": "arrow" + }, + { + "id": "T_FI3ovQScicgXgc7tAI7", + "type": "arrow" + } + ], + "updated": 1714914489224, + "link": null, + "locked": false + }, + { + "id": "pEakaV_UUlX9hO87fDdx9", + "type": "text", + "x": -182.11095495618258, + "y": 276.55396295593073, + "width": 229.20791625976562, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a1", + "roundness": null, + "seed": 233161415, + "version": 193, + "versionNonce": 1338259753, + "isDeleted": false, + "boundElements": null, + "updated": 1714914460332, + "link": null, + "locked": false, + "text": "Product Creator", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "3cPVZEKMQZis2G6OAG5Nc", + "originalText": "Product Creator", + "lineHeight": 1.25 + }, + { + "id": "DwWTZHu2vbKlyzcrhVaA2", + "type": "ellipse", + "x": 1020.2715669788535, + "y": 22.374286965126657, + "width": 506.4973958333336, + "height": 262.6888020833333, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2", + "roundness": { + "type": 2 + }, + "seed": 1379667175, + "version": 267, + "versionNonce": 449879623, + "isDeleted": false, + "boundElements": [ + { + "id": "fL7nTr3Fo5ms7TR6xbxRm", + "type": "arrow" + }, + { + "id": "qeg1OEtwfGU0w9JGolbg_", + "type": "arrow" + }, + { + "id": "sqvaS9sOVGfjK7_wTnHRx", + "type": "arrow" + }, + { + "id": "bzLkqMdNF0bsniUPaOFhz", + "type": "arrow" + }, + { + "id": "ewj_xWWGdT4FnAcBszjMg", + "type": "arrow" + }, + { + "id": "PkpJYE2b0sQaX6zYoXJYv", + "type": "arrow" + }, + { + "id": "T_FI3ovQScicgXgc7tAI7", + "type": "arrow" + }, + { + "id": "PwRWhkGMcUqQlTCYn9chF", + "type": "arrow" + }, + { + "id": "JkpWS5BnNXqLe41myMvd0", + "type": "arrow" + } + ], + "updated": 1714914493153, + "link": null, + "locked": false + }, + { + "id": "NJxMbMxPFANuR16t3ETem", + "type": "text", + "x": 1210.8184419788531, + "y": 109.38600571512671, + "width": 123.03195190429688, + "height": 70, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a3", + "roundness": null, + "seed": 899579335, + "version": 131, + "versionNonce": 731851305, + "isDeleted": false, + "boundElements": null, + "updated": 1714914282918, + "link": null, + "locked": false, + "text": "License\nContract", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "License\nContract", + "lineHeight": 1.25 + }, + { + "id": "c0skWvPqczZdwhySQrHK9", + "type": "ellipse", + "x": 1950.4017753121866, + "y": 14.639911965126657, + "width": 467.3828125, + "height": 282.2786458333333, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a5", + "roundness": { + "type": 2 + }, + "seed": 1578595305, + "version": 85, + "versionNonce": 1546233415, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "aLYqdPSAL8Q7MXnlRrDl8" + }, + { + "id": "fL7nTr3Fo5ms7TR6xbxRm", + "type": "arrow" + }, + { + "id": "sqvaS9sOVGfjK7_wTnHRx", + "type": "arrow" + } + ], + "updated": 1714914404345, + "link": null, + "locked": false + }, + { + "id": "aLYqdPSAL8Q7MXnlRrDl8", + "type": "text", + "x": 2108.5144420109746, + "y": 138.47866255534043, + "width": 150.6679229736328, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a6", + "roundness": null, + "seed": 1577662089, + "version": 15, + "versionNonce": 1734109543, + "isDeleted": false, + "boundElements": null, + "updated": 1714914291996, + "link": null, + "locked": false, + "text": "Distributor", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "c0skWvPqczZdwhySQrHK9", + "originalText": "Distributor", + "lineHeight": 1.25 + }, + { + "id": "fL7nTr3Fo5ms7TR6xbxRm", + "type": "arrow", + "x": 1542.7520357288536, + "y": 146.84694321512671, + "width": 398.0729166666665, + "height": 2.109375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a7", + "roundness": { + "type": 2 + }, + "seed": 1907821417, + "version": 97, + "versionNonce": 528506729, + "isDeleted": false, + "boundElements": null, + "updated": 1714914294403, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 398.0729166666665, + 2.109375 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "DwWTZHu2vbKlyzcrhVaA2", + "focus": -0.06317712617262834, + "gap": 16.26306319848328 + }, + "endBinding": { + "elementId": "c0skWvPqczZdwhySQrHK9", + "focus": 0.039206887234171366, + "gap": 9.821805991873475 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "X8rc3FOAEFOPgE6Ye04fR", + "type": "rectangle", + "x": 297.8887544788537, + "y": 368.26621404846, + "width": 779.2903645833329, + "height": 424.99999999999994, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a8", + "roundness": { + "type": 3 + }, + "seed": 1340689417, + "version": 108, + "versionNonce": 94787497, + "isDeleted": false, + "boundElements": null, + "updated": 1714914300480, + "link": null, + "locked": false + }, + { + "id": "gc5FZReU9mbVcZ841gdSO", + "type": "text", + "x": 579.1973482288535, + "y": 418.53314113179334, + "width": 208.87991333007812, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a9", + "roundness": null, + "seed": 1330725225, + "version": 31, + "versionNonce": 1488663175, + "isDeleted": false, + "boundElements": null, + "updated": 1714914303918, + "link": null, + "locked": false, + "text": "Contract funcs", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Contract funcs", + "lineHeight": 1.25 + }, + { + "id": "Y1hiDpIVa-7_J-ySqtwFl", + "type": "text", + "x": 347.5632336455202, + "y": 487.60866196512666, + "width": 680.791748046875, + "height": 245, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aA", + "roundness": null, + "seed": 1020671751, + "version": 310, + "versionNonce": 204854471, + "isDeleted": false, + "boundElements": null, + "updated": 1714914507264, + "link": null, + "locked": false, + "text": "- auto-calculates the revenues from distributor \nand sends the money to product creator/label\n\n- verifies the data from distributor via chainlink\n\n- keeps the mapping for each license, custom\nfees", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "- auto-calculates the revenues from distributor \nand sends the money to product creator/label\n\n- verifies the data from distributor via chainlink\n\n- keeps the mapping for each license, custom\nfees", + "lineHeight": 1.25 + }, + { + "id": "_pkv-CHTai4kuWS3fYGm3", + "type": "diamond", + "x": 1094.6400565621855, + "y": -440.0475880348727, + "width": 333.51562499999983, + "height": 305.64453124999994, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aB", + "roundness": { + "type": 2 + }, + "seed": 381844905, + "version": 208, + "versionNonce": 529648519, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "V92Aqg7SlRjPqxqkp_HZY" + }, + { + "id": "qeg1OEtwfGU0w9JGolbg_", + "type": "arrow" + } + ], + "updated": 1714914398405, + "link": null, + "locked": false + }, + { + "id": "V92Aqg7SlRjPqxqkp_HZY", + "type": "text", + "x": 1201.8370093820097, + "y": -322.1364552223727, + "width": 119.36390686035156, + "height": 70, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aC", + "roundness": null, + "seed": 1206163559, + "version": 84, + "versionNonce": 178212873, + "isDeleted": false, + "boundElements": null, + "updated": 1714914397032, + "link": null, + "locked": false, + "text": "ChainLink\nOracle", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "_pkv-CHTai4kuWS3fYGm3", + "originalText": "ChainLink\nOracle", + "lineHeight": 1.25 + }, + { + "id": "qeg1OEtwfGU0w9JGolbg_", + "type": "arrow", + "x": 1259.783285728852, + "y": 18.982359881793855, + "width": 0, + "height": 143.58072916666663, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aD", + "roundness": { + "type": 2 + }, + "seed": 2135070759, + "version": 51, + "versionNonce": 567177319, + "isDeleted": false, + "boundElements": null, + "updated": 1714914398405, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -143.58072916666663 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "DwWTZHu2vbKlyzcrhVaA2", + "focus": -0.05424303966683604, + "gap": 3.58388551206383 + }, + "endBinding": { + "elementId": "_pkv-CHTai4kuWS3fYGm3", + "focus": 0.00968220504411605, + "gap": 8.319271544675289 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "sqvaS9sOVGfjK7_wTnHRx", + "type": "arrow", + "x": 2056.6387544788518, + "y": 20.180276548460597, + "width": 623.2877604166665, + "height": 26.62760416666663, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aE", + "roundness": { + "type": 2 + }, + "seed": 792450503, + "version": 102, + "versionNonce": 952845671, + "isDeleted": false, + "boundElements": null, + "updated": 1714914404345, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -623.2877604166665, + 26.62760416666663 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "c0skWvPqczZdwhySQrHK9", + "focus": 0.9968336393396198, + "gap": 16.166750347921237 + }, + "endBinding": { + "elementId": "DwWTZHu2vbKlyzcrhVaA2", + "focus": -0.7594143817202367, + "gap": 4.639858591907398 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "22-oG5oMoHScVnw_QQP75", + "type": "ellipse", + "x": 239.88094197885312, + "y": -382.44993178487096, + "width": 401.4127604166665, + "height": 259.64192708333326, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aG", + "roundness": { + "type": 2 + }, + "seed": 1381816073, + "version": 349, + "versionNonce": 99005447, + "isDeleted": false, + "boundElements": [ + { + "id": "bzLkqMdNF0bsniUPaOFhz", + "type": "arrow" + }, + { + "id": "JkpWS5BnNXqLe41myMvd0", + "type": "arrow" + } + ], + "updated": 1714914493153, + "link": null, + "locked": false + }, + { + "id": "HrAcwbi2TKE8m0ytEI75E", + "type": "ellipse", + "x": -222.10473510447923, + "y": -153.76503595153793, + "width": 363.52213541666663, + "height": 247.55208333333326, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aI", + "roundness": { + "type": 2 + }, + "seed": 77527721, + "version": 227, + "versionNonce": 2139402023, + "isDeleted": false, + "boundElements": [ + { + "id": "ewj_xWWGdT4FnAcBszjMg", + "type": "arrow" + }, + { + "id": "PwRWhkGMcUqQlTCYn9chF", + "type": "arrow" + } + ], + "updated": 1714914491394, + "link": null, + "locked": false + }, + { + "id": "rhdd1OKZbXsVLsjkd7BGr", + "type": "text", + "x": -161.26489135447912, + "y": -55.39264011820444, + "width": 225.39990234375, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aJ", + "roundness": null, + "seed": 646001001, + "version": 233, + "versionNonce": 393345319, + "isDeleted": false, + "boundElements": null, + "updated": 1714914440322, + "link": null, + "locked": false, + "text": "Another Creator", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Another Creator", + "lineHeight": 1.25 + }, + { + "id": "bzLkqMdNF0bsniUPaOFhz", + "type": "arrow", + "x": 1123.39767198789, + "y": 39.940768509699694, + "width": 473.7948153565196, + "height": 264.3846975623743, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aK", + "roundness": { + "type": 2 + }, + "seed": 543610537, + "version": 554, + "versionNonce": 656478599, + "isDeleted": false, + "boundElements": null, + "updated": 1714914482282, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -473.7948153565196, + -264.3846975623743 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "DwWTZHu2vbKlyzcrhVaA2", + "focus": 0.15512757791579956, + "gap": 7.745618683042636 + }, + "endBinding": { + "elementId": "22-oG5oMoHScVnw_QQP75", + "focus": -0.5158714612054485, + "gap": 12.530641452961504 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "ewj_xWWGdT4FnAcBszjMg", + "type": "arrow", + "x": 1043.4356294788536, + "y": 118.2662140484623, + "width": 889.2252604166665, + "height": 147.59114583333326, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aL", + "roundness": { + "type": 2 + }, + "seed": 1899258505, + "version": 120, + "versionNonce": 34777257, + "isDeleted": false, + "boundElements": null, + "updated": 1714914453257, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -889.2252604166665, + -147.59114583333326 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "DwWTZHu2vbKlyzcrhVaA2", + "focus": -0.01984198744381794, + "gap": 1 + }, + "endBinding": { + "elementId": "HrAcwbi2TKE8m0ytEI75E", + "focus": -0.24825436063105524, + "gap": 12.795239873073314 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "1SszQCzh4CM69AOsbJfhd", + "type": "text", + "x": 413.97599406218706, + "y": -258.13352553487096, + "width": 72.35197448730469, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aM", + "roundness": null, + "seed": 1383788903, + "version": 13, + "versionNonce": 1863184103, + "isDeleted": false, + "boundElements": null, + "updated": 1714914476733, + "link": null, + "locked": false, + "text": "Label", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Label", + "lineHeight": 1.25 + }, + { + "id": "PkpJYE2b0sQaX6zYoXJYv", + "type": "arrow", + "x": 1013.3640148955203, + "y": 187.6216827984623, + "width": 870.2473958333333, + "height": 81.90755208333337, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aN", + "roundness": { + "type": 2 + }, + "seed": 1711290697, + "version": 85, + "versionNonce": 840749769, + "isDeleted": false, + "boundElements": null, + "updated": 1714914485799, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -870.2473958333333, + 81.90755208333337 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "DwWTZHu2vbKlyzcrhVaA2", + "focus": -0.07054574191278588, + "gap": 14.023381751745205 + }, + "endBinding": { + "elementId": "3cPVZEKMQZis2G6OAG5Nc", + "focus": -0.037143428332771414, + "gap": 19.929383334384113 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "T_FI3ovQScicgXgc7tAI7", + "type": "arrow", + "x": 128.27286906218717, + "y": 322.15944321512984, + "width": 921.4908854166664, + "height": 82.4609375, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aO", + "roundness": { + "type": 2 + }, + "seed": 982168711, + "version": 89, + "versionNonce": 941840263, + "isDeleted": false, + "boundElements": null, + "updated": 1714914489224, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 921.4908854166664, + -82.4609375 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "3cPVZEKMQZis2G6OAG5Nc", + "focus": 0.35651065343431, + "gap": 6.5754696653736175 + }, + "endBinding": { + "elementId": "DwWTZHu2vbKlyzcrhVaA2", + "focus": -0.4948536418159722, + "gap": 18.378660141691995 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "PwRWhkGMcUqQlTCYn9chF", + "type": "arrow", + "x": 111.04630656218717, + "y": 24.965432798463212, + "width": 915.9049479166664, + "height": 129.93489583333326, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aP", + "roundness": { + "type": 2 + }, + "seed": 567960007, + "version": 101, + "versionNonce": 1368535623, + "isDeleted": false, + "boundElements": null, + "updated": 1714914491394, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 915.9049479166664, + 129.93489583333326 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "HrAcwbi2TKE8m0ytEI75E", + "focus": 0.2647835446805525, + "gap": 1 + }, + "endBinding": { + "elementId": "DwWTZHu2vbKlyzcrhVaA2", + "focus": -0.2655600956292052, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "JkpWS5BnNXqLe41myMvd0", + "type": "arrow", + "x": 588.9694836455203, + "y": -168.5892547015368, + "width": 491.12630208333326, + "height": 242.85807291666663, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aQ", + "roundness": { + "type": 2 + }, + "seed": 266439815, + "version": 94, + "versionNonce": 1260428071, + "isDeleted": false, + "boundElements": null, + "updated": 1714914493153, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 491.12630208333326, + 242.85807291666663 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "22-oG5oMoHScVnw_QQP75", + "focus": 0.06526990648255063, + "gap": 1 + }, + "endBinding": { + "elementId": "DwWTZHu2vbKlyzcrhVaA2", + "focus": -0.08925118366703401, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/license.png b/license.png new file mode 100644 index 0000000000000000000000000000000000000000..6fa51ac743635323523b7a251dd88ce93dc1b1e7 GIT binary patch literal 186603 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%0Ancxt5!q8p>7>jrrj0av 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 Date: Tue, 7 May 2024 02:36:02 +0300 Subject: [PATCH 04/17] smart contract deployed --- .vscode/settings.json | 3 + contract/contracts/MultiSigWallet.sol | 114 +- contract/hardhat.config.ts | 11 +- .../MultiSigWallet#MultiSigWallet.dbg.json | 4 + .../MultiSigWallet#MultiSigWallet.json | 391 + .../61afe259f874fc3da9eb2666746c2273.json | 25443 ++++++++++++++++ .../chain-80002/deployed_addresses.json | 3 + .../deployments/chain-80002/journal.jsonl | 7 + contract/ignition/modules/MultiSigWallet.ts | 17 + contract/package-lock.json | 16 +- contract/package.json | 3 + 11 files changed, 25980 insertions(+), 32 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.dbg.json create mode 100644 contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.json create mode 100644 contract/ignition/deployments/chain-80002/build-info/61afe259f874fc3da9eb2666746c2273.json create mode 100644 contract/ignition/deployments/chain-80002/deployed_addresses.json create mode 100644 contract/ignition/deployments/chain-80002/journal.jsonl create mode 100644 contract/ignition/modules/MultiSigWallet.ts diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2d30b94 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "solidity.compileUsingRemoteVersion": "v0.8.25+commit.b61c2a91" +} diff --git a/contract/contracts/MultiSigWallet.sol b/contract/contracts/MultiSigWallet.sol index f5a8806..98b0431 100644 --- a/contract/contracts/MultiSigWallet.sol +++ b/contract/contracts/MultiSigWallet.sol @@ -1,10 +1,13 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - +pragma solidity ^0.8.19; +// The wallet owners can +// submit a transaction +// approve and revoke approval of pending transactions +// anyone can execute a transaction after enough owners has approved it. contract MultiSigWallet { - event Deposit (address indexed sender, uint amount, uint balance); - event SubmitTransaction ( + event Deposit(address indexed sender, uint amount, uint balance); + event SubmitTransaction( address indexed owener, uint indexed txIndex, address indexed to, @@ -34,7 +37,12 @@ contract MultiSigWallet { Transaction[] public transactions; - modifier txExists(uint _txIndex){ + modifier onlyOwner() { + require(isOwner[msg.sender], "not owner"); + _; + } + + modifier txExists(uint _txIndex) { require(_txIndex < transactions.length, "tx does not exist"); _; } @@ -44,15 +52,18 @@ contract MultiSigWallet { _; } - modifier notExecuted(uint _txIndex){ + modifier notExecuted(uint _txIndex) { require(!transactions[_txIndex].executed, "tx already confirmed"); _; } - constructor(address[] memory _owners, uint _numConfirmationsRequired){ + constructor(address[] memory _owners, uint _numConfirmationsRequired) { require(_owners.length > 0, "owners required"); - require(_numConfirmationsRequired > 0 && _numConfirmationsRequired <= owners.length, - "invalid number of required confirmations"); + require( + _numConfirmationsRequired > 0 && + _numConfirmationsRequired <= _owners.length, + "invalid number of required confirmations" + ); for (uint i = 0; i < _owners.length; i++) { address owner = _owners[i]; require(owner != address(0), "invalid owner"); @@ -67,7 +78,11 @@ contract MultiSigWallet { emit Deposit(msg.sender, msg.value, address(this).balance); } - function submitTransaction(address _to, uint _value, bytes memory _data) public onlyOwner { + function submitTransaction( + address _to, + uint _value, + bytes memory _data + ) public onlyOwner { uint txIndex = transactions.length; transactions.push( Transaction({ @@ -83,27 +98,74 @@ contract MultiSigWallet { function confirmTransaction( uint _txIndex - ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) notConfirmed(_txIndex) { + ) + public + onlyOwner + txExists(_txIndex) + notExecuted(_txIndex) + notConfirmed(_txIndex) + { Transaction storage transaction = transactions[_txIndex]; - transaction.numConfirmations +=1; + transaction.numConfirmations += 1; isConfirmed[_txIndex][msg.sender] = true; emit ConfirmTransaction(msg.sender, _txIndex); } -function executeTransaction(uint _txIndex) public onlyOwner txExists(_txIndex) notExecuted(_txIndex){ - Transaction storage transaction = transactions[_txIndex]; - require( - transaction.numConfirmations >=numConfirmationsRequired, "cannot execute tx" - ); - transaction.executed = true; - (bool, success, ) = transaction.to.call{value: transaction.value}(transaction.data); - require(success, "tx failed"); - emit ExecuteTransaction(msg.sender, _txIndex); -} - - function revokeConfirmation(uint _txIndex) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) { - + function executeTransaction( + uint _txIndex + ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) { + Transaction storage transaction = transactions[_txIndex]; + require( + transaction.numConfirmations >= numConfirmationsRequired, + "cannot execute tx" + ); + transaction.executed = true; + (bool success, ) = transaction.to.call{value: transaction.value}( + transaction.data + ); + require(success, "tx failed"); + emit ExecuteTransaction(msg.sender, _txIndex); } + function revokeConfirmation( + uint _txIndex + ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) { + Transaction storage transaction = transactions[_txIndex]; + require(isConfirmed[_txIndex][msg.sender], "tx not confirmed"); + transaction.numConfirmations -= 1; + isConfirmed[_txIndex][msg.sender] = false; -} \ No newline at end of file + emit RevokeConfirmation(msg.sender, _txIndex); + } + + function getOwners() public view returns (address[] memory) { + return owners; + } + + function getTransactionCount() public view returns (uint) { + return transactions.length; + } + + function getTransaction( + uint _txIndex + ) + public + view + returns ( + address to, + uint value, + bytes memory data, + bool executed, + uint numConfirmations + ) + { + Transaction storage transaction = transactions[_txIndex]; + return ( + transaction.to, + transaction.value, + transaction.data, + transaction.executed, + transaction.numConfirmations + ); + } +} diff --git a/contract/hardhat.config.ts b/contract/hardhat.config.ts index e9aa771..a6d7f89 100644 --- a/contract/hardhat.config.ts +++ b/contract/hardhat.config.ts @@ -1,12 +1,13 @@ -import {HardhatUserConfig, vars} from "hardhat/config"; +import { HardhatUserConfig, vars } from "hardhat/config"; import "@nomicfoundation/hardhat-toolbox"; -const INFURA_API_KEY = vars.get("INFURA_API_KEY"); - +import dotenv from "dotenv"; +dotenv.config(); const config: HardhatUserConfig = { solidity: "0.8.24", networks: { - sepolia: { - url: `https://sepolia.infura.io/v3/${INFURA_API_KEY}`, + polygon: { + url: `https://polygon-amoy.g.alchemy.com/v2/pEtFFy_Qr_NrM1vMnlzSXmYXkozVNzLy`, + accounts: [process.env.POLYGON_PK || ""], }, }, }; diff --git a/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.dbg.json b/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.dbg.json new file mode 100644 index 0000000..668ffe8 --- /dev/null +++ b/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/61afe259f874fc3da9eb2666746c2273.json" +} \ No newline at end of file diff --git a/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.json b/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.json new file mode 100644 index 0000000..11b4a62 --- /dev/null +++ b/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.json @@ -0,0 +1,391 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "MultiSigWallet", + "sourceName": "contracts/MultiSigWallet.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address[]", + "name": "_owners", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_numConfirmationsRequired", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "txIndex", + "type": "uint256" + } + ], + "name": "ConfirmTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "txIndex", + "type": "uint256" + } + ], + "name": "ExecuteTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "txIndex", + "type": "uint256" + } + ], + "name": "RevokeConfirmation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owener", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "txIndex", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "SubmitTransaction", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_txIndex", + "type": "uint256" + } + ], + "name": "confirmTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_txIndex", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getOwners", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_txIndex", + "type": "uint256" + } + ], + "name": "getTransaction", + "outputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "numConfirmations", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTransactionCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "isConfirmed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "numConfirmationsRequired", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "owners", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_txIndex", + "type": "uint256" + } + ], + "name": "revokeConfirmation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "submitTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "transactions", + "outputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "numConfirmations", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b50604051620025a8380380620025a8833981810160405281019062000037919062000505565b60008251116200007e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007590620005cc565b60405180910390fd5b60008111801562000090575081518111155b620000d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c99062000664565b60405180910390fd5b60005b8251811015620002cc576000838281518110620000f757620000f662000686565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200016a9062000705565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000203576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001fa9062000777565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050620000d5565b5080600281905550505062000799565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034082620002f5565b810181811067ffffffffffffffff8211171562000362576200036162000306565b5b80604052505050565b600062000377620002dc565b905062000385828262000335565b919050565b600067ffffffffffffffff821115620003a857620003a762000306565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003eb82620003be565b9050919050565b620003fd81620003de565b81146200040957600080fd5b50565b6000815190506200041d81620003f2565b92915050565b60006200043a62000434846200038a565b6200036b565b9050808382526020820190506020840283018581111562000460576200045f620003b9565b5b835b818110156200048d57806200047888826200040c565b84526020840193505060208101905062000462565b5050509392505050565b600082601f830112620004af57620004ae620002f0565b5b8151620004c184826020860162000423565b91505092915050565b6000819050919050565b620004df81620004ca565b8114620004eb57600080fd5b50565b600081519050620004ff81620004d4565b92915050565b600080604083850312156200051f576200051e620002e6565b5b600083015167ffffffffffffffff81111562000540576200053f620002eb565b5b6200054e8582860162000497565b92505060206200056185828601620004ee565b9150509250929050565b600082825260208201905092915050565b7f6f776e6572732072657175697265640000000000000000000000000000000000600082015250565b6000620005b4600f836200056b565b9150620005c1826200057c565b602082019050919050565b60006020820190508181036000830152620005e781620005a5565b9050919050565b7f696e76616c6964206e756d626572206f6620726571756972656420636f6e666960008201527f726d6174696f6e73000000000000000000000000000000000000000000000000602082015250565b60006200064c6028836200056b565b91506200065982620005ee565b604082019050919050565b600060208201905081810360008301526200067f816200063d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f696e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000620006ed600d836200056b565b9150620006fa82620006b5565b602082019050919050565b600060208201905081810360008301526200072081620006de565b9050919050565b7f6f776e6572206e6f7420756e6971756500000000000000000000000000000000600082015250565b60006200075f6010836200056b565b91506200076c8262000727565b602082019050919050565b60006020820190508181036000830152620007928162000750565b9050919050565b611dff80620007a96000396000f3fe6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033", + "deployedBytecode": "0x6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/contract/ignition/deployments/chain-80002/build-info/61afe259f874fc3da9eb2666746c2273.json b/contract/ignition/deployments/chain-80002/build-info/61afe259f874fc3da9eb2666746c2273.json new file mode 100644 index 0000000..c8d165b --- /dev/null +++ b/contract/ignition/deployments/chain-80002/build-info/61afe259f874fc3da9eb2666746c2273.json @@ -0,0 +1,25443 @@ +{ + "id": "61afe259f874fc3da9eb2666746c2273", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.24", + "solcLongVersion": "0.8.24+commit.e11b9ed9", + "input": { + "language": "Solidity", + "sources": { + "contracts/MultiSigWallet.sol": { + "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.19;\n// The wallet owners can\n// submit a transaction\n// approve and revoke approval of pending transactions\n// anyone can execute a transaction after enough owners has approved it.\ncontract MultiSigWallet {\n event Deposit(address indexed sender, uint amount, uint balance);\n event SubmitTransaction(\n address indexed owener,\n uint indexed txIndex,\n address indexed to,\n uint value,\n bytes data\n );\n\n event ConfirmTransaction(address indexed owner, uint indexed txIndex);\n event RevokeConfirmation(address indexed owner, uint indexed txIndex);\n event ExecuteTransaction(address indexed owner, uint indexed txIndex);\n\n address[] public owners;\n\n mapping(address => bool) public isOwner;\n\n uint public numConfirmationsRequired;\n\n struct Transaction {\n address to;\n uint value;\n bytes data;\n bool executed;\n uint numConfirmations;\n }\n\n mapping(uint => mapping(address => bool)) public isConfirmed;\n\n Transaction[] public transactions;\n\n modifier onlyOwner() {\n require(isOwner[msg.sender], \"not owner\");\n _;\n }\n\n modifier txExists(uint _txIndex) {\n require(_txIndex < transactions.length, \"tx does not exist\");\n _;\n }\n\n modifier notConfirmed(uint _txIndex) {\n require(!isConfirmed[_txIndex][msg.sender], \"tx already confirmed\");\n _;\n }\n\n modifier notExecuted(uint _txIndex) {\n require(!transactions[_txIndex].executed, \"tx already confirmed\");\n _;\n }\n\n constructor(address[] memory _owners, uint _numConfirmationsRequired) {\n require(_owners.length > 0, \"owners required\");\n require(\n _numConfirmationsRequired > 0 &&\n _numConfirmationsRequired <= _owners.length,\n \"invalid number of required confirmations\"\n );\n for (uint i = 0; i < _owners.length; i++) {\n address owner = _owners[i];\n require(owner != address(0), \"invalid owner\");\n require(!isOwner[owner], \"owner not unique\");\n isOwner[owner] = true;\n owners.push(owner);\n }\n numConfirmationsRequired = _numConfirmationsRequired;\n }\n\n receive() external payable {\n emit Deposit(msg.sender, msg.value, address(this).balance);\n }\n\n function submitTransaction(\n address _to,\n uint _value,\n bytes memory _data\n ) public onlyOwner {\n uint txIndex = transactions.length;\n transactions.push(\n Transaction({\n to: _to,\n value: _value,\n data: _data,\n executed: false,\n numConfirmations: 0\n })\n );\n emit SubmitTransaction(msg.sender, txIndex, _to, _value, _data);\n }\n\n function confirmTransaction(\n uint _txIndex\n )\n public\n onlyOwner\n txExists(_txIndex)\n notExecuted(_txIndex)\n notConfirmed(_txIndex)\n {\n Transaction storage transaction = transactions[_txIndex];\n transaction.numConfirmations += 1;\n isConfirmed[_txIndex][msg.sender] = true;\n emit ConfirmTransaction(msg.sender, _txIndex);\n }\n\n function executeTransaction(\n uint _txIndex\n ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) {\n Transaction storage transaction = transactions[_txIndex];\n require(\n transaction.numConfirmations >= numConfirmationsRequired,\n \"cannot execute tx\"\n );\n transaction.executed = true;\n (bool success, ) = transaction.to.call{value: transaction.value}(\n transaction.data\n );\n require(success, \"tx failed\");\n emit ExecuteTransaction(msg.sender, _txIndex);\n }\n\n function revokeConfirmation(\n uint _txIndex\n ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) {\n Transaction storage transaction = transactions[_txIndex];\n require(isConfirmed[_txIndex][msg.sender], \"tx not confirmed\");\n transaction.numConfirmations -= 1;\n isConfirmed[_txIndex][msg.sender] = false;\n\n emit RevokeConfirmation(msg.sender, _txIndex);\n }\n\n function getOwners() public view returns (address[] memory) {\n return owners;\n }\n\n function getTransactionCount() public view returns (uint) {\n return transactions.length;\n }\n\n function getTransaction(\n uint _txIndex\n )\n public\n view\n returns (\n address to,\n uint value,\n bytes memory data,\n bool executed,\n uint numConfirmations\n )\n {\n Transaction storage transaction = transactions[_txIndex];\n return (\n transaction.to,\n transaction.value,\n transaction.data,\n transaction.executed,\n transaction.numConfirmations\n );\n }\n}\n" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "contracts/MultiSigWallet.sol": { + "ast": { + "absolutePath": "contracts/MultiSigWallet.sol", + "exportedSymbols": { + "MultiSigWallet": [ + 472 + ] + }, + "id": 473, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "33:24:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "MultiSigWallet", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 472, + "linearizedBaseContracts": [ + 472 + ], + "name": "MultiSigWallet", + "nameLocation": "244:14:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "eventSelector": "90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15", + "id": 9, + "name": "Deposit", + "nameLocation": "271:7:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 8, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "295:6:0", + "nodeType": "VariableDeclaration", + "scope": 9, + "src": "279:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "279:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "308:6:0", + "nodeType": "VariableDeclaration", + "scope": 9, + "src": "303:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "303:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "indexed": false, + "mutability": "mutable", + "name": "balance", + "nameLocation": "321:7:0", + "nodeType": "VariableDeclaration", + "scope": 9, + "src": "316:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "316:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "278:51:0" + }, + "src": "265:65:0" + }, + { + "anonymous": false, + "eventSelector": "d5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d", + "id": 21, + "name": "SubmitTransaction", + "nameLocation": "341:17:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 20, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11, + "indexed": true, + "mutability": "mutable", + "name": "owener", + "nameLocation": "384:6:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "368:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "368:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13, + "indexed": true, + "mutability": "mutable", + "name": "txIndex", + "nameLocation": "413:7:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "400:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "400:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "446:2:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "430:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "430:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "463:5:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "458:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "458:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 19, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nameLocation": "484:4:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "478:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "478:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "358:136:0" + }, + "src": "335:160:0" + }, + { + "anonymous": false, + "eventSelector": "5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb63390041", + "id": 27, + "name": "ConfirmTransaction", + "nameLocation": "507:18:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "542:5:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "526:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 22, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "526:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "indexed": true, + "mutability": "mutable", + "name": "txIndex", + "nameLocation": "562:7:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "549:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 24, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "549:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "525:45:0" + }, + "src": "501:70:0" + }, + { + "anonymous": false, + "eventSelector": "f0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd55", + "id": 33, + "name": "RevokeConfirmation", + "nameLocation": "582:18:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "617:5:0", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "601:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "601:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "indexed": true, + "mutability": "mutable", + "name": "txIndex", + "nameLocation": "637:7:0", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "624:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "624:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "600:45:0" + }, + "src": "576:70:0" + }, + { + "anonymous": false, + "eventSelector": "5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac", + "id": 39, + "name": "ExecuteTransaction", + "nameLocation": "657:18:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 38, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "692:5:0", + "nodeType": "VariableDeclaration", + "scope": 39, + "src": "676:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "676:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37, + "indexed": true, + "mutability": "mutable", + "name": "txIndex", + "nameLocation": "712:7:0", + "nodeType": "VariableDeclaration", + "scope": 39, + "src": "699:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 36, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "699:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "675:45:0" + }, + "src": "651:70:0" + }, + { + "constant": false, + "functionSelector": "025e7c27", + "id": 42, + "mutability": "mutable", + "name": "owners", + "nameLocation": "744:6:0", + "nodeType": "VariableDeclaration", + "scope": 472, + "src": "727:23:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 40, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "727:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 41, + "nodeType": "ArrayTypeName", + "src": "727:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "2f54bf6e", + "id": 46, + "mutability": "mutable", + "name": "isOwner", + "nameLocation": "789:7:0", + "nodeType": "VariableDeclaration", + "scope": 472, + "src": "757:39:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 45, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "765:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "757:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 44, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "776:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d0549b85", + "id": 48, + "mutability": "mutable", + "name": "numConfirmationsRequired", + "nameLocation": "815:24:0", + "nodeType": "VariableDeclaration", + "scope": 472, + "src": "803:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 47, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "803:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "canonicalName": "MultiSigWallet.Transaction", + "id": 59, + "members": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "to", + "nameLocation": "883:2:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "875:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 49, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "875:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 52, + "mutability": "mutable", + "name": "value", + "nameLocation": "900:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "895:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 51, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "895:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 54, + "mutability": "mutable", + "name": "data", + "nameLocation": "921:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "915:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 53, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "915:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 56, + "mutability": "mutable", + "name": "executed", + "nameLocation": "940:8:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "935:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 55, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "935:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "numConfirmations", + "nameLocation": "963:16:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "958:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 57, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "958:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Transaction", + "nameLocation": "853:11:0", + "nodeType": "StructDefinition", + "scope": 472, + "src": "846:140:0", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "80f59a65", + "id": 65, + "mutability": "mutable", + "name": "isConfirmed", + "nameLocation": "1041:11:0", + "nodeType": "VariableDeclaration", + "scope": 472, + "src": "992:60:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + }, + "typeName": { + "id": 64, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 60, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1000:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "992:41:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 63, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1008:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 62, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1027:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "9ace38c2", + "id": 69, + "mutability": "mutable", + "name": "transactions", + "nameLocation": "1080:12:0", + "nodeType": "VariableDeclaration", + "scope": 472, + "src": "1059:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction[]" + }, + "typeName": { + "baseType": { + "id": 67, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 66, + "name": "Transaction", + "nameLocations": [ + "1059:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "1059:11:0" + }, + "referencedDeclaration": 59, + "src": "1059:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction" + } + }, + "id": 68, + "nodeType": "ArrayTypeName", + "src": "1059:13:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction[]" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 80, + "nodeType": "Block", + "src": "1120:69:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 72, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "1138:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 75, + "indexExpression": { + "expression": { + "id": 73, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1146:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1150:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1146:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1138:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6e6f74206f776e6572", + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1159:11:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e", + "typeString": "literal_string \"not owner\"" + }, + "value": "not owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e", + "typeString": "literal_string \"not owner\"" + } + ], + "id": 71, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1130:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 77, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1130:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 78, + "nodeType": "ExpressionStatement", + "src": "1130:41:0" + }, + { + "id": 79, + "nodeType": "PlaceholderStatement", + "src": "1181:1:0" + } + ] + }, + "id": 81, + "name": "onlyOwner", + "nameLocation": "1108:9:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [], + "src": "1117:2:0" + }, + "src": "1099:90:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 94, + "nodeType": "Block", + "src": "1228:88:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 86, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1246:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 87, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "1257:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" + } + }, + "id": 88, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1270:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1257:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1246:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "747820646f6573206e6f74206578697374", + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1278:19:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251", + "typeString": "literal_string \"tx does not exist\"" + }, + "value": "tx does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251", + "typeString": "literal_string \"tx does not exist\"" + } + ], + "id": 85, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1238:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1238:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 92, + "nodeType": "ExpressionStatement", + "src": "1238:60:0" + }, + { + "id": 93, + "nodeType": "PlaceholderStatement", + "src": "1308:1:0" + } + ] + }, + "id": 95, + "name": "txExists", + "nameLocation": "1204:8:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "_txIndex", + "nameLocation": "1218:8:0", + "nodeType": "VariableDeclaration", + "scope": 95, + "src": "1213:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1213:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1212:15:0" + }, + "src": "1195:121:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 111, + "nodeType": "Block", + "src": "1359:95:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1377:34:0", + "subExpression": { + "baseExpression": { + "baseExpression": { + "id": 100, + "name": "isConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "1378:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 102, + "indexExpression": { + "id": 101, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1390:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1378:21:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 105, + "indexExpression": { + "expression": { + "id": 103, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1400:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1404:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1400:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1378:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "747820616c726561647920636f6e6669726d6564", + "id": 107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1413:22:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", + "typeString": "literal_string \"tx already confirmed\"" + }, + "value": "tx already confirmed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", + "typeString": "literal_string \"tx already confirmed\"" + } + ], + "id": 99, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1369:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1369:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 109, + "nodeType": "ExpressionStatement", + "src": "1369:67:0" + }, + { + "id": 110, + "nodeType": "PlaceholderStatement", + "src": "1446:1:0" + } + ] + }, + "id": 112, + "name": "notConfirmed", + "nameLocation": "1331:12:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 98, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "_txIndex", + "nameLocation": "1349:8:0", + "nodeType": "VariableDeclaration", + "scope": 112, + "src": "1344:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1344:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1343:15:0" + }, + "src": "1322:132:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 126, + "nodeType": "Block", + "src": "1496:93:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1514:32:0", + "subExpression": { + "expression": { + "baseExpression": { + "id": 117, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "1515:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" + } + }, + "id": 119, + "indexExpression": { + "id": 118, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "1528:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1515:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref" + } + }, + "id": 120, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1538:8:0", + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 56, + "src": "1515:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "747820616c726561647920636f6e6669726d6564", + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1548:22:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", + "typeString": "literal_string \"tx already confirmed\"" + }, + "value": "tx already confirmed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", + "typeString": "literal_string \"tx already confirmed\"" + } + ], + "id": 116, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1506:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1506:65:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 124, + "nodeType": "ExpressionStatement", + "src": "1506:65:0" + }, + { + "id": 125, + "nodeType": "PlaceholderStatement", + "src": "1581:1:0" + } + ] + }, + "id": 127, + "name": "notExecuted", + "nameLocation": "1469:11:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "_txIndex", + "nameLocation": "1486:8:0", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "1481:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 113, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1481:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1480:15:0" + }, + "src": "1460:129:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 208, + "nodeType": "Block", + "src": "1665:600:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 136, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1683:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1691:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1683:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1700:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1683:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6f776e657273207265717569726564", + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1703:17:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0", + "typeString": "literal_string \"owners required\"" + }, + "value": "owners required" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0", + "typeString": "literal_string \"owners required\"" + } + ], + "id": 135, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1675:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1675:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 142, + "nodeType": "ExpressionStatement", + "src": "1675:46:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 144, + "name": "_numConfirmationsRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1752:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1780:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1752:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 147, + "name": "_numConfirmationsRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "1801:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 148, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1830:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1838:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1830:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1801:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1752:92:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "696e76616c6964206e756d626572206f6620726571756972656420636f6e6669726d6174696f6e73", + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1858:42:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef", + "typeString": "literal_string \"invalid number of required confirmations\"" + }, + "value": "invalid number of required confirmations" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef", + "typeString": "literal_string \"invalid number of required confirmations\"" + } + ], + "id": 143, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1731:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1731:179:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 154, + "nodeType": "ExpressionStatement", + "src": "1731:179:0" + }, + { + "body": { + "id": 202, + "nodeType": "Block", + "src": "1962:235:0", + "statements": [ + { + "assignments": [ + 167 + ], + "declarations": [ + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1984:5:0", + "nodeType": "VariableDeclaration", + "scope": 202, + "src": "1976:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 166, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1976:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 171, + "initialValue": { + "baseExpression": { + "id": 168, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1992:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 170, + "indexExpression": { + "id": 169, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 156, + "src": "2000:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1992:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1976:26:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 173, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2024:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2041:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2033:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2033:7:0", + "typeDescriptions": {} + } + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2033:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2024:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "696e76616c6964206f776e6572", + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2045:15:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14", + "typeString": "literal_string \"invalid owner\"" + }, + "value": "invalid owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14", + "typeString": "literal_string \"invalid owner\"" + } + ], + "id": 172, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2016:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2016:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 181, + "nodeType": "ExpressionStatement", + "src": "2016:45:0" + }, + { + "expression": { + "arguments": [ + { + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2083:15:0", + "subExpression": { + "baseExpression": { + "id": 183, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "2084:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 185, + "indexExpression": { + "id": 184, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2092:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2084:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6f776e6572206e6f7420756e69717565", + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2100:18:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684", + "typeString": "literal_string \"owner not unique\"" + }, + "value": "owner not unique" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684", + "typeString": "literal_string \"owner not unique\"" + } + ], + "id": 182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2075:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2075:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 189, + "nodeType": "ExpressionStatement", + "src": "2075:44:0" + }, + { + "expression": { + "id": 194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 190, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "2133:7:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 192, + "indexExpression": { + "id": 191, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2141:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2133:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2150:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2133:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 195, + "nodeType": "ExpressionStatement", + "src": "2133:21:0" + }, + { + "expression": { + "arguments": [ + { + "id": 199, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2180:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 196, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "2168:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2175:4:0", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "2168:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", + "typeString": "function (address[] storage pointer,address)" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2168:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 201, + "nodeType": "ExpressionStatement", + "src": "2168:18:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 159, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 156, + "src": "1937:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 160, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "1941:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1949:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1941:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1937:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 203, + "initializationExpression": { + "assignments": [ + 156 + ], + "declarations": [ + { + "constant": false, + "id": 156, + "mutability": "mutable", + "name": "i", + "nameLocation": "1930:1:0", + "nodeType": "VariableDeclaration", + "scope": 203, + "src": "1925:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 155, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1925:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 158, + "initialValue": { + "hexValue": "30", + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1934:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1925:10:0" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1957:3:0", + "subExpression": { + "id": 163, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 156, + "src": "1957:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 165, + "nodeType": "ExpressionStatement", + "src": "1957:3:0" + }, + "nodeType": "ForStatement", + "src": "1920:277:0" + }, + { + "expression": { + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 204, + "name": "numConfirmationsRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "2206:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 205, + "name": "_numConfirmationsRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "2233:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2206:52:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 207, + "nodeType": "ExpressionStatement", + "src": "2206:52:0" + } + ] + }, + "id": 209, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "_owners", + "nameLocation": "1624:7:0", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "1607:24:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1607:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 129, + "nodeType": "ArrayTypeName", + "src": "1607:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "_numConfirmationsRequired", + "nameLocation": "1638:25:0", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "1633:30:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1633:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1606:58:0" + }, + "returnParameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [], + "src": "1665:0:0" + }, + "scope": 472, + "src": "1595:670:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 224, + "nodeType": "Block", + "src": "2298:75:0", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 213, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2321:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2325:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2321:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 215, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2333:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2337:5:0", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "2333:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "arguments": [ + { + "id": 219, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2352:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MultiSigWallet_$472", + "typeString": "contract MultiSigWallet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_MultiSigWallet_$472", + "typeString": "contract MultiSigWallet" + } + ], + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2344:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 217, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2344:7:0", + "typeDescriptions": {} + } + }, + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2344:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2358:7:0", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2344:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 212, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "2313:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2313:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 223, + "nodeType": "EmitStatement", + "src": "2308:58:0" + } + ] + }, + "id": 225, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 210, + "nodeType": "ParameterList", + "parameters": [], + "src": "2278:2:0" + }, + "returnParameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [], + "src": "2298:0:0" + }, + "scope": 472, + "src": "2271:102:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 262, + "nodeType": "Block", + "src": "2499:357:0", + "statements": [ + { + "assignments": [ + 237 + ], + "declarations": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "txIndex", + "nameLocation": "2514:7:0", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "2509:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 236, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2509:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 240, + "initialValue": { + "expression": { + "id": 238, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "2524:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" + } + }, + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2537:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2524:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2509:34:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 245, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "2618:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 246, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2646:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 247, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2676:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "66616c7365", + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2709:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2750:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 244, + "name": "Transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "2584:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Transaction_$59_storage_ptr_$", + "typeString": "type(struct MultiSigWallet.Transaction storage pointer)" + } + }, + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2614:2:0", + "2639:5:0", + "2670:4:0", + "2699:8:0", + "2732:16:0" + ], + "names": [ + "to", + "value", + "data", + "executed", + "numConfirmations" + ], + "nodeType": "FunctionCall", + "src": "2584:182:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_memory_ptr", + "typeString": "struct MultiSigWallet.Transaction memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Transaction_$59_memory_ptr", + "typeString": "struct MultiSigWallet.Transaction memory" + } + ], + "expression": { + "id": 241, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "2553:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" + } + }, + "id": 243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2566:4:0", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "2553:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Transaction_$59_storage_$dyn_storage_ptr_$_t_struct$_Transaction_$59_storage_$returns$__$attached_to$_t_array$_t_struct$_Transaction_$59_storage_$dyn_storage_ptr_$", + "typeString": "function (struct MultiSigWallet.Transaction storage ref[] storage pointer,struct MultiSigWallet.Transaction storage ref)" + } + }, + "id": 251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2553:223:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 252, + "nodeType": "ExpressionStatement", + "src": "2553:223:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 254, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2809:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2813:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2809:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 256, + "name": "txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "2821:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 257, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "2830:3:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 258, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2835:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 259, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 231, + "src": "2843:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 253, + "name": "SubmitTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "2791:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,address,uint256,bytes memory)" + } + }, + "id": 260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2791:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 261, + "nodeType": "EmitStatement", + "src": "2786:63:0" + } + ] + }, + "functionSelector": "c6427474", + "id": 263, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 234, + "kind": "modifierInvocation", + "modifierName": { + "id": 233, + "name": "onlyOwner", + "nameLocations": [ + "2489:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 81, + "src": "2489:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2489:9:0" + } + ], + "name": "submitTransaction", + "nameLocation": "2388:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 232, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "_to", + "nameLocation": "2423:3:0", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "2415:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2415:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "_value", + "nameLocation": "2441:6:0", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "2436:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 228, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2436:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 231, + "mutability": "mutable", + "name": "_data", + "nameLocation": "2470:5:0", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "2457:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 230, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2457:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2405:76:0" + }, + "returnParameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [], + "src": "2499:0:0" + }, + "scope": 472, + "src": "2379:477:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 307, + "nodeType": "Block", + "src": "3044:221:0", + "statements": [ + { + "assignments": [ + 281 + ], + "declarations": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "transaction", + "nameLocation": "3074:11:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "3054:31:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction" + }, + "typeName": { + "id": 280, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 279, + "name": "Transaction", + "nameLocations": [ + "3054:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "3054:11:0" + }, + "referencedDeclaration": 59, + "src": "3054:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction" + } + }, + "visibility": "internal" + } + ], + "id": 285, + "initialValue": { + "baseExpression": { + "id": 282, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "3088:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" + } + }, + "id": 284, + "indexExpression": { + "id": 283, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "3101:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3088:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3054:56:0" + }, + { + "expression": { + "id": 290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 286, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "3120:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 288, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3132:16:0", + "memberName": "numConfirmations", + "nodeType": "MemberAccess", + "referencedDeclaration": 58, + "src": "3120:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3152:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3120:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 291, + "nodeType": "ExpressionStatement", + "src": "3120:33:0" + }, + { + "expression": { + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 292, + "name": "isConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "3163:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 296, + "indexExpression": { + "id": 293, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "3175:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3163:21:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 297, + "indexExpression": { + "expression": { + "id": 294, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3185:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3189:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3185:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3163:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3199:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3163:40:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 300, + "nodeType": "ExpressionStatement", + "src": "3163:40:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 302, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3237:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3241:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3237:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 304, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "3249:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 301, + "name": "ConfirmTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "3218:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3218:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 306, + "nodeType": "EmitStatement", + "src": "3213:45:0" + } + ] + }, + "functionSelector": "c01a8c84", + "id": 308, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 268, + "kind": "modifierInvocation", + "modifierName": { + "id": 267, + "name": "onlyOwner", + "nameLocations": [ + "2942:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 81, + "src": "2942:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "2942:9:0" + }, + { + "arguments": [ + { + "id": 270, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "2969:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 271, + "kind": "modifierInvocation", + "modifierName": { + "id": 269, + "name": "txExists", + "nameLocations": [ + "2960:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 95, + "src": "2960:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "2960:18:0" + }, + { + "arguments": [ + { + "id": 273, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "2999:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 274, + "kind": "modifierInvocation", + "modifierName": { + "id": 272, + "name": "notExecuted", + "nameLocations": [ + "2987:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 127, + "src": "2987:11:0" + }, + "nodeType": "ModifierInvocation", + "src": "2987:21:0" + }, + { + "arguments": [ + { + "id": 276, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "3030:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 277, + "kind": "modifierInvocation", + "modifierName": { + "id": 275, + "name": "notConfirmed", + "nameLocations": [ + "3017:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 112, + "src": "3017:12:0" + }, + "nodeType": "ModifierInvocation", + "src": "3017:22:0" + } + ], + "name": "confirmTransaction", + "nameLocation": "2871:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 265, + "mutability": "mutable", + "name": "_txIndex", + "nameLocation": "2904:8:0", + "nodeType": "VariableDeclaration", + "scope": 308, + "src": "2899:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2899:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2889:29:0" + }, + "returnParameters": { + "id": 278, + "nodeType": "ParameterList", + "parameters": [], + "src": "3044:0:0" + }, + "scope": 472, + "src": "2862:403:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 365, + "nodeType": "Block", + "src": "3386:448:0", + "statements": [ + { + "assignments": [ + 323 + ], + "declarations": [ + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "transaction", + "nameLocation": "3416:11:0", + "nodeType": "VariableDeclaration", + "scope": 365, + "src": "3396:31:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction" + }, + "typeName": { + "id": 322, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 321, + "name": "Transaction", + "nameLocations": [ + "3396:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "3396:11:0" + }, + "referencedDeclaration": 59, + "src": "3396:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction" + } + }, + "visibility": "internal" + } + ], + "id": 327, + "initialValue": { + "baseExpression": { + "id": 324, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "3430:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" + } + }, + "id": 326, + "indexExpression": { + "id": 325, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "3443:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3430:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3396:56:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 329, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3483:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 330, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3495:16:0", + "memberName": "numConfirmations", + "nodeType": "MemberAccess", + "referencedDeclaration": 58, + "src": "3483:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 331, + "name": "numConfirmationsRequired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "3515:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3483:56:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "63616e6e6f742065786563757465207478", + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3553:19:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513", + "typeString": "literal_string \"cannot execute tx\"" + }, + "value": "cannot execute tx" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513", + "typeString": "literal_string \"cannot execute tx\"" + } + ], + "id": 328, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3462:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3462:120:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 335, + "nodeType": "ExpressionStatement", + "src": "3462:120:0" + }, + { + "expression": { + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 336, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3592:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 338, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3604:8:0", + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 56, + "src": "3592:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3615:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3592:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 341, + "nodeType": "ExpressionStatement", + "src": "3592:27:0" + }, + { + "assignments": [ + 343, + null + ], + "declarations": [ + { + "constant": false, + "id": 343, + "mutability": "mutable", + "name": "success", + "nameLocation": "3635:7:0", + "nodeType": "VariableDeclaration", + "scope": 365, + "src": "3630:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 342, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3630:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 353, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 350, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3707:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 351, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3719:4:0", + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 54, + "src": "3707:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + ], + "expression": { + "expression": { + "id": 344, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3648:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3660:2:0", + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 50, + "src": "3648:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3663:4:0", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "3648:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "expression": { + "id": 347, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3675:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 348, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3687:5:0", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 52, + "src": "3675:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "3648:45:0", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3648:85:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3629:104:0" + }, + { + "expression": { + "arguments": [ + { + "id": 355, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 343, + "src": "3751:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "7478206661696c6564", + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3760:11:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2", + "typeString": "literal_string \"tx failed\"" + }, + "value": "tx failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2", + "typeString": "literal_string \"tx failed\"" + } + ], + "id": 354, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3743:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3743:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 358, + "nodeType": "ExpressionStatement", + "src": "3743:29:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 360, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3806:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3810:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3806:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 362, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "3818:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 359, + "name": "ExecuteTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "3787:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3787:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 364, + "nodeType": "EmitStatement", + "src": "3782:45:0" + } + ] + }, + "functionSelector": "ee22610b", + "id": 366, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 313, + "kind": "modifierInvocation", + "modifierName": { + "id": 312, + "name": "onlyOwner", + "nameLocations": [ + "3335:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 81, + "src": "3335:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "3335:9:0" + }, + { + "arguments": [ + { + "id": 315, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "3354:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 316, + "kind": "modifierInvocation", + "modifierName": { + "id": 314, + "name": "txExists", + "nameLocations": [ + "3345:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 95, + "src": "3345:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "3345:18:0" + }, + { + "arguments": [ + { + "id": 318, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 310, + "src": "3376:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 319, + "kind": "modifierInvocation", + "modifierName": { + "id": 317, + "name": "notExecuted", + "nameLocations": [ + "3364:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 127, + "src": "3364:11:0" + }, + "nodeType": "ModifierInvocation", + "src": "3364:21:0" + } + ], + "name": "executeTransaction", + "nameLocation": "3280:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 310, + "mutability": "mutable", + "name": "_txIndex", + "nameLocation": "3313:8:0", + "nodeType": "VariableDeclaration", + "scope": 366, + "src": "3308:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 309, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3308:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3298:29:0" + }, + "returnParameters": { + "id": 320, + "nodeType": "ParameterList", + "parameters": [], + "src": "3386:0:0" + }, + "scope": 472, + "src": "3271:563:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 417, + "nodeType": "Block", + "src": "3955:295:0", + "statements": [ + { + "assignments": [ + 381 + ], + "declarations": [ + { + "constant": false, + "id": 381, + "mutability": "mutable", + "name": "transaction", + "nameLocation": "3985:11:0", + "nodeType": "VariableDeclaration", + "scope": 417, + "src": "3965:31:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction" + }, + "typeName": { + "id": 380, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 379, + "name": "Transaction", + "nameLocations": [ + "3965:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "3965:11:0" + }, + "referencedDeclaration": 59, + "src": "3965:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction" + } + }, + "visibility": "internal" + } + ], + "id": 385, + "initialValue": { + "baseExpression": { + "id": 382, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "3999:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" + } + }, + "id": 384, + "indexExpression": { + "id": 383, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "4012:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3999:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3965:56:0" + }, + { + "expression": { + "arguments": [ + { + "baseExpression": { + "baseExpression": { + "id": 387, + "name": "isConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "4039:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 389, + "indexExpression": { + "id": 388, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "4051:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:21:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 392, + "indexExpression": { + "expression": { + "id": 390, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4061:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4065:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4061:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4039:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "7478206e6f7420636f6e6669726d6564", + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4074:18:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae", + "typeString": "literal_string \"tx not confirmed\"" + }, + "value": "tx not confirmed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae", + "typeString": "literal_string \"tx not confirmed\"" + } + ], + "id": 386, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4031:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4031:62:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 395, + "nodeType": "ExpressionStatement", + "src": "4031:62:0" + }, + { + "expression": { + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 396, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "4103:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 398, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4115:16:0", + "memberName": "numConfirmations", + "nodeType": "MemberAccess", + "referencedDeclaration": 58, + "src": "4103:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4135:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4103:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 401, + "nodeType": "ExpressionStatement", + "src": "4103:33:0" + }, + { + "expression": { + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 402, + "name": "isConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "4146:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 406, + "indexExpression": { + "id": 403, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "4158:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4146:21:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 407, + "indexExpression": { + "expression": { + "id": 404, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4168:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4172:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4168:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4146:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4182:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "4146:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 410, + "nodeType": "ExpressionStatement", + "src": "4146:41:0" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4222:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4226:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4222:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 414, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "4234:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 411, + "name": "RevokeConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33, + "src": "4203:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4203:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 416, + "nodeType": "EmitStatement", + "src": "4198:45:0" + } + ] + }, + "functionSelector": "20ea8d86", + "id": 418, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 371, + "kind": "modifierInvocation", + "modifierName": { + "id": 370, + "name": "onlyOwner", + "nameLocations": [ + "3904:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 81, + "src": "3904:9:0" + }, + "nodeType": "ModifierInvocation", + "src": "3904:9:0" + }, + { + "arguments": [ + { + "id": 373, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "3923:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 374, + "kind": "modifierInvocation", + "modifierName": { + "id": 372, + "name": "txExists", + "nameLocations": [ + "3914:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 95, + "src": "3914:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "3914:18:0" + }, + { + "arguments": [ + { + "id": 376, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "3945:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 377, + "kind": "modifierInvocation", + "modifierName": { + "id": 375, + "name": "notExecuted", + "nameLocations": [ + "3933:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 127, + "src": "3933:11:0" + }, + "nodeType": "ModifierInvocation", + "src": "3933:21:0" + } + ], + "name": "revokeConfirmation", + "nameLocation": "3849:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 368, + "mutability": "mutable", + "name": "_txIndex", + "nameLocation": "3882:8:0", + "nodeType": "VariableDeclaration", + "scope": 418, + "src": "3877:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 367, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3877:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3867:29:0" + }, + "returnParameters": { + "id": 378, + "nodeType": "ParameterList", + "parameters": [], + "src": "3955:0:0" + }, + "scope": 472, + "src": "3840:410:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 426, + "nodeType": "Block", + "src": "4316:30:0", + "statements": [ + { + "expression": { + "id": 424, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "4333:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 423, + "id": 425, + "nodeType": "Return", + "src": "4326:13:0" + } + ] + }, + "functionSelector": "a0e67e2b", + "id": 427, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getOwners", + "nameLocation": "4265:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 419, + "nodeType": "ParameterList", + "parameters": [], + "src": "4274:2:0" + }, + "returnParameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 422, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 427, + "src": "4298:16:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4298:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 421, + "nodeType": "ArrayTypeName", + "src": "4298:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "4297:18:0" + }, + "scope": 472, + "src": "4256:90:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 435, + "nodeType": "Block", + "src": "4410:43:0", + "statements": [ + { + "expression": { + "expression": { + "id": 432, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "4427:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" + } + }, + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4440:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4427:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 431, + "id": 434, + "nodeType": "Return", + "src": "4420:26:0" + } + ] + }, + "functionSelector": "2e7700f0", + "id": 436, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTransactionCount", + "nameLocation": "4361:19:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 428, + "nodeType": "ParameterList", + "parameters": [], + "src": "4380:2:0" + }, + "returnParameters": { + "id": 431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 430, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 436, + "src": "4404:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 429, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4404:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4403:6:0" + }, + "scope": 472, + "src": "4352:101:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 470, + "nodeType": "Block", + "src": "4712:265:0", + "statements": [ + { + "assignments": [ + 453 + ], + "declarations": [ + { + "constant": false, + "id": 453, + "mutability": "mutable", + "name": "transaction", + "nameLocation": "4742:11:0", + "nodeType": "VariableDeclaration", + "scope": 470, + "src": "4722:31:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction" + }, + "typeName": { + "id": 452, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 451, + "name": "Transaction", + "nameLocations": [ + "4722:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "4722:11:0" + }, + "referencedDeclaration": 59, + "src": "4722:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction" + } + }, + "visibility": "internal" + } + ], + "id": 457, + "initialValue": { + "baseExpression": { + "id": 454, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "4756:12:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" + } + }, + "id": 456, + "indexExpression": { + "id": 455, + "name": "_txIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 438, + "src": "4769:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4756:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage", + "typeString": "struct MultiSigWallet.Transaction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4722:56:0" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 458, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "4809:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 459, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4821:2:0", + "memberName": "to", + "nodeType": "MemberAccess", + "referencedDeclaration": 50, + "src": "4809:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 460, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "4837:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 461, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4849:5:0", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 52, + "src": "4837:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 462, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "4868:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 463, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4880:4:0", + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 54, + "src": "4868:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + { + "expression": { + "id": 464, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "4898:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 465, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4910:8:0", + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 56, + "src": "4898:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 466, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 453, + "src": "4932:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", + "typeString": "struct MultiSigWallet.Transaction storage pointer" + } + }, + "id": 467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4944:16:0", + "memberName": "numConfirmations", + "nodeType": "MemberAccess", + "referencedDeclaration": 58, + "src": "4932:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 468, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4795:175:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$_t_bytes_storage_$_t_bool_$_t_uint256_$", + "typeString": "tuple(address,uint256,bytes storage ref,bool,uint256)" + } + }, + "functionReturnParameters": 450, + "id": 469, + "nodeType": "Return", + "src": "4788:182:0" + } + ] + }, + "functionSelector": "33ea3dc8", + "id": 471, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTransaction", + "nameLocation": "4468:14:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 438, + "mutability": "mutable", + "name": "_txIndex", + "nameLocation": "4497:8:0", + "nodeType": "VariableDeclaration", + "scope": 471, + "src": "4492:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 437, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4492:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4482:29:0" + }, + "returnParameters": { + "id": 450, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 441, + "mutability": "mutable", + "name": "to", + "nameLocation": "4578:2:0", + "nodeType": "VariableDeclaration", + "scope": 471, + "src": "4570:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4570:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 443, + "mutability": "mutable", + "name": "value", + "nameLocation": "4599:5:0", + "nodeType": "VariableDeclaration", + "scope": 471, + "src": "4594:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 442, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4594:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 445, + "mutability": "mutable", + "name": "data", + "nameLocation": "4631:4:0", + "nodeType": "VariableDeclaration", + "scope": 471, + "src": "4618:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 444, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4618:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 447, + "mutability": "mutable", + "name": "executed", + "nameLocation": "4654:8:0", + "nodeType": "VariableDeclaration", + "scope": 471, + "src": "4649:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 446, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4649:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 449, + "mutability": "mutable", + "name": "numConfirmations", + "nameLocation": "4681:16:0", + "nodeType": "VariableDeclaration", + "scope": 471, + "src": "4676:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 448, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4676:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4556:151:0" + }, + "scope": 472, + "src": "4459:518:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 473, + "src": "235:4744:0", + "usedErrors": [], + "usedEvents": [ + 9, + 21, + 27, + 33, + 39 + ] + } + ], + "src": "33:4947:0" + }, + "id": 0 + } + }, + "contracts": { + "contracts/MultiSigWallet.sol": { + "MultiSigWallet": { + "abi": [ + { + "inputs": [ + { + "internalType": "address[]", + "name": "_owners", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_numConfirmationsRequired", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "txIndex", + "type": "uint256" + } + ], + "name": "ConfirmTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "txIndex", + "type": "uint256" + } + ], + "name": "ExecuteTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "txIndex", + "type": "uint256" + } + ], + "name": "RevokeConfirmation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owener", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "txIndex", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "SubmitTransaction", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_txIndex", + "type": "uint256" + } + ], + "name": "confirmTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_txIndex", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getOwners", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_txIndex", + "type": "uint256" + } + ], + "name": "getTransaction", + "outputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "numConfirmations", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTransactionCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "isConfirmed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "numConfirmationsRequired", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "owners", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_txIndex", + "type": "uint256" + } + ], + "name": "revokeConfirmation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "submitTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "transactions", + "outputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "numConfirmations", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_209": { + "entryPoint": null, + "id": 209, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory": { + "entryPoint": 1059, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 1036, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory": { + "entryPoint": 1175, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 1262, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256_fromMemory": { + "entryPoint": 1285, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1872, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1445, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1758, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1597, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1911, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1484, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1797, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1636, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 875, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 732, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 906, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1387, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 990, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 958, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 1226, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 821, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 1670, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 774, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 752, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 953, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 747, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 742, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 757, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684": { + "entryPoint": 1831, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0": { + "entryPoint": 1404, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14": { + "entryPoint": 1717, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef": { + "entryPoint": 1518, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 1010, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 1236, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:8654:1", + "nodeType": "YulBlock", + "src": "0:8654:1", + "statements": [ + { + "body": { + "nativeSrc": "47:35:1", + "nodeType": "YulBlock", + "src": "47:35:1", + "statements": [ + { + "nativeSrc": "57:19:1", + "nodeType": "YulAssignment", + "src": "57:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:1", + "nodeType": "YulLiteral", + "src": "73:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:1", + "nodeType": "YulIdentifier", + "src": "67:5:1" + }, + "nativeSrc": "67:9:1", + "nodeType": "YulFunctionCall", + "src": "67:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:1", + "nodeType": "YulIdentifier", + "src": "57:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:1", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:1", + "nodeType": "YulTypedName", + "src": "40:6:1", + "type": "" + } + ], + "src": "7:75:1" + }, + { + "body": { + "nativeSrc": "177:28:1", + "nodeType": "YulBlock", + "src": "177:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:1", + "nodeType": "YulLiteral", + "src": "194:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:1", + "nodeType": "YulLiteral", + "src": "197:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:1", + "nodeType": "YulIdentifier", + "src": "187:6:1" + }, + "nativeSrc": "187:12:1", + "nodeType": "YulFunctionCall", + "src": "187:12:1" + }, + "nativeSrc": "187:12:1", + "nodeType": "YulExpressionStatement", + "src": "187:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:1", + "nodeType": "YulFunctionDefinition", + "src": "88:117:1" + }, + { + "body": { + "nativeSrc": "300:28:1", + "nodeType": "YulBlock", + "src": "300:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:1", + "nodeType": "YulLiteral", + "src": "317:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:1", + "nodeType": "YulLiteral", + "src": "320:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:1", + "nodeType": "YulIdentifier", + "src": "310:6:1" + }, + "nativeSrc": "310:12:1", + "nodeType": "YulFunctionCall", + "src": "310:12:1" + }, + "nativeSrc": "310:12:1", + "nodeType": "YulExpressionStatement", + "src": "310:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:1", + "nodeType": "YulFunctionDefinition", + "src": "211:117:1" + }, + { + "body": { + "nativeSrc": "423:28:1", + "nodeType": "YulBlock", + "src": "423:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "440:1:1", + "nodeType": "YulLiteral", + "src": "440:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "443:1:1", + "nodeType": "YulLiteral", + "src": "443:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "433:6:1", + "nodeType": "YulIdentifier", + "src": "433:6:1" + }, + "nativeSrc": "433:12:1", + "nodeType": "YulFunctionCall", + "src": "433:12:1" + }, + "nativeSrc": "433:12:1", + "nodeType": "YulExpressionStatement", + "src": "433:12:1" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:1", + "nodeType": "YulFunctionDefinition", + "src": "334:117:1" + }, + { + "body": { + "nativeSrc": "505:54:1", + "nodeType": "YulBlock", + "src": "505:54:1", + "statements": [ + { + "nativeSrc": "515:38:1", + "nodeType": "YulAssignment", + "src": "515:38:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "533:5:1", + "nodeType": "YulIdentifier", + "src": "533:5:1" + }, + { + "kind": "number", + "nativeSrc": "540:2:1", + "nodeType": "YulLiteral", + "src": "540:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "529:3:1", + "nodeType": "YulIdentifier", + "src": "529:3:1" + }, + "nativeSrc": "529:14:1", + "nodeType": "YulFunctionCall", + "src": "529:14:1" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "549:2:1", + "nodeType": "YulLiteral", + "src": "549:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "545:3:1", + "nodeType": "YulIdentifier", + "src": "545:3:1" + }, + "nativeSrc": "545:7:1", + "nodeType": "YulFunctionCall", + "src": "545:7:1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "525:3:1", + "nodeType": "YulIdentifier", + "src": "525:3:1" + }, + "nativeSrc": "525:28:1", + "nodeType": "YulFunctionCall", + "src": "525:28:1" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "515:6:1", + "nodeType": "YulIdentifier", + "src": "515:6:1" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "457:102:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "488:5:1", + "nodeType": "YulTypedName", + "src": "488:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "498:6:1", + "nodeType": "YulTypedName", + "src": "498:6:1", + "type": "" + } + ], + "src": "457:102:1" + }, + { + "body": { + "nativeSrc": "593:152:1", + "nodeType": "YulBlock", + "src": "593:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "610:1:1", + "nodeType": "YulLiteral", + "src": "610:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "613:77:1", + "nodeType": "YulLiteral", + "src": "613:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "603:6:1", + "nodeType": "YulIdentifier", + "src": "603:6:1" + }, + "nativeSrc": "603:88:1", + "nodeType": "YulFunctionCall", + "src": "603:88:1" + }, + "nativeSrc": "603:88:1", + "nodeType": "YulExpressionStatement", + "src": "603:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "707:1:1", + "nodeType": "YulLiteral", + "src": "707:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "710:4:1", + "nodeType": "YulLiteral", + "src": "710:4:1", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "700:6:1", + "nodeType": "YulIdentifier", + "src": "700:6:1" + }, + "nativeSrc": "700:15:1", + "nodeType": "YulFunctionCall", + "src": "700:15:1" + }, + "nativeSrc": "700:15:1", + "nodeType": "YulExpressionStatement", + "src": "700:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "731:1:1", + "nodeType": "YulLiteral", + "src": "731:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "734:4:1", + "nodeType": "YulLiteral", + "src": "734:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "724:6:1", + "nodeType": "YulIdentifier", + "src": "724:6:1" + }, + "nativeSrc": "724:15:1", + "nodeType": "YulFunctionCall", + "src": "724:15:1" + }, + "nativeSrc": "724:15:1", + "nodeType": "YulExpressionStatement", + "src": "724:15:1" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "565:180:1", + "nodeType": "YulFunctionDefinition", + "src": "565:180:1" + }, + { + "body": { + "nativeSrc": "794:238:1", + "nodeType": "YulBlock", + "src": "794:238:1", + "statements": [ + { + "nativeSrc": "804:58:1", + "nodeType": "YulVariableDeclaration", + "src": "804:58:1", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "826:6:1", + "nodeType": "YulIdentifier", + "src": "826:6:1" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "856:4:1", + "nodeType": "YulIdentifier", + "src": "856:4:1" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "834:21:1", + "nodeType": "YulIdentifier", + "src": "834:21:1" + }, + "nativeSrc": "834:27:1", + "nodeType": "YulFunctionCall", + "src": "834:27:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "822:3:1", + "nodeType": "YulIdentifier", + "src": "822:3:1" + }, + "nativeSrc": "822:40:1", + "nodeType": "YulFunctionCall", + "src": "822:40:1" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "808:10:1", + "nodeType": "YulTypedName", + "src": "808:10:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "973:22:1", + "nodeType": "YulBlock", + "src": "973:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "975:16:1", + "nodeType": "YulIdentifier", + "src": "975:16:1" + }, + "nativeSrc": "975:18:1", + "nodeType": "YulFunctionCall", + "src": "975:18:1" + }, + "nativeSrc": "975:18:1", + "nodeType": "YulExpressionStatement", + "src": "975:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "916:10:1", + "nodeType": "YulIdentifier", + "src": "916:10:1" + }, + { + "kind": "number", + "nativeSrc": "928:18:1", + "nodeType": "YulLiteral", + "src": "928:18:1", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "913:2:1", + "nodeType": "YulIdentifier", + "src": "913:2:1" + }, + "nativeSrc": "913:34:1", + "nodeType": "YulFunctionCall", + "src": "913:34:1" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "952:10:1", + "nodeType": "YulIdentifier", + "src": "952:10:1" + }, + { + "name": "memPtr", + "nativeSrc": "964:6:1", + "nodeType": "YulIdentifier", + "src": "964:6:1" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "949:2:1", + "nodeType": "YulIdentifier", + "src": "949:2:1" + }, + "nativeSrc": "949:22:1", + "nodeType": "YulFunctionCall", + "src": "949:22:1" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "910:2:1", + "nodeType": "YulIdentifier", + "src": "910:2:1" + }, + "nativeSrc": "910:62:1", + "nodeType": "YulFunctionCall", + "src": "910:62:1" + }, + "nativeSrc": "907:88:1", + "nodeType": "YulIf", + "src": "907:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1011:2:1", + "nodeType": "YulLiteral", + "src": "1011:2:1", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1015:10:1", + "nodeType": "YulIdentifier", + "src": "1015:10:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1004:6:1", + "nodeType": "YulIdentifier", + "src": "1004:6:1" + }, + "nativeSrc": "1004:22:1", + "nodeType": "YulFunctionCall", + "src": "1004:22:1" + }, + "nativeSrc": "1004:22:1", + "nodeType": "YulExpressionStatement", + "src": "1004:22:1" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "751:281:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "780:6:1", + "nodeType": "YulTypedName", + "src": "780:6:1", + "type": "" + }, + { + "name": "size", + "nativeSrc": "788:4:1", + "nodeType": "YulTypedName", + "src": "788:4:1", + "type": "" + } + ], + "src": "751:281:1" + }, + { + "body": { + "nativeSrc": "1079:88:1", + "nodeType": "YulBlock", + "src": "1079:88:1", + "statements": [ + { + "nativeSrc": "1089:30:1", + "nodeType": "YulAssignment", + "src": "1089:30:1", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1099:18:1", + "nodeType": "YulIdentifier", + "src": "1099:18:1" + }, + "nativeSrc": "1099:20:1", + "nodeType": "YulFunctionCall", + "src": "1099:20:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "1089:6:1", + "nodeType": "YulIdentifier", + "src": "1089:6:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1148:6:1", + "nodeType": "YulIdentifier", + "src": "1148:6:1" + }, + { + "name": "size", + "nativeSrc": "1156:4:1", + "nodeType": "YulIdentifier", + "src": "1156:4:1" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "1128:19:1", + "nodeType": "YulIdentifier", + "src": "1128:19:1" + }, + "nativeSrc": "1128:33:1", + "nodeType": "YulFunctionCall", + "src": "1128:33:1" + }, + "nativeSrc": "1128:33:1", + "nodeType": "YulExpressionStatement", + "src": "1128:33:1" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "1038:129:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "1063:4:1", + "nodeType": "YulTypedName", + "src": "1063:4:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "1072:6:1", + "nodeType": "YulTypedName", + "src": "1072:6:1", + "type": "" + } + ], + "src": "1038:129:1" + }, + { + "body": { + "nativeSrc": "1255:229:1", + "nodeType": "YulBlock", + "src": "1255:229:1", + "statements": [ + { + "body": { + "nativeSrc": "1360:22:1", + "nodeType": "YulBlock", + "src": "1360:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1362:16:1", + "nodeType": "YulIdentifier", + "src": "1362:16:1" + }, + "nativeSrc": "1362:18:1", + "nodeType": "YulFunctionCall", + "src": "1362:18:1" + }, + "nativeSrc": "1362:18:1", + "nodeType": "YulExpressionStatement", + "src": "1362:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1332:6:1", + "nodeType": "YulIdentifier", + "src": "1332:6:1" + }, + { + "kind": "number", + "nativeSrc": "1340:18:1", + "nodeType": "YulLiteral", + "src": "1340:18:1", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1329:2:1", + "nodeType": "YulIdentifier", + "src": "1329:2:1" + }, + "nativeSrc": "1329:30:1", + "nodeType": "YulFunctionCall", + "src": "1329:30:1" + }, + "nativeSrc": "1326:56:1", + "nodeType": "YulIf", + "src": "1326:56:1" + }, + { + "nativeSrc": "1392:25:1", + "nodeType": "YulAssignment", + "src": "1392:25:1", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1404:6:1", + "nodeType": "YulIdentifier", + "src": "1404:6:1" + }, + { + "kind": "number", + "nativeSrc": "1412:4:1", + "nodeType": "YulLiteral", + "src": "1412:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "1400:3:1", + "nodeType": "YulIdentifier", + "src": "1400:3:1" + }, + "nativeSrc": "1400:17:1", + "nodeType": "YulFunctionCall", + "src": "1400:17:1" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1392:4:1", + "nodeType": "YulIdentifier", + "src": "1392:4:1" + } + ] + }, + { + "nativeSrc": "1454:23:1", + "nodeType": "YulAssignment", + "src": "1454:23:1", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "1466:4:1", + "nodeType": "YulIdentifier", + "src": "1466:4:1" + }, + { + "kind": "number", + "nativeSrc": "1472:4:1", + "nodeType": "YulLiteral", + "src": "1472:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1462:3:1", + "nodeType": "YulIdentifier", + "src": "1462:3:1" + }, + "nativeSrc": "1462:15:1", + "nodeType": "YulFunctionCall", + "src": "1462:15:1" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "1454:4:1", + "nodeType": "YulIdentifier", + "src": "1454:4:1" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "1173:311:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "1239:6:1", + "nodeType": "YulTypedName", + "src": "1239:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "1250:4:1", + "nodeType": "YulTypedName", + "src": "1250:4:1", + "type": "" + } + ], + "src": "1173:311:1" + }, + { + "body": { + "nativeSrc": "1579:28:1", + "nodeType": "YulBlock", + "src": "1579:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1596:1:1", + "nodeType": "YulLiteral", + "src": "1596:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1599:1:1", + "nodeType": "YulLiteral", + "src": "1599:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1589:6:1", + "nodeType": "YulIdentifier", + "src": "1589:6:1" + }, + "nativeSrc": "1589:12:1", + "nodeType": "YulFunctionCall", + "src": "1589:12:1" + }, + "nativeSrc": "1589:12:1", + "nodeType": "YulExpressionStatement", + "src": "1589:12:1" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "1490:117:1", + "nodeType": "YulFunctionDefinition", + "src": "1490:117:1" + }, + { + "body": { + "nativeSrc": "1658:81:1", + "nodeType": "YulBlock", + "src": "1658:81:1", + "statements": [ + { + "nativeSrc": "1668:65:1", + "nodeType": "YulAssignment", + "src": "1668:65:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1683:5:1", + "nodeType": "YulIdentifier", + "src": "1683:5:1" + }, + { + "kind": "number", + "nativeSrc": "1690:42:1", + "nodeType": "YulLiteral", + "src": "1690:42:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1679:3:1", + "nodeType": "YulIdentifier", + "src": "1679:3:1" + }, + "nativeSrc": "1679:54:1", + "nodeType": "YulFunctionCall", + "src": "1679:54:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1668:7:1", + "nodeType": "YulIdentifier", + "src": "1668:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "1613:126:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1640:5:1", + "nodeType": "YulTypedName", + "src": "1640:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1650:7:1", + "nodeType": "YulTypedName", + "src": "1650:7:1", + "type": "" + } + ], + "src": "1613:126:1" + }, + { + "body": { + "nativeSrc": "1790:51:1", + "nodeType": "YulBlock", + "src": "1790:51:1", + "statements": [ + { + "nativeSrc": "1800:35:1", + "nodeType": "YulAssignment", + "src": "1800:35:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1829:5:1", + "nodeType": "YulIdentifier", + "src": "1829:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "1811:17:1", + "nodeType": "YulIdentifier", + "src": "1811:17:1" + }, + "nativeSrc": "1811:24:1", + "nodeType": "YulFunctionCall", + "src": "1811:24:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1800:7:1", + "nodeType": "YulIdentifier", + "src": "1800:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "1745:96:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1772:5:1", + "nodeType": "YulTypedName", + "src": "1772:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1782:7:1", + "nodeType": "YulTypedName", + "src": "1782:7:1", + "type": "" + } + ], + "src": "1745:96:1" + }, + { + "body": { + "nativeSrc": "1890:79:1", + "nodeType": "YulBlock", + "src": "1890:79:1", + "statements": [ + { + "body": { + "nativeSrc": "1947:16:1", + "nodeType": "YulBlock", + "src": "1947:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1956:1:1", + "nodeType": "YulLiteral", + "src": "1956:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1959:1:1", + "nodeType": "YulLiteral", + "src": "1959:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1949:6:1", + "nodeType": "YulIdentifier", + "src": "1949:6:1" + }, + "nativeSrc": "1949:12:1", + "nodeType": "YulFunctionCall", + "src": "1949:12:1" + }, + "nativeSrc": "1949:12:1", + "nodeType": "YulExpressionStatement", + "src": "1949:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1913:5:1", + "nodeType": "YulIdentifier", + "src": "1913:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1938:5:1", + "nodeType": "YulIdentifier", + "src": "1938:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1920:17:1", + "nodeType": "YulIdentifier", + "src": "1920:17:1" + }, + "nativeSrc": "1920:24:1", + "nodeType": "YulFunctionCall", + "src": "1920:24:1" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1910:2:1", + "nodeType": "YulIdentifier", + "src": "1910:2:1" + }, + "nativeSrc": "1910:35:1", + "nodeType": "YulFunctionCall", + "src": "1910:35:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1903:6:1", + "nodeType": "YulIdentifier", + "src": "1903:6:1" + }, + "nativeSrc": "1903:43:1", + "nodeType": "YulFunctionCall", + "src": "1903:43:1" + }, + "nativeSrc": "1900:63:1", + "nodeType": "YulIf", + "src": "1900:63:1" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "1847:122:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1883:5:1", + "nodeType": "YulTypedName", + "src": "1883:5:1", + "type": "" + } + ], + "src": "1847:122:1" + }, + { + "body": { + "nativeSrc": "2038:80:1", + "nodeType": "YulBlock", + "src": "2038:80:1", + "statements": [ + { + "nativeSrc": "2048:22:1", + "nodeType": "YulAssignment", + "src": "2048:22:1", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2063:6:1", + "nodeType": "YulIdentifier", + "src": "2063:6:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2057:5:1", + "nodeType": "YulIdentifier", + "src": "2057:5:1" + }, + "nativeSrc": "2057:13:1", + "nodeType": "YulFunctionCall", + "src": "2057:13:1" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2048:5:1", + "nodeType": "YulIdentifier", + "src": "2048:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2106:5:1", + "nodeType": "YulIdentifier", + "src": "2106:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "2079:26:1", + "nodeType": "YulIdentifier", + "src": "2079:26:1" + }, + "nativeSrc": "2079:33:1", + "nodeType": "YulFunctionCall", + "src": "2079:33:1" + }, + "nativeSrc": "2079:33:1", + "nodeType": "YulExpressionStatement", + "src": "2079:33:1" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1975:143:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2016:6:1", + "nodeType": "YulTypedName", + "src": "2016:6:1", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2024:3:1", + "nodeType": "YulTypedName", + "src": "2024:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2032:5:1", + "nodeType": "YulTypedName", + "src": "2032:5:1", + "type": "" + } + ], + "src": "1975:143:1" + }, + { + "body": { + "nativeSrc": "2254:619:1", + "nodeType": "YulBlock", + "src": "2254:619:1", + "statements": [ + { + "nativeSrc": "2264:90:1", + "nodeType": "YulAssignment", + "src": "2264:90:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2346:6:1", + "nodeType": "YulIdentifier", + "src": "2346:6:1" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "2289:56:1", + "nodeType": "YulIdentifier", + "src": "2289:56:1" + }, + "nativeSrc": "2289:64:1", + "nodeType": "YulFunctionCall", + "src": "2289:64:1" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "2273:15:1", + "nodeType": "YulIdentifier", + "src": "2273:15:1" + }, + "nativeSrc": "2273:81:1", + "nodeType": "YulFunctionCall", + "src": "2273:81:1" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "2264:5:1", + "nodeType": "YulIdentifier", + "src": "2264:5:1" + } + ] + }, + { + "nativeSrc": "2363:16:1", + "nodeType": "YulVariableDeclaration", + "src": "2363:16:1", + "value": { + "name": "array", + "nativeSrc": "2374:5:1", + "nodeType": "YulIdentifier", + "src": "2374:5:1" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "2367:3:1", + "nodeType": "YulTypedName", + "src": "2367:3:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2396:5:1", + "nodeType": "YulIdentifier", + "src": "2396:5:1" + }, + { + "name": "length", + "nativeSrc": "2403:6:1", + "nodeType": "YulIdentifier", + "src": "2403:6:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2389:6:1", + "nodeType": "YulIdentifier", + "src": "2389:6:1" + }, + "nativeSrc": "2389:21:1", + "nodeType": "YulFunctionCall", + "src": "2389:21:1" + }, + "nativeSrc": "2389:21:1", + "nodeType": "YulExpressionStatement", + "src": "2389:21:1" + }, + { + "nativeSrc": "2419:23:1", + "nodeType": "YulAssignment", + "src": "2419:23:1", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2430:5:1", + "nodeType": "YulIdentifier", + "src": "2430:5:1" + }, + { + "kind": "number", + "nativeSrc": "2437:4:1", + "nodeType": "YulLiteral", + "src": "2437:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2426:3:1", + "nodeType": "YulIdentifier", + "src": "2426:3:1" + }, + "nativeSrc": "2426:16:1", + "nodeType": "YulFunctionCall", + "src": "2426:16:1" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "2419:3:1", + "nodeType": "YulIdentifier", + "src": "2419:3:1" + } + ] + }, + { + "nativeSrc": "2452:44:1", + "nodeType": "YulVariableDeclaration", + "src": "2452:44:1", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2470:6:1", + "nodeType": "YulIdentifier", + "src": "2470:6:1" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2482:6:1", + "nodeType": "YulIdentifier", + "src": "2482:6:1" + }, + { + "kind": "number", + "nativeSrc": "2490:4:1", + "nodeType": "YulLiteral", + "src": "2490:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "2478:3:1", + "nodeType": "YulIdentifier", + "src": "2478:3:1" + }, + "nativeSrc": "2478:17:1", + "nodeType": "YulFunctionCall", + "src": "2478:17:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2466:3:1", + "nodeType": "YulIdentifier", + "src": "2466:3:1" + }, + "nativeSrc": "2466:30:1", + "nodeType": "YulFunctionCall", + "src": "2466:30:1" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "2456:6:1", + "nodeType": "YulTypedName", + "src": "2456:6:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2524:103:1", + "nodeType": "YulBlock", + "src": "2524:103:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "2538:77:1", + "nodeType": "YulIdentifier", + "src": "2538:77:1" + }, + "nativeSrc": "2538:79:1", + "nodeType": "YulFunctionCall", + "src": "2538:79:1" + }, + "nativeSrc": "2538:79:1", + "nodeType": "YulExpressionStatement", + "src": "2538:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "2511:6:1", + "nodeType": "YulIdentifier", + "src": "2511:6:1" + }, + { + "name": "end", + "nativeSrc": "2519:3:1", + "nodeType": "YulIdentifier", + "src": "2519:3:1" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2508:2:1", + "nodeType": "YulIdentifier", + "src": "2508:2:1" + }, + "nativeSrc": "2508:15:1", + "nodeType": "YulFunctionCall", + "src": "2508:15:1" + }, + "nativeSrc": "2505:122:1", + "nodeType": "YulIf", + "src": "2505:122:1" + }, + { + "body": { + "nativeSrc": "2712:155:1", + "nodeType": "YulBlock", + "src": "2712:155:1", + "statements": [ + { + "nativeSrc": "2727:21:1", + "nodeType": "YulVariableDeclaration", + "src": "2727:21:1", + "value": { + "name": "src", + "nativeSrc": "2745:3:1", + "nodeType": "YulIdentifier", + "src": "2745:3:1" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "2731:10:1", + "nodeType": "YulTypedName", + "src": "2731:10:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2769:3:1", + "nodeType": "YulIdentifier", + "src": "2769:3:1" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "2806:10:1", + "nodeType": "YulIdentifier", + "src": "2806:10:1" + }, + { + "name": "end", + "nativeSrc": "2818:3:1", + "nodeType": "YulIdentifier", + "src": "2818:3:1" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "2774:31:1", + "nodeType": "YulIdentifier", + "src": "2774:31:1" + }, + "nativeSrc": "2774:48:1", + "nodeType": "YulFunctionCall", + "src": "2774:48:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2762:6:1", + "nodeType": "YulIdentifier", + "src": "2762:6:1" + }, + "nativeSrc": "2762:61:1", + "nodeType": "YulFunctionCall", + "src": "2762:61:1" + }, + "nativeSrc": "2762:61:1", + "nodeType": "YulExpressionStatement", + "src": "2762:61:1" + }, + { + "nativeSrc": "2836:21:1", + "nodeType": "YulAssignment", + "src": "2836:21:1", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "2847:3:1", + "nodeType": "YulIdentifier", + "src": "2847:3:1" + }, + { + "kind": "number", + "nativeSrc": "2852:4:1", + "nodeType": "YulLiteral", + "src": "2852:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2843:3:1", + "nodeType": "YulIdentifier", + "src": "2843:3:1" + }, + "nativeSrc": "2843:14:1", + "nodeType": "YulFunctionCall", + "src": "2843:14:1" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "2836:3:1", + "nodeType": "YulIdentifier", + "src": "2836:3:1" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2665:3:1", + "nodeType": "YulIdentifier", + "src": "2665:3:1" + }, + { + "name": "srcEnd", + "nativeSrc": "2670:6:1", + "nodeType": "YulIdentifier", + "src": "2670:6:1" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2662:2:1", + "nodeType": "YulIdentifier", + "src": "2662:2:1" + }, + "nativeSrc": "2662:15:1", + "nodeType": "YulFunctionCall", + "src": "2662:15:1" + }, + "nativeSrc": "2636:231:1", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2678:25:1", + "nodeType": "YulBlock", + "src": "2678:25:1", + "statements": [ + { + "nativeSrc": "2680:21:1", + "nodeType": "YulAssignment", + "src": "2680:21:1", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2691:3:1", + "nodeType": "YulIdentifier", + "src": "2691:3:1" + }, + { + "kind": "number", + "nativeSrc": "2696:4:1", + "nodeType": "YulLiteral", + "src": "2696:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2687:3:1", + "nodeType": "YulIdentifier", + "src": "2687:3:1" + }, + "nativeSrc": "2687:14:1", + "nodeType": "YulFunctionCall", + "src": "2687:14:1" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "2680:3:1", + "nodeType": "YulIdentifier", + "src": "2680:3:1" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "2640:21:1", + "nodeType": "YulBlock", + "src": "2640:21:1", + "statements": [ + { + "nativeSrc": "2642:17:1", + "nodeType": "YulVariableDeclaration", + "src": "2642:17:1", + "value": { + "name": "offset", + "nativeSrc": "2653:6:1", + "nodeType": "YulIdentifier", + "src": "2653:6:1" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "2646:3:1", + "nodeType": "YulTypedName", + "src": "2646:3:1", + "type": "" + } + ] + } + ] + }, + "src": "2636:231:1" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory", + "nativeSrc": "2141:732:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2224:6:1", + "nodeType": "YulTypedName", + "src": "2224:6:1", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2232:6:1", + "nodeType": "YulTypedName", + "src": "2232:6:1", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2240:3:1", + "nodeType": "YulTypedName", + "src": "2240:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2248:5:1", + "nodeType": "YulTypedName", + "src": "2248:5:1", + "type": "" + } + ], + "src": "2141:732:1" + }, + { + "body": { + "nativeSrc": "2984:297:1", + "nodeType": "YulBlock", + "src": "2984:297:1", + "statements": [ + { + "body": { + "nativeSrc": "3033:83:1", + "nodeType": "YulBlock", + "src": "3033:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "3035:77:1", + "nodeType": "YulIdentifier", + "src": "3035:77:1" + }, + "nativeSrc": "3035:79:1", + "nodeType": "YulFunctionCall", + "src": "3035:79:1" + }, + "nativeSrc": "3035:79:1", + "nodeType": "YulExpressionStatement", + "src": "3035:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3012:6:1", + "nodeType": "YulIdentifier", + "src": "3012:6:1" + }, + { + "kind": "number", + "nativeSrc": "3020:4:1", + "nodeType": "YulLiteral", + "src": "3020:4:1", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3008:3:1", + "nodeType": "YulIdentifier", + "src": "3008:3:1" + }, + "nativeSrc": "3008:17:1", + "nodeType": "YulFunctionCall", + "src": "3008:17:1" + }, + { + "name": "end", + "nativeSrc": "3027:3:1", + "nodeType": "YulIdentifier", + "src": "3027:3:1" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3004:3:1", + "nodeType": "YulIdentifier", + "src": "3004:3:1" + }, + "nativeSrc": "3004:27:1", + "nodeType": "YulFunctionCall", + "src": "3004:27:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2997:6:1", + "nodeType": "YulIdentifier", + "src": "2997:6:1" + }, + "nativeSrc": "2997:35:1", + "nodeType": "YulFunctionCall", + "src": "2997:35:1" + }, + "nativeSrc": "2994:122:1", + "nodeType": "YulIf", + "src": "2994:122:1" + }, + { + "nativeSrc": "3125:27:1", + "nodeType": "YulVariableDeclaration", + "src": "3125:27:1", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3145:6:1", + "nodeType": "YulIdentifier", + "src": "3145:6:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3139:5:1", + "nodeType": "YulIdentifier", + "src": "3139:5:1" + }, + "nativeSrc": "3139:13:1", + "nodeType": "YulFunctionCall", + "src": "3139:13:1" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "3129:6:1", + "nodeType": "YulTypedName", + "src": "3129:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "3161:114:1", + "nodeType": "YulAssignment", + "src": "3161:114:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3248:6:1", + "nodeType": "YulIdentifier", + "src": "3248:6:1" + }, + { + "kind": "number", + "nativeSrc": "3256:4:1", + "nodeType": "YulLiteral", + "src": "3256:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3244:3:1", + "nodeType": "YulIdentifier", + "src": "3244:3:1" + }, + "nativeSrc": "3244:17:1", + "nodeType": "YulFunctionCall", + "src": "3244:17:1" + }, + { + "name": "length", + "nativeSrc": "3263:6:1", + "nodeType": "YulIdentifier", + "src": "3263:6:1" + }, + { + "name": "end", + "nativeSrc": "3271:3:1", + "nodeType": "YulIdentifier", + "src": "3271:3:1" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory", + "nativeSrc": "3170:73:1", + "nodeType": "YulIdentifier", + "src": "3170:73:1" + }, + "nativeSrc": "3170:105:1", + "nodeType": "YulFunctionCall", + "src": "3170:105:1" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3161:5:1", + "nodeType": "YulIdentifier", + "src": "3161:5:1" + } + ] + } + ] + }, + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory", + "nativeSrc": "2896:385:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2962:6:1", + "nodeType": "YulTypedName", + "src": "2962:6:1", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2970:3:1", + "nodeType": "YulTypedName", + "src": "2970:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2978:5:1", + "nodeType": "YulTypedName", + "src": "2978:5:1", + "type": "" + } + ], + "src": "2896:385:1" + }, + { + "body": { + "nativeSrc": "3332:32:1", + "nodeType": "YulBlock", + "src": "3332:32:1", + "statements": [ + { + "nativeSrc": "3342:16:1", + "nodeType": "YulAssignment", + "src": "3342:16:1", + "value": { + "name": "value", + "nativeSrc": "3353:5:1", + "nodeType": "YulIdentifier", + "src": "3353:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "3342:7:1", + "nodeType": "YulIdentifier", + "src": "3342:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "3287:77:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3314:5:1", + "nodeType": "YulTypedName", + "src": "3314:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "3324:7:1", + "nodeType": "YulTypedName", + "src": "3324:7:1", + "type": "" + } + ], + "src": "3287:77:1" + }, + { + "body": { + "nativeSrc": "3413:79:1", + "nodeType": "YulBlock", + "src": "3413:79:1", + "statements": [ + { + "body": { + "nativeSrc": "3470:16:1", + "nodeType": "YulBlock", + "src": "3470:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3479:1:1", + "nodeType": "YulLiteral", + "src": "3479:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3482:1:1", + "nodeType": "YulLiteral", + "src": "3482:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3472:6:1", + "nodeType": "YulIdentifier", + "src": "3472:6:1" + }, + "nativeSrc": "3472:12:1", + "nodeType": "YulFunctionCall", + "src": "3472:12:1" + }, + "nativeSrc": "3472:12:1", + "nodeType": "YulExpressionStatement", + "src": "3472:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3436:5:1", + "nodeType": "YulIdentifier", + "src": "3436:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3461:5:1", + "nodeType": "YulIdentifier", + "src": "3461:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "3443:17:1", + "nodeType": "YulIdentifier", + "src": "3443:17:1" + }, + "nativeSrc": "3443:24:1", + "nodeType": "YulFunctionCall", + "src": "3443:24:1" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3433:2:1", + "nodeType": "YulIdentifier", + "src": "3433:2:1" + }, + "nativeSrc": "3433:35:1", + "nodeType": "YulFunctionCall", + "src": "3433:35:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3426:6:1", + "nodeType": "YulIdentifier", + "src": "3426:6:1" + }, + "nativeSrc": "3426:43:1", + "nodeType": "YulFunctionCall", + "src": "3426:43:1" + }, + "nativeSrc": "3423:63:1", + "nodeType": "YulIf", + "src": "3423:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "3370:122:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3406:5:1", + "nodeType": "YulTypedName", + "src": "3406:5:1", + "type": "" + } + ], + "src": "3370:122:1" + }, + { + "body": { + "nativeSrc": "3561:80:1", + "nodeType": "YulBlock", + "src": "3561:80:1", + "statements": [ + { + "nativeSrc": "3571:22:1", + "nodeType": "YulAssignment", + "src": "3571:22:1", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3586:6:1", + "nodeType": "YulIdentifier", + "src": "3586:6:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3580:5:1", + "nodeType": "YulIdentifier", + "src": "3580:5:1" + }, + "nativeSrc": "3580:13:1", + "nodeType": "YulFunctionCall", + "src": "3580:13:1" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3571:5:1", + "nodeType": "YulIdentifier", + "src": "3571:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3629:5:1", + "nodeType": "YulIdentifier", + "src": "3629:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "3602:26:1", + "nodeType": "YulIdentifier", + "src": "3602:26:1" + }, + "nativeSrc": "3602:33:1", + "nodeType": "YulFunctionCall", + "src": "3602:33:1" + }, + "nativeSrc": "3602:33:1", + "nodeType": "YulExpressionStatement", + "src": "3602:33:1" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "3498:143:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3539:6:1", + "nodeType": "YulTypedName", + "src": "3539:6:1", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3547:3:1", + "nodeType": "YulTypedName", + "src": "3547:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3555:5:1", + "nodeType": "YulTypedName", + "src": "3555:5:1", + "type": "" + } + ], + "src": "3498:143:1" + }, + { + "body": { + "nativeSrc": "3766:591:1", + "nodeType": "YulBlock", + "src": "3766:591:1", + "statements": [ + { + "body": { + "nativeSrc": "3812:83:1", + "nodeType": "YulBlock", + "src": "3812:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3814:77:1", + "nodeType": "YulIdentifier", + "src": "3814:77:1" + }, + "nativeSrc": "3814:79:1", + "nodeType": "YulFunctionCall", + "src": "3814:79:1" + }, + "nativeSrc": "3814:79:1", + "nodeType": "YulExpressionStatement", + "src": "3814:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3787:7:1", + "nodeType": "YulIdentifier", + "src": "3787:7:1" + }, + { + "name": "headStart", + "nativeSrc": "3796:9:1", + "nodeType": "YulIdentifier", + "src": "3796:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3783:3:1", + "nodeType": "YulIdentifier", + "src": "3783:3:1" + }, + "nativeSrc": "3783:23:1", + "nodeType": "YulFunctionCall", + "src": "3783:23:1" + }, + { + "kind": "number", + "nativeSrc": "3808:2:1", + "nodeType": "YulLiteral", + "src": "3808:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3779:3:1", + "nodeType": "YulIdentifier", + "src": "3779:3:1" + }, + "nativeSrc": "3779:32:1", + "nodeType": "YulFunctionCall", + "src": "3779:32:1" + }, + "nativeSrc": "3776:119:1", + "nodeType": "YulIf", + "src": "3776:119:1" + }, + { + "nativeSrc": "3905:306:1", + "nodeType": "YulBlock", + "src": "3905:306:1", + "statements": [ + { + "nativeSrc": "3920:38:1", + "nodeType": "YulVariableDeclaration", + "src": "3920:38:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3944:9:1", + "nodeType": "YulIdentifier", + "src": "3944:9:1" + }, + { + "kind": "number", + "nativeSrc": "3955:1:1", + "nodeType": "YulLiteral", + "src": "3955:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3940:3:1", + "nodeType": "YulIdentifier", + "src": "3940:3:1" + }, + "nativeSrc": "3940:17:1", + "nodeType": "YulFunctionCall", + "src": "3940:17:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3934:5:1", + "nodeType": "YulIdentifier", + "src": "3934:5:1" + }, + "nativeSrc": "3934:24:1", + "nodeType": "YulFunctionCall", + "src": "3934:24:1" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3924:6:1", + "nodeType": "YulTypedName", + "src": "3924:6:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4005:83:1", + "nodeType": "YulBlock", + "src": "4005:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "4007:77:1", + "nodeType": "YulIdentifier", + "src": "4007:77:1" + }, + "nativeSrc": "4007:79:1", + "nodeType": "YulFunctionCall", + "src": "4007:79:1" + }, + "nativeSrc": "4007:79:1", + "nodeType": "YulExpressionStatement", + "src": "4007:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3977:6:1", + "nodeType": "YulIdentifier", + "src": "3977:6:1" + }, + { + "kind": "number", + "nativeSrc": "3985:18:1", + "nodeType": "YulLiteral", + "src": "3985:18:1", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3974:2:1", + "nodeType": "YulIdentifier", + "src": "3974:2:1" + }, + "nativeSrc": "3974:30:1", + "nodeType": "YulFunctionCall", + "src": "3974:30:1" + }, + "nativeSrc": "3971:117:1", + "nodeType": "YulIf", + "src": "3971:117:1" + }, + { + "nativeSrc": "4102:99:1", + "nodeType": "YulAssignment", + "src": "4102:99:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4173:9:1", + "nodeType": "YulIdentifier", + "src": "4173:9:1" + }, + { + "name": "offset", + "nativeSrc": "4184:6:1", + "nodeType": "YulIdentifier", + "src": "4184:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4169:3:1", + "nodeType": "YulIdentifier", + "src": "4169:3:1" + }, + "nativeSrc": "4169:22:1", + "nodeType": "YulFunctionCall", + "src": "4169:22:1" + }, + { + "name": "dataEnd", + "nativeSrc": "4193:7:1", + "nodeType": "YulIdentifier", + "src": "4193:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory", + "nativeSrc": "4112:56:1", + "nodeType": "YulIdentifier", + "src": "4112:56:1" + }, + "nativeSrc": "4112:89:1", + "nodeType": "YulFunctionCall", + "src": "4112:89:1" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4102:6:1", + "nodeType": "YulIdentifier", + "src": "4102:6:1" + } + ] + } + ] + }, + { + "nativeSrc": "4221:129:1", + "nodeType": "YulBlock", + "src": "4221:129:1", + "statements": [ + { + "nativeSrc": "4236:16:1", + "nodeType": "YulVariableDeclaration", + "src": "4236:16:1", + "value": { + "kind": "number", + "nativeSrc": "4250:2:1", + "nodeType": "YulLiteral", + "src": "4250:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4240:6:1", + "nodeType": "YulTypedName", + "src": "4240:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "4266:74:1", + "nodeType": "YulAssignment", + "src": "4266:74:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4312:9:1", + "nodeType": "YulIdentifier", + "src": "4312:9:1" + }, + { + "name": "offset", + "nativeSrc": "4323:6:1", + "nodeType": "YulIdentifier", + "src": "4323:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4308:3:1", + "nodeType": "YulIdentifier", + "src": "4308:3:1" + }, + "nativeSrc": "4308:22:1", + "nodeType": "YulFunctionCall", + "src": "4308:22:1" + }, + { + "name": "dataEnd", + "nativeSrc": "4332:7:1", + "nodeType": "YulIdentifier", + "src": "4332:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "4276:31:1", + "nodeType": "YulIdentifier", + "src": "4276:31:1" + }, + "nativeSrc": "4276:64:1", + "nodeType": "YulFunctionCall", + "src": "4276:64:1" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4266:6:1", + "nodeType": "YulIdentifier", + "src": "4266:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256_fromMemory", + "nativeSrc": "3647:710:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3728:9:1", + "nodeType": "YulTypedName", + "src": "3728:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3739:7:1", + "nodeType": "YulTypedName", + "src": "3739:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3751:6:1", + "nodeType": "YulTypedName", + "src": "3751:6:1", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3759:6:1", + "nodeType": "YulTypedName", + "src": "3759:6:1", + "type": "" + } + ], + "src": "3647:710:1" + }, + { + "body": { + "nativeSrc": "4459:73:1", + "nodeType": "YulBlock", + "src": "4459:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4476:3:1", + "nodeType": "YulIdentifier", + "src": "4476:3:1" + }, + { + "name": "length", + "nativeSrc": "4481:6:1", + "nodeType": "YulIdentifier", + "src": "4481:6:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4469:6:1", + "nodeType": "YulIdentifier", + "src": "4469:6:1" + }, + "nativeSrc": "4469:19:1", + "nodeType": "YulFunctionCall", + "src": "4469:19:1" + }, + "nativeSrc": "4469:19:1", + "nodeType": "YulExpressionStatement", + "src": "4469:19:1" + }, + { + "nativeSrc": "4497:29:1", + "nodeType": "YulAssignment", + "src": "4497:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4516:3:1", + "nodeType": "YulIdentifier", + "src": "4516:3:1" + }, + { + "kind": "number", + "nativeSrc": "4521:4:1", + "nodeType": "YulLiteral", + "src": "4521:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4512:3:1", + "nodeType": "YulIdentifier", + "src": "4512:3:1" + }, + "nativeSrc": "4512:14:1", + "nodeType": "YulFunctionCall", + "src": "4512:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "4497:11:1", + "nodeType": "YulIdentifier", + "src": "4497:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "4363:169:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "4431:3:1", + "nodeType": "YulTypedName", + "src": "4431:3:1", + "type": "" + }, + { + "name": "length", + "nativeSrc": "4436:6:1", + "nodeType": "YulTypedName", + "src": "4436:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "4447:11:1", + "nodeType": "YulTypedName", + "src": "4447:11:1", + "type": "" + } + ], + "src": "4363:169:1" + }, + { + "body": { + "nativeSrc": "4644:59:1", + "nodeType": "YulBlock", + "src": "4644:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "4666:6:1", + "nodeType": "YulIdentifier", + "src": "4666:6:1" + }, + { + "kind": "number", + "nativeSrc": "4674:1:1", + "nodeType": "YulLiteral", + "src": "4674:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4662:3:1", + "nodeType": "YulIdentifier", + "src": "4662:3:1" + }, + "nativeSrc": "4662:14:1", + "nodeType": "YulFunctionCall", + "src": "4662:14:1" + }, + { + "hexValue": "6f776e657273207265717569726564", + "kind": "string", + "nativeSrc": "4678:17:1", + "nodeType": "YulLiteral", + "src": "4678:17:1", + "type": "", + "value": "owners required" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4655:6:1", + "nodeType": "YulIdentifier", + "src": "4655:6:1" + }, + "nativeSrc": "4655:41:1", + "nodeType": "YulFunctionCall", + "src": "4655:41:1" + }, + "nativeSrc": "4655:41:1", + "nodeType": "YulExpressionStatement", + "src": "4655:41:1" + } + ] + }, + "name": "store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0", + "nativeSrc": "4538:165:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "4636:6:1", + "nodeType": "YulTypedName", + "src": "4636:6:1", + "type": "" + } + ], + "src": "4538:165:1" + }, + { + "body": { + "nativeSrc": "4855:220:1", + "nodeType": "YulBlock", + "src": "4855:220:1", + "statements": [ + { + "nativeSrc": "4865:74:1", + "nodeType": "YulAssignment", + "src": "4865:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4931:3:1", + "nodeType": "YulIdentifier", + "src": "4931:3:1" + }, + { + "kind": "number", + "nativeSrc": "4936:2:1", + "nodeType": "YulLiteral", + "src": "4936:2:1", + "type": "", + "value": "15" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "4872:58:1", + "nodeType": "YulIdentifier", + "src": "4872:58:1" + }, + "nativeSrc": "4872:67:1", + "nodeType": "YulFunctionCall", + "src": "4872:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "4865:3:1", + "nodeType": "YulIdentifier", + "src": "4865:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5037:3:1", + "nodeType": "YulIdentifier", + "src": "5037:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0", + "nativeSrc": "4948:88:1", + "nodeType": "YulIdentifier", + "src": "4948:88:1" + }, + "nativeSrc": "4948:93:1", + "nodeType": "YulFunctionCall", + "src": "4948:93:1" + }, + "nativeSrc": "4948:93:1", + "nodeType": "YulExpressionStatement", + "src": "4948:93:1" + }, + { + "nativeSrc": "5050:19:1", + "nodeType": "YulAssignment", + "src": "5050:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5061:3:1", + "nodeType": "YulIdentifier", + "src": "5061:3:1" + }, + { + "kind": "number", + "nativeSrc": "5066:2:1", + "nodeType": "YulLiteral", + "src": "5066:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5057:3:1", + "nodeType": "YulIdentifier", + "src": "5057:3:1" + }, + "nativeSrc": "5057:12:1", + "nodeType": "YulFunctionCall", + "src": "5057:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "5050:3:1", + "nodeType": "YulIdentifier", + "src": "5050:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack", + "nativeSrc": "4709:366:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "4843:3:1", + "nodeType": "YulTypedName", + "src": "4843:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "4851:3:1", + "nodeType": "YulTypedName", + "src": "4851:3:1", + "type": "" + } + ], + "src": "4709:366:1" + }, + { + "body": { + "nativeSrc": "5252:248:1", + "nodeType": "YulBlock", + "src": "5252:248:1", + "statements": [ + { + "nativeSrc": "5262:26:1", + "nodeType": "YulAssignment", + "src": "5262:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5274:9:1", + "nodeType": "YulIdentifier", + "src": "5274:9:1" + }, + { + "kind": "number", + "nativeSrc": "5285:2:1", + "nodeType": "YulLiteral", + "src": "5285:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5270:3:1", + "nodeType": "YulIdentifier", + "src": "5270:3:1" + }, + "nativeSrc": "5270:18:1", + "nodeType": "YulFunctionCall", + "src": "5270:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5262:4:1", + "nodeType": "YulIdentifier", + "src": "5262:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5309:9:1", + "nodeType": "YulIdentifier", + "src": "5309:9:1" + }, + { + "kind": "number", + "nativeSrc": "5320:1:1", + "nodeType": "YulLiteral", + "src": "5320:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5305:3:1", + "nodeType": "YulIdentifier", + "src": "5305:3:1" + }, + "nativeSrc": "5305:17:1", + "nodeType": "YulFunctionCall", + "src": "5305:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "5328:4:1", + "nodeType": "YulIdentifier", + "src": "5328:4:1" + }, + { + "name": "headStart", + "nativeSrc": "5334:9:1", + "nodeType": "YulIdentifier", + "src": "5334:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5324:3:1", + "nodeType": "YulIdentifier", + "src": "5324:3:1" + }, + "nativeSrc": "5324:20:1", + "nodeType": "YulFunctionCall", + "src": "5324:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5298:6:1", + "nodeType": "YulIdentifier", + "src": "5298:6:1" + }, + "nativeSrc": "5298:47:1", + "nodeType": "YulFunctionCall", + "src": "5298:47:1" + }, + "nativeSrc": "5298:47:1", + "nodeType": "YulExpressionStatement", + "src": "5298:47:1" + }, + { + "nativeSrc": "5354:139:1", + "nodeType": "YulAssignment", + "src": "5354:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "5488:4:1", + "nodeType": "YulIdentifier", + "src": "5488:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack", + "nativeSrc": "5362:124:1", + "nodeType": "YulIdentifier", + "src": "5362:124:1" + }, + "nativeSrc": "5362:131:1", + "nodeType": "YulFunctionCall", + "src": "5362:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5354:4:1", + "nodeType": "YulIdentifier", + "src": "5354:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "5081:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5232:9:1", + "nodeType": "YulTypedName", + "src": "5232:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5247:4:1", + "nodeType": "YulTypedName", + "src": "5247:4:1", + "type": "" + } + ], + "src": "5081:419:1" + }, + { + "body": { + "nativeSrc": "5612:121:1", + "nodeType": "YulBlock", + "src": "5612:121:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "5634:6:1", + "nodeType": "YulIdentifier", + "src": "5634:6:1" + }, + { + "kind": "number", + "nativeSrc": "5642:1:1", + "nodeType": "YulLiteral", + "src": "5642:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5630:3:1", + "nodeType": "YulIdentifier", + "src": "5630:3:1" + }, + "nativeSrc": "5630:14:1", + "nodeType": "YulFunctionCall", + "src": "5630:14:1" + }, + { + "hexValue": "696e76616c6964206e756d626572206f6620726571756972656420636f6e6669", + "kind": "string", + "nativeSrc": "5646:34:1", + "nodeType": "YulLiteral", + "src": "5646:34:1", + "type": "", + "value": "invalid number of required confi" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5623:6:1", + "nodeType": "YulIdentifier", + "src": "5623:6:1" + }, + "nativeSrc": "5623:58:1", + "nodeType": "YulFunctionCall", + "src": "5623:58:1" + }, + "nativeSrc": "5623:58:1", + "nodeType": "YulExpressionStatement", + "src": "5623:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "5702:6:1", + "nodeType": "YulIdentifier", + "src": "5702:6:1" + }, + { + "kind": "number", + "nativeSrc": "5710:2:1", + "nodeType": "YulLiteral", + "src": "5710:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5698:3:1", + "nodeType": "YulIdentifier", + "src": "5698:3:1" + }, + "nativeSrc": "5698:15:1", + "nodeType": "YulFunctionCall", + "src": "5698:15:1" + }, + { + "hexValue": "726d6174696f6e73", + "kind": "string", + "nativeSrc": "5715:10:1", + "nodeType": "YulLiteral", + "src": "5715:10:1", + "type": "", + "value": "rmations" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5691:6:1", + "nodeType": "YulIdentifier", + "src": "5691:6:1" + }, + "nativeSrc": "5691:35:1", + "nodeType": "YulFunctionCall", + "src": "5691:35:1" + }, + "nativeSrc": "5691:35:1", + "nodeType": "YulExpressionStatement", + "src": "5691:35:1" + } + ] + }, + "name": "store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef", + "nativeSrc": "5506:227:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "5604:6:1", + "nodeType": "YulTypedName", + "src": "5604:6:1", + "type": "" + } + ], + "src": "5506:227:1" + }, + { + "body": { + "nativeSrc": "5885:220:1", + "nodeType": "YulBlock", + "src": "5885:220:1", + "statements": [ + { + "nativeSrc": "5895:74:1", + "nodeType": "YulAssignment", + "src": "5895:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5961:3:1", + "nodeType": "YulIdentifier", + "src": "5961:3:1" + }, + { + "kind": "number", + "nativeSrc": "5966:2:1", + "nodeType": "YulLiteral", + "src": "5966:2:1", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "5902:58:1", + "nodeType": "YulIdentifier", + "src": "5902:58:1" + }, + "nativeSrc": "5902:67:1", + "nodeType": "YulFunctionCall", + "src": "5902:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5895:3:1", + "nodeType": "YulIdentifier", + "src": "5895:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6067:3:1", + "nodeType": "YulIdentifier", + "src": "6067:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef", + "nativeSrc": "5978:88:1", + "nodeType": "YulIdentifier", + "src": "5978:88:1" + }, + "nativeSrc": "5978:93:1", + "nodeType": "YulFunctionCall", + "src": "5978:93:1" + }, + "nativeSrc": "5978:93:1", + "nodeType": "YulExpressionStatement", + "src": "5978:93:1" + }, + { + "nativeSrc": "6080:19:1", + "nodeType": "YulAssignment", + "src": "6080:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6091:3:1", + "nodeType": "YulIdentifier", + "src": "6091:3:1" + }, + { + "kind": "number", + "nativeSrc": "6096:2:1", + "nodeType": "YulLiteral", + "src": "6096:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6087:3:1", + "nodeType": "YulIdentifier", + "src": "6087:3:1" + }, + "nativeSrc": "6087:12:1", + "nodeType": "YulFunctionCall", + "src": "6087:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "6080:3:1", + "nodeType": "YulIdentifier", + "src": "6080:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack", + "nativeSrc": "5739:366:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "5873:3:1", + "nodeType": "YulTypedName", + "src": "5873:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "5881:3:1", + "nodeType": "YulTypedName", + "src": "5881:3:1", + "type": "" + } + ], + "src": "5739:366:1" + }, + { + "body": { + "nativeSrc": "6282:248:1", + "nodeType": "YulBlock", + "src": "6282:248:1", + "statements": [ + { + "nativeSrc": "6292:26:1", + "nodeType": "YulAssignment", + "src": "6292:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6304:9:1", + "nodeType": "YulIdentifier", + "src": "6304:9:1" + }, + { + "kind": "number", + "nativeSrc": "6315:2:1", + "nodeType": "YulLiteral", + "src": "6315:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6300:3:1", + "nodeType": "YulIdentifier", + "src": "6300:3:1" + }, + "nativeSrc": "6300:18:1", + "nodeType": "YulFunctionCall", + "src": "6300:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6292:4:1", + "nodeType": "YulIdentifier", + "src": "6292:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6339:9:1", + "nodeType": "YulIdentifier", + "src": "6339:9:1" + }, + { + "kind": "number", + "nativeSrc": "6350:1:1", + "nodeType": "YulLiteral", + "src": "6350:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6335:3:1", + "nodeType": "YulIdentifier", + "src": "6335:3:1" + }, + "nativeSrc": "6335:17:1", + "nodeType": "YulFunctionCall", + "src": "6335:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "6358:4:1", + "nodeType": "YulIdentifier", + "src": "6358:4:1" + }, + { + "name": "headStart", + "nativeSrc": "6364:9:1", + "nodeType": "YulIdentifier", + "src": "6364:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6354:3:1", + "nodeType": "YulIdentifier", + "src": "6354:3:1" + }, + "nativeSrc": "6354:20:1", + "nodeType": "YulFunctionCall", + "src": "6354:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6328:6:1", + "nodeType": "YulIdentifier", + "src": "6328:6:1" + }, + "nativeSrc": "6328:47:1", + "nodeType": "YulFunctionCall", + "src": "6328:47:1" + }, + "nativeSrc": "6328:47:1", + "nodeType": "YulExpressionStatement", + "src": "6328:47:1" + }, + { + "nativeSrc": "6384:139:1", + "nodeType": "YulAssignment", + "src": "6384:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "6518:4:1", + "nodeType": "YulIdentifier", + "src": "6518:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6392:124:1", + "nodeType": "YulIdentifier", + "src": "6392:124:1" + }, + "nativeSrc": "6392:131:1", + "nodeType": "YulFunctionCall", + "src": "6392:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6384:4:1", + "nodeType": "YulIdentifier", + "src": "6384:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "6111:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6262:9:1", + "nodeType": "YulTypedName", + "src": "6262:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6277:4:1", + "nodeType": "YulTypedName", + "src": "6277:4:1", + "type": "" + } + ], + "src": "6111:419:1" + }, + { + "body": { + "nativeSrc": "6564:152:1", + "nodeType": "YulBlock", + "src": "6564:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6581:1:1", + "nodeType": "YulLiteral", + "src": "6581:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6584:77:1", + "nodeType": "YulLiteral", + "src": "6584:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6574:6:1", + "nodeType": "YulIdentifier", + "src": "6574:6:1" + }, + "nativeSrc": "6574:88:1", + "nodeType": "YulFunctionCall", + "src": "6574:88:1" + }, + "nativeSrc": "6574:88:1", + "nodeType": "YulExpressionStatement", + "src": "6574:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6678:1:1", + "nodeType": "YulLiteral", + "src": "6678:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6681:4:1", + "nodeType": "YulLiteral", + "src": "6681:4:1", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6671:6:1", + "nodeType": "YulIdentifier", + "src": "6671:6:1" + }, + "nativeSrc": "6671:15:1", + "nodeType": "YulFunctionCall", + "src": "6671:15:1" + }, + "nativeSrc": "6671:15:1", + "nodeType": "YulExpressionStatement", + "src": "6671:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6702:1:1", + "nodeType": "YulLiteral", + "src": "6702:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6705:4:1", + "nodeType": "YulLiteral", + "src": "6705:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6695:6:1", + "nodeType": "YulIdentifier", + "src": "6695:6:1" + }, + "nativeSrc": "6695:15:1", + "nodeType": "YulFunctionCall", + "src": "6695:15:1" + }, + "nativeSrc": "6695:15:1", + "nodeType": "YulExpressionStatement", + "src": "6695:15:1" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "6536:180:1", + "nodeType": "YulFunctionDefinition", + "src": "6536:180:1" + }, + { + "body": { + "nativeSrc": "6828:57:1", + "nodeType": "YulBlock", + "src": "6828:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6850:6:1", + "nodeType": "YulIdentifier", + "src": "6850:6:1" + }, + { + "kind": "number", + "nativeSrc": "6858:1:1", + "nodeType": "YulLiteral", + "src": "6858:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6846:3:1", + "nodeType": "YulIdentifier", + "src": "6846:3:1" + }, + "nativeSrc": "6846:14:1", + "nodeType": "YulFunctionCall", + "src": "6846:14:1" + }, + { + "hexValue": "696e76616c6964206f776e6572", + "kind": "string", + "nativeSrc": "6862:15:1", + "nodeType": "YulLiteral", + "src": "6862:15:1", + "type": "", + "value": "invalid owner" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6839:6:1", + "nodeType": "YulIdentifier", + "src": "6839:6:1" + }, + "nativeSrc": "6839:39:1", + "nodeType": "YulFunctionCall", + "src": "6839:39:1" + }, + "nativeSrc": "6839:39:1", + "nodeType": "YulExpressionStatement", + "src": "6839:39:1" + } + ] + }, + "name": "store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14", + "nativeSrc": "6722:163:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6820:6:1", + "nodeType": "YulTypedName", + "src": "6820:6:1", + "type": "" + } + ], + "src": "6722:163:1" + }, + { + "body": { + "nativeSrc": "7037:220:1", + "nodeType": "YulBlock", + "src": "7037:220:1", + "statements": [ + { + "nativeSrc": "7047:74:1", + "nodeType": "YulAssignment", + "src": "7047:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7113:3:1", + "nodeType": "YulIdentifier", + "src": "7113:3:1" + }, + { + "kind": "number", + "nativeSrc": "7118:2:1", + "nodeType": "YulLiteral", + "src": "7118:2:1", + "type": "", + "value": "13" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "7054:58:1", + "nodeType": "YulIdentifier", + "src": "7054:58:1" + }, + "nativeSrc": "7054:67:1", + "nodeType": "YulFunctionCall", + "src": "7054:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "7047:3:1", + "nodeType": "YulIdentifier", + "src": "7047:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7219:3:1", + "nodeType": "YulIdentifier", + "src": "7219:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14", + "nativeSrc": "7130:88:1", + "nodeType": "YulIdentifier", + "src": "7130:88:1" + }, + "nativeSrc": "7130:93:1", + "nodeType": "YulFunctionCall", + "src": "7130:93:1" + }, + "nativeSrc": "7130:93:1", + "nodeType": "YulExpressionStatement", + "src": "7130:93:1" + }, + { + "nativeSrc": "7232:19:1", + "nodeType": "YulAssignment", + "src": "7232:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "7243:3:1", + "nodeType": "YulIdentifier", + "src": "7243:3:1" + }, + { + "kind": "number", + "nativeSrc": "7248:2:1", + "nodeType": "YulLiteral", + "src": "7248:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7239:3:1", + "nodeType": "YulIdentifier", + "src": "7239:3:1" + }, + "nativeSrc": "7239:12:1", + "nodeType": "YulFunctionCall", + "src": "7239:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "7232:3:1", + "nodeType": "YulIdentifier", + "src": "7232:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack", + "nativeSrc": "6891:366:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "7025:3:1", + "nodeType": "YulTypedName", + "src": "7025:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "7033:3:1", + "nodeType": "YulTypedName", + "src": "7033:3:1", + "type": "" + } + ], + "src": "6891:366:1" + }, + { + "body": { + "nativeSrc": "7434:248:1", + "nodeType": "YulBlock", + "src": "7434:248:1", + "statements": [ + { + "nativeSrc": "7444:26:1", + "nodeType": "YulAssignment", + "src": "7444:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7456:9:1", + "nodeType": "YulIdentifier", + "src": "7456:9:1" + }, + { + "kind": "number", + "nativeSrc": "7467:2:1", + "nodeType": "YulLiteral", + "src": "7467:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7452:3:1", + "nodeType": "YulIdentifier", + "src": "7452:3:1" + }, + "nativeSrc": "7452:18:1", + "nodeType": "YulFunctionCall", + "src": "7452:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7444:4:1", + "nodeType": "YulIdentifier", + "src": "7444:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7491:9:1", + "nodeType": "YulIdentifier", + "src": "7491:9:1" + }, + { + "kind": "number", + "nativeSrc": "7502:1:1", + "nodeType": "YulLiteral", + "src": "7502:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7487:3:1", + "nodeType": "YulIdentifier", + "src": "7487:3:1" + }, + "nativeSrc": "7487:17:1", + "nodeType": "YulFunctionCall", + "src": "7487:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "7510:4:1", + "nodeType": "YulIdentifier", + "src": "7510:4:1" + }, + { + "name": "headStart", + "nativeSrc": "7516:9:1", + "nodeType": "YulIdentifier", + "src": "7516:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7506:3:1", + "nodeType": "YulIdentifier", + "src": "7506:3:1" + }, + "nativeSrc": "7506:20:1", + "nodeType": "YulFunctionCall", + "src": "7506:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7480:6:1", + "nodeType": "YulIdentifier", + "src": "7480:6:1" + }, + "nativeSrc": "7480:47:1", + "nodeType": "YulFunctionCall", + "src": "7480:47:1" + }, + "nativeSrc": "7480:47:1", + "nodeType": "YulExpressionStatement", + "src": "7480:47:1" + }, + { + "nativeSrc": "7536:139:1", + "nodeType": "YulAssignment", + "src": "7536:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "7670:4:1", + "nodeType": "YulIdentifier", + "src": "7670:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7544:124:1", + "nodeType": "YulIdentifier", + "src": "7544:124:1" + }, + "nativeSrc": "7544:131:1", + "nodeType": "YulFunctionCall", + "src": "7544:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7536:4:1", + "nodeType": "YulIdentifier", + "src": "7536:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "7263:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7414:9:1", + "nodeType": "YulTypedName", + "src": "7414:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7429:4:1", + "nodeType": "YulTypedName", + "src": "7429:4:1", + "type": "" + } + ], + "src": "7263:419:1" + }, + { + "body": { + "nativeSrc": "7794:60:1", + "nodeType": "YulBlock", + "src": "7794:60:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7816:6:1", + "nodeType": "YulIdentifier", + "src": "7816:6:1" + }, + { + "kind": "number", + "nativeSrc": "7824:1:1", + "nodeType": "YulLiteral", + "src": "7824:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7812:3:1", + "nodeType": "YulIdentifier", + "src": "7812:3:1" + }, + "nativeSrc": "7812:14:1", + "nodeType": "YulFunctionCall", + "src": "7812:14:1" + }, + { + "hexValue": "6f776e6572206e6f7420756e69717565", + "kind": "string", + "nativeSrc": "7828:18:1", + "nodeType": "YulLiteral", + "src": "7828:18:1", + "type": "", + "value": "owner not unique" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7805:6:1", + "nodeType": "YulIdentifier", + "src": "7805:6:1" + }, + "nativeSrc": "7805:42:1", + "nodeType": "YulFunctionCall", + "src": "7805:42:1" + }, + "nativeSrc": "7805:42:1", + "nodeType": "YulExpressionStatement", + "src": "7805:42:1" + } + ] + }, + "name": "store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684", + "nativeSrc": "7688:166:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "7786:6:1", + "nodeType": "YulTypedName", + "src": "7786:6:1", + "type": "" + } + ], + "src": "7688:166:1" + }, + { + "body": { + "nativeSrc": "8006:220:1", + "nodeType": "YulBlock", + "src": "8006:220:1", + "statements": [ + { + "nativeSrc": "8016:74:1", + "nodeType": "YulAssignment", + "src": "8016:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8082:3:1", + "nodeType": "YulIdentifier", + "src": "8082:3:1" + }, + { + "kind": "number", + "nativeSrc": "8087:2:1", + "nodeType": "YulLiteral", + "src": "8087:2:1", + "type": "", + "value": "16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8023:58:1", + "nodeType": "YulIdentifier", + "src": "8023:58:1" + }, + "nativeSrc": "8023:67:1", + "nodeType": "YulFunctionCall", + "src": "8023:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "8016:3:1", + "nodeType": "YulIdentifier", + "src": "8016:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8188:3:1", + "nodeType": "YulIdentifier", + "src": "8188:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684", + "nativeSrc": "8099:88:1", + "nodeType": "YulIdentifier", + "src": "8099:88:1" + }, + "nativeSrc": "8099:93:1", + "nodeType": "YulFunctionCall", + "src": "8099:93:1" + }, + "nativeSrc": "8099:93:1", + "nodeType": "YulExpressionStatement", + "src": "8099:93:1" + }, + { + "nativeSrc": "8201:19:1", + "nodeType": "YulAssignment", + "src": "8201:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8212:3:1", + "nodeType": "YulIdentifier", + "src": "8212:3:1" + }, + { + "kind": "number", + "nativeSrc": "8217:2:1", + "nodeType": "YulLiteral", + "src": "8217:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8208:3:1", + "nodeType": "YulIdentifier", + "src": "8208:3:1" + }, + "nativeSrc": "8208:12:1", + "nodeType": "YulFunctionCall", + "src": "8208:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "8201:3:1", + "nodeType": "YulIdentifier", + "src": "8201:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack", + "nativeSrc": "7860:366:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "7994:3:1", + "nodeType": "YulTypedName", + "src": "7994:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "8002:3:1", + "nodeType": "YulTypedName", + "src": "8002:3:1", + "type": "" + } + ], + "src": "7860:366:1" + }, + { + "body": { + "nativeSrc": "8403:248:1", + "nodeType": "YulBlock", + "src": "8403:248:1", + "statements": [ + { + "nativeSrc": "8413:26:1", + "nodeType": "YulAssignment", + "src": "8413:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8425:9:1", + "nodeType": "YulIdentifier", + "src": "8425:9:1" + }, + { + "kind": "number", + "nativeSrc": "8436:2:1", + "nodeType": "YulLiteral", + "src": "8436:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8421:3:1", + "nodeType": "YulIdentifier", + "src": "8421:3:1" + }, + "nativeSrc": "8421:18:1", + "nodeType": "YulFunctionCall", + "src": "8421:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8413:4:1", + "nodeType": "YulIdentifier", + "src": "8413:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8460:9:1", + "nodeType": "YulIdentifier", + "src": "8460:9:1" + }, + { + "kind": "number", + "nativeSrc": "8471:1:1", + "nodeType": "YulLiteral", + "src": "8471:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8456:3:1", + "nodeType": "YulIdentifier", + "src": "8456:3:1" + }, + "nativeSrc": "8456:17:1", + "nodeType": "YulFunctionCall", + "src": "8456:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "8479:4:1", + "nodeType": "YulIdentifier", + "src": "8479:4:1" + }, + { + "name": "headStart", + "nativeSrc": "8485:9:1", + "nodeType": "YulIdentifier", + "src": "8485:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8475:3:1", + "nodeType": "YulIdentifier", + "src": "8475:3:1" + }, + "nativeSrc": "8475:20:1", + "nodeType": "YulFunctionCall", + "src": "8475:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8449:6:1", + "nodeType": "YulIdentifier", + "src": "8449:6:1" + }, + "nativeSrc": "8449:47:1", + "nodeType": "YulFunctionCall", + "src": "8449:47:1" + }, + "nativeSrc": "8449:47:1", + "nodeType": "YulExpressionStatement", + "src": "8449:47:1" + }, + { + "nativeSrc": "8505:139:1", + "nodeType": "YulAssignment", + "src": "8505:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "8639:4:1", + "nodeType": "YulIdentifier", + "src": "8639:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8513:124:1", + "nodeType": "YulIdentifier", + "src": "8513:124:1" + }, + "nativeSrc": "8513:131:1", + "nodeType": "YulFunctionCall", + "src": "8513:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8505:4:1", + "nodeType": "YulIdentifier", + "src": "8505:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8232:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8383:9:1", + "nodeType": "YulTypedName", + "src": "8383:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8398:4:1", + "nodeType": "YulTypedName", + "src": "8398:4:1", + "type": "" + } + ], + "src": "8232:419:1" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0(memPtr) {\n\n mstore(add(memPtr, 0), \"owners required\")\n\n }\n\n function abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 15)\n store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef(memPtr) {\n\n mstore(add(memPtr, 0), \"invalid number of required confi\")\n\n mstore(add(memPtr, 32), \"rmations\")\n\n }\n\n function abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14(memPtr) {\n\n mstore(add(memPtr, 0), \"invalid owner\")\n\n }\n\n function abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 13)\n store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684(memPtr) {\n\n mstore(add(memPtr, 0), \"owner not unique\")\n\n }\n\n function abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60806040523480156200001157600080fd5b50604051620025a8380380620025a8833981810160405281019062000037919062000505565b60008251116200007e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007590620005cc565b60405180910390fd5b60008111801562000090575081518111155b620000d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c99062000664565b60405180910390fd5b60005b8251811015620002cc576000838281518110620000f757620000f662000686565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200016a9062000705565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000203576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001fa9062000777565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050620000d5565b5080600281905550505062000799565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034082620002f5565b810181811067ffffffffffffffff8211171562000362576200036162000306565b5b80604052505050565b600062000377620002dc565b905062000385828262000335565b919050565b600067ffffffffffffffff821115620003a857620003a762000306565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003eb82620003be565b9050919050565b620003fd81620003de565b81146200040957600080fd5b50565b6000815190506200041d81620003f2565b92915050565b60006200043a62000434846200038a565b6200036b565b9050808382526020820190506020840283018581111562000460576200045f620003b9565b5b835b818110156200048d57806200047888826200040c565b84526020840193505060208101905062000462565b5050509392505050565b600082601f830112620004af57620004ae620002f0565b5b8151620004c184826020860162000423565b91505092915050565b6000819050919050565b620004df81620004ca565b8114620004eb57600080fd5b50565b600081519050620004ff81620004d4565b92915050565b600080604083850312156200051f576200051e620002e6565b5b600083015167ffffffffffffffff81111562000540576200053f620002eb565b5b6200054e8582860162000497565b92505060206200056185828601620004ee565b9150509250929050565b600082825260208201905092915050565b7f6f776e6572732072657175697265640000000000000000000000000000000000600082015250565b6000620005b4600f836200056b565b9150620005c1826200057c565b602082019050919050565b60006020820190508181036000830152620005e781620005a5565b9050919050565b7f696e76616c6964206e756d626572206f6620726571756972656420636f6e666960008201527f726d6174696f6e73000000000000000000000000000000000000000000000000602082015250565b60006200064c6028836200056b565b91506200065982620005ee565b604082019050919050565b600060208201905081810360008301526200067f816200063d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f696e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000620006ed600d836200056b565b9150620006fa82620006b5565b602082019050919050565b600060208201905081810360008301526200072081620006de565b9050919050565b7f6f776e6572206e6f7420756e6971756500000000000000000000000000000000600082015250565b60006200075f6010836200056b565b91506200076c8262000727565b602082019050919050565b60006020820190508181036000830152620007928162000750565b9050919050565b611dff80620007a96000396000f3fe6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x25A8 CODESIZE SUB DUP1 PUSH3 0x25A8 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x505 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT PUSH3 0x7E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x75 SWAP1 PUSH3 0x5CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT DUP1 ISZERO PUSH3 0x90 JUMPI POP DUP2 MLOAD DUP2 GT ISZERO JUMPDEST PUSH3 0xD2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xC9 SWAP1 PUSH3 0x664 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH3 0x2CC JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0xF7 JUMPI PUSH3 0xF6 PUSH3 0x686 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x173 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x16A SWAP1 PUSH3 0x705 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x203 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1FA SWAP1 PUSH3 0x777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH3 0xD5 JUMP JUMPDEST POP DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP PUSH3 0x799 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x340 DUP3 PUSH3 0x2F5 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x362 JUMPI PUSH3 0x361 PUSH3 0x306 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x377 PUSH3 0x2DC JUMP JUMPDEST SWAP1 POP PUSH3 0x385 DUP3 DUP3 PUSH3 0x335 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x3A8 JUMPI PUSH3 0x3A7 PUSH3 0x306 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3EB DUP3 PUSH3 0x3BE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3FD DUP2 PUSH3 0x3DE JUMP JUMPDEST DUP2 EQ PUSH3 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x41D DUP2 PUSH3 0x3F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x43A PUSH3 0x434 DUP5 PUSH3 0x38A JUMP JUMPDEST PUSH3 0x36B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH3 0x460 JUMPI PUSH3 0x45F PUSH3 0x3B9 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x48D JUMPI DUP1 PUSH3 0x478 DUP9 DUP3 PUSH3 0x40C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x462 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x4AF JUMPI PUSH3 0x4AE PUSH3 0x2F0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x4C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x423 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x4DF DUP2 PUSH3 0x4CA JUMP JUMPDEST DUP2 EQ PUSH3 0x4EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x4FF DUP2 PUSH3 0x4D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x51F JUMPI PUSH3 0x51E PUSH3 0x2E6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x540 JUMPI PUSH3 0x53F PUSH3 0x2EB JUMP JUMPDEST JUMPDEST PUSH3 0x54E DUP6 DUP3 DUP7 ADD PUSH3 0x497 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x561 DUP6 DUP3 DUP7 ADD PUSH3 0x4EE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6F776E6572732072657175697265640000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5B4 PUSH1 0xF DUP4 PUSH3 0x56B JUMP JUMPDEST SWAP2 POP PUSH3 0x5C1 DUP3 PUSH3 0x57C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x5E7 DUP2 PUSH3 0x5A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x696E76616C6964206E756D626572206F6620726571756972656420636F6E6669 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x726D6174696F6E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x64C PUSH1 0x28 DUP4 PUSH3 0x56B JUMP JUMPDEST SWAP2 POP PUSH3 0x659 DUP3 PUSH3 0x5EE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x67F DUP2 PUSH3 0x63D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x696E76616C6964206F776E657200000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x6ED PUSH1 0xD DUP4 PUSH3 0x56B JUMP JUMPDEST SWAP2 POP PUSH3 0x6FA DUP3 PUSH3 0x6B5 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x720 DUP2 PUSH3 0x6DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6F776E6572206E6F7420756E6971756500000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x75F PUSH1 0x10 DUP4 PUSH3 0x56B JUMP JUMPDEST SWAP2 POP PUSH3 0x76C DUP3 PUSH3 0x727 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x792 DUP2 PUSH3 0x750 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DFF DUP1 PUSH3 0x7A9 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9ACE38C2 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x9ACE38C2 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xA0E67E2B EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0xC01A8C84 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0xC6427474 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xD0549B85 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0xEE22610B EQ PUSH2 0x33C JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH4 0x25E7C27 EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x20EA8D86 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x2E7700F0 EQ PUSH2 0x16D JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x33EA3DC8 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x80F59A65 EQ PUSH2 0x216 JUMPI PUSH2 0x102 JUMP JUMPDEST CALLDATASIZE PUSH2 0x102 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 CALLVALUE SELFBALANCE PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP3 SWAP2 SWAP1 PUSH2 0x116D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x113 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x365 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13B SWAP2 SWAP1 PUSH2 0x1244 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x166 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH2 0x67E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x125F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CC SWAP2 SWAP1 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x6AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x13F3 JUMP JUMPDEST PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A9 PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B6 SWAP2 SWAP1 PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x976 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x1648 JUMP JUMPDEST PUSH2 0xC53 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x326 PUSH2 0xE56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x125F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x363 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35E SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0xE5C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x375 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x427 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x478 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46F SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x48D JUMPI PUSH2 0x48C PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E3 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x502 JUMPI PUSH2 0x501 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A6 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x5C4 SWAP2 SWAP1 PUSH2 0x18D6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0DCA620E2E81F7841D07BCC105E1704FB01475B278A9D4C236E1C62945EDD55 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x4 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x6C9 JUMPI PUSH2 0x6C8 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 ADD SLOAD DUP3 PUSH1 0x2 ADD DUP4 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP5 PUSH1 0x4 ADD SLOAD DUP3 DUP1 SLOAD PUSH2 0x72A SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x756 SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x778 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7A3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x786 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP3 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x7FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x84C SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x878 SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x89A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8A8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x96C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x922 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0xA4A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA41 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA5F JUMPI PUSH2 0xA5E PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xABE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAB5 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x3 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xB5D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB54 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xB73 JUMPI PUSH2 0xB72 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x4 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB98 SWAP2 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5CBE105E36805F7820E291F799D5794FF948AF2A5F664E580382DEFB63390041 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xCDF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCD6 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP1 SLOAD SWAP1 POP SWAP1 POP PUSH1 0x4 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xDBB SWAP2 SWAP1 PUSH2 0x1B4A JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE POP POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xD5A05BF70715AD82A09A756320284A1B54C9FF74CD0F8CCE6219E79B563FE59D DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xE48 SWAP3 SWAP2 SWAP1 PUSH2 0x1C1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xEE8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEDF SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0xF30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF27 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xF45 JUMPI PUSH2 0xF44 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFA4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF9B SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xFBA JUMPI PUSH2 0xFB9 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x2 SLOAD DUP2 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0x1013 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x100A SWAP1 PUSH2 0x1C98 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x2 ADD PUSH1 0x40 MLOAD PUSH2 0x1083 SWAP2 SWAP1 PUSH2 0x1D46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x10C0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x10C5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x1DA9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5445F318F4F5FCFB66592E68E0CC5822AA15664039BD5F0FFDE24C5A8142B1AC PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x1154 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1182 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x115E JUMP JUMPDEST PUSH2 0x118F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11B3 DUP2 PUSH2 0x1154 JUMP JUMPDEST DUP2 EQ PUSH2 0x11BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11D0 DUP2 PUSH2 0x11AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11EC JUMPI PUSH2 0x11EB PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11FA DUP5 DUP3 DUP6 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122E DUP3 PUSH2 0x1203 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x123E DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1259 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1235 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1274 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1283 DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP2 EQ PUSH2 0x128E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12A0 DUP2 PUSH2 0x127A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12BC JUMPI PUSH2 0x12BB PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12CA DUP5 DUP3 DUP6 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E8 DUP2 PUSH2 0x12D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1303 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x12DF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1343 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1328 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x136B DUP3 PUSH2 0x1309 JUMP JUMPDEST PUSH2 0x1375 DUP2 DUP6 PUSH2 0x1314 JUMP JUMPDEST SWAP4 POP PUSH2 0x1385 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1325 JUMP JUMPDEST PUSH2 0x138E DUP2 PUSH2 0x134F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x13AE PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1235 JUMP JUMPDEST PUSH2 0x13BB PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x115E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x13CD DUP2 DUP7 PUSH2 0x1360 JUMP JUMPDEST SWAP1 POP PUSH2 0x13DC PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x12DF JUMP JUMPDEST PUSH2 0x13E9 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x140A JUMPI PUSH2 0x1409 PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1418 DUP6 DUP3 DUP7 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1429 DUP6 DUP3 DUP7 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1468 DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x147A DUP4 DUP4 PUSH2 0x145F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x149E DUP3 PUSH2 0x1433 JUMP JUMPDEST PUSH2 0x14A8 DUP2 DUP6 PUSH2 0x143E JUMP JUMPDEST SWAP4 POP PUSH2 0x14B3 DUP4 PUSH2 0x144F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14E4 JUMPI DUP2 MLOAD PUSH2 0x14CB DUP9 DUP3 PUSH2 0x146E JUMP JUMPDEST SWAP8 POP PUSH2 0x14D6 DUP4 PUSH2 0x1486 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x14B7 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x150B DUP2 DUP5 PUSH2 0x1493 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1555 DUP3 PUSH2 0x134F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1574 JUMPI PUSH2 0x1573 PUSH2 0x151D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1587 PUSH2 0x1196 JUMP JUMPDEST SWAP1 POP PUSH2 0x1593 DUP3 DUP3 PUSH2 0x154C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x15B3 JUMPI PUSH2 0x15B2 PUSH2 0x151D JUMP JUMPDEST JUMPDEST PUSH2 0x15BC DUP3 PUSH2 0x134F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15EB PUSH2 0x15E6 DUP5 PUSH2 0x1598 JUMP JUMPDEST PUSH2 0x157D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1607 JUMPI PUSH2 0x1606 PUSH2 0x1518 JUMP JUMPDEST JUMPDEST PUSH2 0x1612 DUP5 DUP3 DUP6 PUSH2 0x15C9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x162F JUMPI PUSH2 0x162E PUSH2 0x1513 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x163F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x15D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1661 JUMPI PUSH2 0x1660 PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166F DUP7 DUP3 DUP8 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1680 DUP7 DUP3 DUP8 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16A1 JUMPI PUSH2 0x16A0 PUSH2 0x11A5 JUMP JUMPDEST JUMPDEST PUSH2 0x16AD DUP7 DUP3 DUP8 ADD PUSH2 0x161A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6E6F74206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16FE PUSH1 0x9 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1709 DUP3 PUSH2 0x16C8 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x172D DUP2 PUSH2 0x16F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x747820646F6573206E6F74206578697374000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x176A PUSH1 0x11 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1775 DUP3 PUSH2 0x1734 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1799 DUP2 PUSH2 0x175D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x747820616C726561647920636F6E6669726D6564000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1805 PUSH1 0x14 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1810 DUP3 PUSH2 0x17CF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1834 DUP2 PUSH2 0x17F8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7478206E6F7420636F6E6669726D656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1871 PUSH1 0x10 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x187C DUP3 PUSH2 0x183B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x18A0 DUP2 PUSH2 0x1864 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18E1 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP2 POP PUSH2 0x18EC DUP4 PUSH2 0x1154 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1904 JUMPI PUSH2 0x1903 PUSH2 0x18A7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1951 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1964 JUMPI PUSH2 0x1963 PUSH2 0x190A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1975 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP2 POP PUSH2 0x1980 DUP4 PUSH2 0x1154 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1998 JUMPI PUSH2 0x1997 PUSH2 0x18A7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x1A00 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x19C3 JUMP JUMPDEST PUSH2 0x1A0A DUP7 DUP4 PUSH2 0x19C3 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A47 PUSH2 0x1A42 PUSH2 0x1A3D DUP5 PUSH2 0x1154 JUMP JUMPDEST PUSH2 0x1A22 JUMP JUMPDEST PUSH2 0x1154 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A61 DUP4 PUSH2 0x1A2C JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A6D DUP3 PUSH2 0x1A4E JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x19D0 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x1A8A PUSH2 0x1A7D JUMP JUMPDEST PUSH2 0x1A95 DUP2 DUP5 DUP5 PUSH2 0x1A58 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1AB9 JUMPI PUSH2 0x1AAE PUSH1 0x0 DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1A9B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1AFE JUMPI PUSH2 0x1ACF DUP2 PUSH2 0x199E JUMP JUMPDEST PUSH2 0x1AD8 DUP5 PUSH2 0x19B3 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1AE7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1AFB PUSH2 0x1AF3 DUP6 PUSH2 0x19B3 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1A9A JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B21 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1B03 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B3A DUP4 DUP4 PUSH2 0x1B10 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B53 DUP3 PUSH2 0x1309 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6C JUMPI PUSH2 0x1B6B PUSH2 0x151D JUMP JUMPDEST JUMPDEST PUSH2 0x1B76 DUP3 SLOAD PUSH2 0x1939 JUMP JUMPDEST PUSH2 0x1B81 DUP3 DUP3 DUP6 PUSH2 0x1ABD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1BA2 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1BAC DUP6 DUP3 PUSH2 0x1B2E JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1C14 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1BC2 DUP7 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BEA JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BC5 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1C07 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1C03 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1B10 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C31 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x115E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1C43 DUP2 DUP5 PUSH2 0x1360 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x63616E6E6F742065786563757465207478000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C82 PUSH1 0x11 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C8D DUP3 PUSH2 0x1C4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1CB1 DUP2 PUSH2 0x1C75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x1CD0 DUP2 PUSH2 0x1939 JUMP JUMPDEST PUSH2 0x1CDA DUP2 DUP7 PUSH2 0x1CB8 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x1CF5 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x1D0A JUMPI PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x1D3D JUMP JUMPDEST PUSH2 0x1D13 DUP6 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D35 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1D16 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D52 DUP3 DUP5 PUSH2 0x1CC3 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x7478206661696C65640000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D93 PUSH1 0x9 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D9E DUP3 PUSH2 0x1D5D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1DC2 DUP2 PUSH2 0x1D86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0xA8 SLOAD 0xF MSIZE SWAP1 CODESIZE 0xE4 PUSH21 0x56A3383A941318CFDEBBDCE2F2C455DC79E7B7EC9A 0xE6 0xF8 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "235:4744:0:-:0;;;1595:670;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1700:1;1683:7;:14;:18;1675:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1780:1;1752:25;:29;:92;;;;;1830:7;:14;1801:25;:43;;1752:92;1731:179;;;;;;;;;;;;:::i;:::-;;;;;;;;;1925:6;1920:277;1941:7;:14;1937:1;:18;1920:277;;;1976:13;1992:7;2000:1;1992:10;;;;;;;;:::i;:::-;;;;;;;;1976:26;;2041:1;2024:19;;:5;:19;;;2016:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;2084:7;:14;2092:5;2084:14;;;;;;;;;;;;;;;;;;;;;;;;;2083:15;2075:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2150:4;2133:7;:14;2141:5;2133:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;2168:6;2180:5;2168:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:235;1957:3;;;;;;;1920:277;;;;2233:25;2206:24;:52;;;;1595:670;;235:4744;;7:75:1;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:143::-;2032:5;2063:6;2057:13;2048:22;;2079:33;2106:5;2079:33;:::i;:::-;1975:143;;;;:::o;2141:732::-;2248:5;2273:81;2289:64;2346:6;2289:64;:::i;:::-;2273:81;:::i;:::-;2264:90;;2374:5;2403:6;2396:5;2389:21;2437:4;2430:5;2426:16;2419:23;;2490:4;2482:6;2478:17;2470:6;2466:30;2519:3;2511:6;2508:15;2505:122;;;2538:79;;:::i;:::-;2505:122;2653:6;2636:231;2670:6;2665:3;2662:15;2636:231;;;2745:3;2774:48;2818:3;2806:10;2774:48;:::i;:::-;2769:3;2762:61;2852:4;2847:3;2843:14;2836:21;;2712:155;2696:4;2691:3;2687:14;2680:21;;2636:231;;;2640:21;2254:619;;2141:732;;;;;:::o;2896:385::-;2978:5;3027:3;3020:4;3012:6;3008:17;3004:27;2994:122;;3035:79;;:::i;:::-;2994:122;3145:6;3139:13;3170:105;3271:3;3263:6;3256:4;3248:6;3244:17;3170:105;:::i;:::-;3161:114;;2984:297;2896:385;;;;:::o;3287:77::-;3324:7;3353:5;3342:16;;3287:77;;;:::o;3370:122::-;3443:24;3461:5;3443:24;:::i;:::-;3436:5;3433:35;3423:63;;3482:1;3479;3472:12;3423:63;3370:122;:::o;3498:143::-;3555:5;3586:6;3580:13;3571:22;;3602:33;3629:5;3602:33;:::i;:::-;3498:143;;;;:::o;3647:710::-;3751:6;3759;3808:2;3796:9;3787:7;3783:23;3779:32;3776:119;;;3814:79;;:::i;:::-;3776:119;3955:1;3944:9;3940:17;3934:24;3985:18;3977:6;3974:30;3971:117;;;4007:79;;:::i;:::-;3971:117;4112:89;4193:7;4184:6;4173:9;4169:22;4112:89;:::i;:::-;4102:99;;3905:306;4250:2;4276:64;4332:7;4323:6;4312:9;4308:22;4276:64;:::i;:::-;4266:74;;4221:129;3647:710;;;;;:::o;4363:169::-;4447:11;4481:6;4476:3;4469:19;4521:4;4516:3;4512:14;4497:29;;4363:169;;;;:::o;4538:165::-;4678:17;4674:1;4666:6;4662:14;4655:41;4538:165;:::o;4709:366::-;4851:3;4872:67;4936:2;4931:3;4872:67;:::i;:::-;4865:74;;4948:93;5037:3;4948:93;:::i;:::-;5066:2;5061:3;5057:12;5050:19;;4709:366;;;:::o;5081:419::-;5247:4;5285:2;5274:9;5270:18;5262:26;;5334:9;5328:4;5324:20;5320:1;5309:9;5305:17;5298:47;5362:131;5488:4;5362:131;:::i;:::-;5354:139;;5081:419;;;:::o;5506:227::-;5646:34;5642:1;5634:6;5630:14;5623:58;5715:10;5710:2;5702:6;5698:15;5691:35;5506:227;:::o;5739:366::-;5881:3;5902:67;5966:2;5961:3;5902:67;:::i;:::-;5895:74;;5978:93;6067:3;5978:93;:::i;:::-;6096:2;6091:3;6087:12;6080:19;;5739:366;;;:::o;6111:419::-;6277:4;6315:2;6304:9;6300:18;6292:26;;6364:9;6358:4;6354:20;6350:1;6339:9;6335:17;6328:47;6392:131;6518:4;6392:131;:::i;:::-;6384:139;;6111:419;;;:::o;6536:180::-;6584:77;6581:1;6574:88;6681:4;6678:1;6671:15;6705:4;6702:1;6695:15;6722:163;6862:15;6858:1;6850:6;6846:14;6839:39;6722:163;:::o;6891:366::-;7033:3;7054:67;7118:2;7113:3;7054:67;:::i;:::-;7047:74;;7130:93;7219:3;7130:93;:::i;:::-;7248:2;7243:3;7239:12;7232:19;;6891:366;;;:::o;7263:419::-;7429:4;7467:2;7456:9;7452:18;7444:26;;7516:9;7510:4;7506:20;7502:1;7491:9;7487:17;7480:47;7544:131;7670:4;7544:131;:::i;:::-;7536:139;;7263:419;;;:::o;7688:166::-;7828:18;7824:1;7816:6;7812:14;7805:42;7688:166;:::o;7860:366::-;8002:3;8023:67;8087:2;8082:3;8023:67;:::i;:::-;8016:74;;8099:93;8188:3;8099:93;:::i;:::-;8217:2;8212:3;8208:12;8201:19;;7860:366;;;:::o;8232:419::-;8398:4;8436:2;8425:9;8421:18;8413:26;;8485:9;8479:4;8475:20;8471:1;8460:9;8456:17;8449:47;8513:131;8639:4;8513:131;:::i;:::-;8505:139;;8232:419;;;:::o;235:4744:0:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_225": { + "entryPoint": null, + "id": 225, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@confirmTransaction_308": { + "entryPoint": 2422, + "id": 308, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@executeTransaction_366": { + "entryPoint": 3676, + "id": 366, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@getOwners_427": { + "entryPoint": 2280, + "id": 427, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTransactionCount_436": { + "entryPoint": 1662, + "id": 436, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTransaction_471": { + "entryPoint": 1707, + "id": 471, + "parameterSlots": 1, + "returnSlots": 5 + }, + "@isConfirmed_65": { + "entryPoint": 1982, + "id": 65, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@isOwner_46": { + "entryPoint": 1675, + "id": 46, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@numConfirmationsRequired_48": { + "entryPoint": 3670, + "id": 48, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@owners_42": { + "entryPoint": 869, + "id": 42, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@revokeConfirmation_418": { + "entryPoint": 932, + "id": 418, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@submitTransaction_263": { + "entryPoint": 3155, + "id": 263, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@transactions_69": { + "entryPoint": 2029, + "id": 69, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 5592, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 4753, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 5658, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 4545, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 4774, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 5704, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 4566, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_address": { + "entryPoint": 5107, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encodeUpdatedPos_t_address_to_t_address": { + "entryPoint": 5230, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address": { + "entryPoint": 5215, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 4661, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack": { + "entryPoint": 5267, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 4831, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 4960, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 7363, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7558, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5981, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6136, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack": { + "entryPoint": 6244, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack": { + "entryPoint": 7285, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5873, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 4446, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 7494, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 4676, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__fromStack_reversed": { + "entryPoint": 5017, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 5361, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 4846, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7593, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6016, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6171, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 6279, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7320, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5908, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 4703, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 7196, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 4461, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 5501, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 4502, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 5528, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 5199, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_bytes_storage": { + "entryPoint": 6558, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 5171, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 4873, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 5254, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack": { + "entryPoint": 5182, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 4884, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 7352, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 5815, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 6506, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 6358, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_bytes_storage": { + "entryPoint": 6845, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 4643, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 4819, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 4611, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 4436, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 6810, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 6700, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage": { + "entryPoint": 6986, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 5577, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 4901, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 6579, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 6457, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 6958, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 5452, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 6690, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 6928, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 6311, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 6410, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 6048, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 5405, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 6734, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 5395, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 5400, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 4517, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 4512, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 4943, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 6595, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 6915, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 6786, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2": { + "entryPoint": 7517, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251": { + "entryPoint": 5940, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626": { + "entryPoint": 6095, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae": { + "entryPoint": 6203, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513": { + "entryPoint": 7244, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e": { + "entryPoint": 5832, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 6608, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 6744, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 4730, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 4522, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 6781, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:23836:1", + "nodeType": "YulBlock", + "src": "0:23836:1", + "statements": [ + { + "body": { + "nativeSrc": "52:32:1", + "nodeType": "YulBlock", + "src": "52:32:1", + "statements": [ + { + "nativeSrc": "62:16:1", + "nodeType": "YulAssignment", + "src": "62:16:1", + "value": { + "name": "value", + "nativeSrc": "73:5:1", + "nodeType": "YulIdentifier", + "src": "73:5:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "62:7:1", + "nodeType": "YulIdentifier", + "src": "62:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "7:77:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "34:5:1", + "nodeType": "YulTypedName", + "src": "34:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "44:7:1", + "nodeType": "YulTypedName", + "src": "44:7:1", + "type": "" + } + ], + "src": "7:77:1" + }, + { + "body": { + "nativeSrc": "155:53:1", + "nodeType": "YulBlock", + "src": "155:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "172:3:1", + "nodeType": "YulIdentifier", + "src": "172:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "195:5:1", + "nodeType": "YulIdentifier", + "src": "195:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "177:17:1", + "nodeType": "YulIdentifier", + "src": "177:17:1" + }, + "nativeSrc": "177:24:1", + "nodeType": "YulFunctionCall", + "src": "177:24:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "165:6:1", + "nodeType": "YulIdentifier", + "src": "165:6:1" + }, + "nativeSrc": "165:37:1", + "nodeType": "YulFunctionCall", + "src": "165:37:1" + }, + "nativeSrc": "165:37:1", + "nodeType": "YulExpressionStatement", + "src": "165:37:1" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "90:118:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "143:5:1", + "nodeType": "YulTypedName", + "src": "143:5:1", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "150:3:1", + "nodeType": "YulTypedName", + "src": "150:3:1", + "type": "" + } + ], + "src": "90:118:1" + }, + { + "body": { + "nativeSrc": "340:206:1", + "nodeType": "YulBlock", + "src": "340:206:1", + "statements": [ + { + "nativeSrc": "350:26:1", + "nodeType": "YulAssignment", + "src": "350:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "362:9:1", + "nodeType": "YulIdentifier", + "src": "362:9:1" + }, + { + "kind": "number", + "nativeSrc": "373:2:1", + "nodeType": "YulLiteral", + "src": "373:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "358:3:1", + "nodeType": "YulIdentifier", + "src": "358:3:1" + }, + "nativeSrc": "358:18:1", + "nodeType": "YulFunctionCall", + "src": "358:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "350:4:1", + "nodeType": "YulIdentifier", + "src": "350:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "430:6:1", + "nodeType": "YulIdentifier", + "src": "430:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "443:9:1", + "nodeType": "YulIdentifier", + "src": "443:9:1" + }, + { + "kind": "number", + "nativeSrc": "454:1:1", + "nodeType": "YulLiteral", + "src": "454:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "439:3:1", + "nodeType": "YulIdentifier", + "src": "439:3:1" + }, + "nativeSrc": "439:17:1", + "nodeType": "YulFunctionCall", + "src": "439:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "386:43:1", + "nodeType": "YulIdentifier", + "src": "386:43:1" + }, + "nativeSrc": "386:71:1", + "nodeType": "YulFunctionCall", + "src": "386:71:1" + }, + "nativeSrc": "386:71:1", + "nodeType": "YulExpressionStatement", + "src": "386:71:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "511:6:1", + "nodeType": "YulIdentifier", + "src": "511:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "524:9:1", + "nodeType": "YulIdentifier", + "src": "524:9:1" + }, + { + "kind": "number", + "nativeSrc": "535:2:1", + "nodeType": "YulLiteral", + "src": "535:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "520:3:1", + "nodeType": "YulIdentifier", + "src": "520:3:1" + }, + "nativeSrc": "520:18:1", + "nodeType": "YulFunctionCall", + "src": "520:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "467:43:1", + "nodeType": "YulIdentifier", + "src": "467:43:1" + }, + "nativeSrc": "467:72:1", + "nodeType": "YulFunctionCall", + "src": "467:72:1" + }, + "nativeSrc": "467:72:1", + "nodeType": "YulExpressionStatement", + "src": "467:72:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "214:332:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "304:9:1", + "nodeType": "YulTypedName", + "src": "304:9:1", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "316:6:1", + "nodeType": "YulTypedName", + "src": "316:6:1", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "324:6:1", + "nodeType": "YulTypedName", + "src": "324:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "335:4:1", + "nodeType": "YulTypedName", + "src": "335:4:1", + "type": "" + } + ], + "src": "214:332:1" + }, + { + "body": { + "nativeSrc": "592:35:1", + "nodeType": "YulBlock", + "src": "592:35:1", + "statements": [ + { + "nativeSrc": "602:19:1", + "nodeType": "YulAssignment", + "src": "602:19:1", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "618:2:1", + "nodeType": "YulLiteral", + "src": "618:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "612:5:1", + "nodeType": "YulIdentifier", + "src": "612:5:1" + }, + "nativeSrc": "612:9:1", + "nodeType": "YulFunctionCall", + "src": "612:9:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "602:6:1", + "nodeType": "YulIdentifier", + "src": "602:6:1" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "552:75:1", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "585:6:1", + "nodeType": "YulTypedName", + "src": "585:6:1", + "type": "" + } + ], + "src": "552:75:1" + }, + { + "body": { + "nativeSrc": "722:28:1", + "nodeType": "YulBlock", + "src": "722:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "739:1:1", + "nodeType": "YulLiteral", + "src": "739:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "742:1:1", + "nodeType": "YulLiteral", + "src": "742:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "732:6:1", + "nodeType": "YulIdentifier", + "src": "732:6:1" + }, + "nativeSrc": "732:12:1", + "nodeType": "YulFunctionCall", + "src": "732:12:1" + }, + "nativeSrc": "732:12:1", + "nodeType": "YulExpressionStatement", + "src": "732:12:1" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "633:117:1", + "nodeType": "YulFunctionDefinition", + "src": "633:117:1" + }, + { + "body": { + "nativeSrc": "845:28:1", + "nodeType": "YulBlock", + "src": "845:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "862:1:1", + "nodeType": "YulLiteral", + "src": "862:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "865:1:1", + "nodeType": "YulLiteral", + "src": "865:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "855:6:1", + "nodeType": "YulIdentifier", + "src": "855:6:1" + }, + "nativeSrc": "855:12:1", + "nodeType": "YulFunctionCall", + "src": "855:12:1" + }, + "nativeSrc": "855:12:1", + "nodeType": "YulExpressionStatement", + "src": "855:12:1" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "756:117:1", + "nodeType": "YulFunctionDefinition", + "src": "756:117:1" + }, + { + "body": { + "nativeSrc": "922:79:1", + "nodeType": "YulBlock", + "src": "922:79:1", + "statements": [ + { + "body": { + "nativeSrc": "979:16:1", + "nodeType": "YulBlock", + "src": "979:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "988:1:1", + "nodeType": "YulLiteral", + "src": "988:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "991:1:1", + "nodeType": "YulLiteral", + "src": "991:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "981:6:1", + "nodeType": "YulIdentifier", + "src": "981:6:1" + }, + "nativeSrc": "981:12:1", + "nodeType": "YulFunctionCall", + "src": "981:12:1" + }, + "nativeSrc": "981:12:1", + "nodeType": "YulExpressionStatement", + "src": "981:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "945:5:1", + "nodeType": "YulIdentifier", + "src": "945:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "970:5:1", + "nodeType": "YulIdentifier", + "src": "970:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "952:17:1", + "nodeType": "YulIdentifier", + "src": "952:17:1" + }, + "nativeSrc": "952:24:1", + "nodeType": "YulFunctionCall", + "src": "952:24:1" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "942:2:1", + "nodeType": "YulIdentifier", + "src": "942:2:1" + }, + "nativeSrc": "942:35:1", + "nodeType": "YulFunctionCall", + "src": "942:35:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "935:6:1", + "nodeType": "YulIdentifier", + "src": "935:6:1" + }, + "nativeSrc": "935:43:1", + "nodeType": "YulFunctionCall", + "src": "935:43:1" + }, + "nativeSrc": "932:63:1", + "nodeType": "YulIf", + "src": "932:63:1" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "879:122:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "915:5:1", + "nodeType": "YulTypedName", + "src": "915:5:1", + "type": "" + } + ], + "src": "879:122:1" + }, + { + "body": { + "nativeSrc": "1059:87:1", + "nodeType": "YulBlock", + "src": "1059:87:1", + "statements": [ + { + "nativeSrc": "1069:29:1", + "nodeType": "YulAssignment", + "src": "1069:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1091:6:1", + "nodeType": "YulIdentifier", + "src": "1091:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1078:12:1", + "nodeType": "YulIdentifier", + "src": "1078:12:1" + }, + "nativeSrc": "1078:20:1", + "nodeType": "YulFunctionCall", + "src": "1078:20:1" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1069:5:1", + "nodeType": "YulIdentifier", + "src": "1069:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1134:5:1", + "nodeType": "YulIdentifier", + "src": "1134:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "1107:26:1", + "nodeType": "YulIdentifier", + "src": "1107:26:1" + }, + "nativeSrc": "1107:33:1", + "nodeType": "YulFunctionCall", + "src": "1107:33:1" + }, + "nativeSrc": "1107:33:1", + "nodeType": "YulExpressionStatement", + "src": "1107:33:1" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "1007:139:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1037:6:1", + "nodeType": "YulTypedName", + "src": "1037:6:1", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1045:3:1", + "nodeType": "YulTypedName", + "src": "1045:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1053:5:1", + "nodeType": "YulTypedName", + "src": "1053:5:1", + "type": "" + } + ], + "src": "1007:139:1" + }, + { + "body": { + "nativeSrc": "1218:263:1", + "nodeType": "YulBlock", + "src": "1218:263:1", + "statements": [ + { + "body": { + "nativeSrc": "1264:83:1", + "nodeType": "YulBlock", + "src": "1264:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1266:77:1", + "nodeType": "YulIdentifier", + "src": "1266:77:1" + }, + "nativeSrc": "1266:79:1", + "nodeType": "YulFunctionCall", + "src": "1266:79:1" + }, + "nativeSrc": "1266:79:1", + "nodeType": "YulExpressionStatement", + "src": "1266:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1239:7:1", + "nodeType": "YulIdentifier", + "src": "1239:7:1" + }, + { + "name": "headStart", + "nativeSrc": "1248:9:1", + "nodeType": "YulIdentifier", + "src": "1248:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1235:3:1", + "nodeType": "YulIdentifier", + "src": "1235:3:1" + }, + "nativeSrc": "1235:23:1", + "nodeType": "YulFunctionCall", + "src": "1235:23:1" + }, + { + "kind": "number", + "nativeSrc": "1260:2:1", + "nodeType": "YulLiteral", + "src": "1260:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1231:3:1", + "nodeType": "YulIdentifier", + "src": "1231:3:1" + }, + "nativeSrc": "1231:32:1", + "nodeType": "YulFunctionCall", + "src": "1231:32:1" + }, + "nativeSrc": "1228:119:1", + "nodeType": "YulIf", + "src": "1228:119:1" + }, + { + "nativeSrc": "1357:117:1", + "nodeType": "YulBlock", + "src": "1357:117:1", + "statements": [ + { + "nativeSrc": "1372:15:1", + "nodeType": "YulVariableDeclaration", + "src": "1372:15:1", + "value": { + "kind": "number", + "nativeSrc": "1386:1:1", + "nodeType": "YulLiteral", + "src": "1386:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1376:6:1", + "nodeType": "YulTypedName", + "src": "1376:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "1401:63:1", + "nodeType": "YulAssignment", + "src": "1401:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1436:9:1", + "nodeType": "YulIdentifier", + "src": "1436:9:1" + }, + { + "name": "offset", + "nativeSrc": "1447:6:1", + "nodeType": "YulIdentifier", + "src": "1447:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1432:3:1", + "nodeType": "YulIdentifier", + "src": "1432:3:1" + }, + "nativeSrc": "1432:22:1", + "nodeType": "YulFunctionCall", + "src": "1432:22:1" + }, + { + "name": "dataEnd", + "nativeSrc": "1456:7:1", + "nodeType": "YulIdentifier", + "src": "1456:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "1411:20:1", + "nodeType": "YulIdentifier", + "src": "1411:20:1" + }, + "nativeSrc": "1411:53:1", + "nodeType": "YulFunctionCall", + "src": "1411:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1401:6:1", + "nodeType": "YulIdentifier", + "src": "1401:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "1152:329:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1188:9:1", + "nodeType": "YulTypedName", + "src": "1188:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1199:7:1", + "nodeType": "YulTypedName", + "src": "1199:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1211:6:1", + "nodeType": "YulTypedName", + "src": "1211:6:1", + "type": "" + } + ], + "src": "1152:329:1" + }, + { + "body": { + "nativeSrc": "1532:81:1", + "nodeType": "YulBlock", + "src": "1532:81:1", + "statements": [ + { + "nativeSrc": "1542:65:1", + "nodeType": "YulAssignment", + "src": "1542:65:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1557:5:1", + "nodeType": "YulIdentifier", + "src": "1557:5:1" + }, + { + "kind": "number", + "nativeSrc": "1564:42:1", + "nodeType": "YulLiteral", + "src": "1564:42:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1553:3:1", + "nodeType": "YulIdentifier", + "src": "1553:3:1" + }, + "nativeSrc": "1553:54:1", + "nodeType": "YulFunctionCall", + "src": "1553:54:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1542:7:1", + "nodeType": "YulIdentifier", + "src": "1542:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "1487:126:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1514:5:1", + "nodeType": "YulTypedName", + "src": "1514:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1524:7:1", + "nodeType": "YulTypedName", + "src": "1524:7:1", + "type": "" + } + ], + "src": "1487:126:1" + }, + { + "body": { + "nativeSrc": "1664:51:1", + "nodeType": "YulBlock", + "src": "1664:51:1", + "statements": [ + { + "nativeSrc": "1674:35:1", + "nodeType": "YulAssignment", + "src": "1674:35:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1703:5:1", + "nodeType": "YulIdentifier", + "src": "1703:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "1685:17:1", + "nodeType": "YulIdentifier", + "src": "1685:17:1" + }, + "nativeSrc": "1685:24:1", + "nodeType": "YulFunctionCall", + "src": "1685:24:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1674:7:1", + "nodeType": "YulIdentifier", + "src": "1674:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "1619:96:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1646:5:1", + "nodeType": "YulTypedName", + "src": "1646:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1656:7:1", + "nodeType": "YulTypedName", + "src": "1656:7:1", + "type": "" + } + ], + "src": "1619:96:1" + }, + { + "body": { + "nativeSrc": "1786:53:1", + "nodeType": "YulBlock", + "src": "1786:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1803:3:1", + "nodeType": "YulIdentifier", + "src": "1803:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1826:5:1", + "nodeType": "YulIdentifier", + "src": "1826:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "1808:17:1", + "nodeType": "YulIdentifier", + "src": "1808:17:1" + }, + "nativeSrc": "1808:24:1", + "nodeType": "YulFunctionCall", + "src": "1808:24:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1796:6:1", + "nodeType": "YulIdentifier", + "src": "1796:6:1" + }, + "nativeSrc": "1796:37:1", + "nodeType": "YulFunctionCall", + "src": "1796:37:1" + }, + "nativeSrc": "1796:37:1", + "nodeType": "YulExpressionStatement", + "src": "1796:37:1" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1721:118:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1774:5:1", + "nodeType": "YulTypedName", + "src": "1774:5:1", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1781:3:1", + "nodeType": "YulTypedName", + "src": "1781:3:1", + "type": "" + } + ], + "src": "1721:118:1" + }, + { + "body": { + "nativeSrc": "1943:124:1", + "nodeType": "YulBlock", + "src": "1943:124:1", + "statements": [ + { + "nativeSrc": "1953:26:1", + "nodeType": "YulAssignment", + "src": "1953:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1965:9:1", + "nodeType": "YulIdentifier", + "src": "1965:9:1" + }, + { + "kind": "number", + "nativeSrc": "1976:2:1", + "nodeType": "YulLiteral", + "src": "1976:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1961:3:1", + "nodeType": "YulIdentifier", + "src": "1961:3:1" + }, + "nativeSrc": "1961:18:1", + "nodeType": "YulFunctionCall", + "src": "1961:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1953:4:1", + "nodeType": "YulIdentifier", + "src": "1953:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2033:6:1", + "nodeType": "YulIdentifier", + "src": "2033:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2046:9:1", + "nodeType": "YulIdentifier", + "src": "2046:9:1" + }, + { + "kind": "number", + "nativeSrc": "2057:1:1", + "nodeType": "YulLiteral", + "src": "2057:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2042:3:1", + "nodeType": "YulIdentifier", + "src": "2042:3:1" + }, + "nativeSrc": "2042:17:1", + "nodeType": "YulFunctionCall", + "src": "2042:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "1989:43:1", + "nodeType": "YulIdentifier", + "src": "1989:43:1" + }, + "nativeSrc": "1989:71:1", + "nodeType": "YulFunctionCall", + "src": "1989:71:1" + }, + "nativeSrc": "1989:71:1", + "nodeType": "YulExpressionStatement", + "src": "1989:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1845:222:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1915:9:1", + "nodeType": "YulTypedName", + "src": "1915:9:1", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1927:6:1", + "nodeType": "YulTypedName", + "src": "1927:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1938:4:1", + "nodeType": "YulTypedName", + "src": "1938:4:1", + "type": "" + } + ], + "src": "1845:222:1" + }, + { + "body": { + "nativeSrc": "2171:124:1", + "nodeType": "YulBlock", + "src": "2171:124:1", + "statements": [ + { + "nativeSrc": "2181:26:1", + "nodeType": "YulAssignment", + "src": "2181:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2193:9:1", + "nodeType": "YulIdentifier", + "src": "2193:9:1" + }, + { + "kind": "number", + "nativeSrc": "2204:2:1", + "nodeType": "YulLiteral", + "src": "2204:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2189:3:1", + "nodeType": "YulIdentifier", + "src": "2189:3:1" + }, + "nativeSrc": "2189:18:1", + "nodeType": "YulFunctionCall", + "src": "2189:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2181:4:1", + "nodeType": "YulIdentifier", + "src": "2181:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2261:6:1", + "nodeType": "YulIdentifier", + "src": "2261:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2274:9:1", + "nodeType": "YulIdentifier", + "src": "2274:9:1" + }, + { + "kind": "number", + "nativeSrc": "2285:1:1", + "nodeType": "YulLiteral", + "src": "2285:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2270:3:1", + "nodeType": "YulIdentifier", + "src": "2270:3:1" + }, + "nativeSrc": "2270:17:1", + "nodeType": "YulFunctionCall", + "src": "2270:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "2217:43:1", + "nodeType": "YulIdentifier", + "src": "2217:43:1" + }, + "nativeSrc": "2217:71:1", + "nodeType": "YulFunctionCall", + "src": "2217:71:1" + }, + "nativeSrc": "2217:71:1", + "nodeType": "YulExpressionStatement", + "src": "2217:71:1" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "2073:222:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2143:9:1", + "nodeType": "YulTypedName", + "src": "2143:9:1", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2155:6:1", + "nodeType": "YulTypedName", + "src": "2155:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2166:4:1", + "nodeType": "YulTypedName", + "src": "2166:4:1", + "type": "" + } + ], + "src": "2073:222:1" + }, + { + "body": { + "nativeSrc": "2344:79:1", + "nodeType": "YulBlock", + "src": "2344:79:1", + "statements": [ + { + "body": { + "nativeSrc": "2401:16:1", + "nodeType": "YulBlock", + "src": "2401:16:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2410:1:1", + "nodeType": "YulLiteral", + "src": "2410:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2413:1:1", + "nodeType": "YulLiteral", + "src": "2413:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2403:6:1", + "nodeType": "YulIdentifier", + "src": "2403:6:1" + }, + "nativeSrc": "2403:12:1", + "nodeType": "YulFunctionCall", + "src": "2403:12:1" + }, + "nativeSrc": "2403:12:1", + "nodeType": "YulExpressionStatement", + "src": "2403:12:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2367:5:1", + "nodeType": "YulIdentifier", + "src": "2367:5:1" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2392:5:1", + "nodeType": "YulIdentifier", + "src": "2392:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "2374:17:1", + "nodeType": "YulIdentifier", + "src": "2374:17:1" + }, + "nativeSrc": "2374:24:1", + "nodeType": "YulFunctionCall", + "src": "2374:24:1" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2364:2:1", + "nodeType": "YulIdentifier", + "src": "2364:2:1" + }, + "nativeSrc": "2364:35:1", + "nodeType": "YulFunctionCall", + "src": "2364:35:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2357:6:1", + "nodeType": "YulIdentifier", + "src": "2357:6:1" + }, + "nativeSrc": "2357:43:1", + "nodeType": "YulFunctionCall", + "src": "2357:43:1" + }, + "nativeSrc": "2354:63:1", + "nodeType": "YulIf", + "src": "2354:63:1" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "2301:122:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2337:5:1", + "nodeType": "YulTypedName", + "src": "2337:5:1", + "type": "" + } + ], + "src": "2301:122:1" + }, + { + "body": { + "nativeSrc": "2481:87:1", + "nodeType": "YulBlock", + "src": "2481:87:1", + "statements": [ + { + "nativeSrc": "2491:29:1", + "nodeType": "YulAssignment", + "src": "2491:29:1", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2513:6:1", + "nodeType": "YulIdentifier", + "src": "2513:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2500:12:1", + "nodeType": "YulIdentifier", + "src": "2500:12:1" + }, + "nativeSrc": "2500:20:1", + "nodeType": "YulFunctionCall", + "src": "2500:20:1" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2491:5:1", + "nodeType": "YulIdentifier", + "src": "2491:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2556:5:1", + "nodeType": "YulIdentifier", + "src": "2556:5:1" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "2529:26:1", + "nodeType": "YulIdentifier", + "src": "2529:26:1" + }, + "nativeSrc": "2529:33:1", + "nodeType": "YulFunctionCall", + "src": "2529:33:1" + }, + "nativeSrc": "2529:33:1", + "nodeType": "YulExpressionStatement", + "src": "2529:33:1" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "2429:139:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2459:6:1", + "nodeType": "YulTypedName", + "src": "2459:6:1", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2467:3:1", + "nodeType": "YulTypedName", + "src": "2467:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2475:5:1", + "nodeType": "YulTypedName", + "src": "2475:5:1", + "type": "" + } + ], + "src": "2429:139:1" + }, + { + "body": { + "nativeSrc": "2640:263:1", + "nodeType": "YulBlock", + "src": "2640:263:1", + "statements": [ + { + "body": { + "nativeSrc": "2686:83:1", + "nodeType": "YulBlock", + "src": "2686:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2688:77:1", + "nodeType": "YulIdentifier", + "src": "2688:77:1" + }, + "nativeSrc": "2688:79:1", + "nodeType": "YulFunctionCall", + "src": "2688:79:1" + }, + "nativeSrc": "2688:79:1", + "nodeType": "YulExpressionStatement", + "src": "2688:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2661:7:1", + "nodeType": "YulIdentifier", + "src": "2661:7:1" + }, + { + "name": "headStart", + "nativeSrc": "2670:9:1", + "nodeType": "YulIdentifier", + "src": "2670:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2657:3:1", + "nodeType": "YulIdentifier", + "src": "2657:3:1" + }, + "nativeSrc": "2657:23:1", + "nodeType": "YulFunctionCall", + "src": "2657:23:1" + }, + { + "kind": "number", + "nativeSrc": "2682:2:1", + "nodeType": "YulLiteral", + "src": "2682:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2653:3:1", + "nodeType": "YulIdentifier", + "src": "2653:3:1" + }, + "nativeSrc": "2653:32:1", + "nodeType": "YulFunctionCall", + "src": "2653:32:1" + }, + "nativeSrc": "2650:119:1", + "nodeType": "YulIf", + "src": "2650:119:1" + }, + { + "nativeSrc": "2779:117:1", + "nodeType": "YulBlock", + "src": "2779:117:1", + "statements": [ + { + "nativeSrc": "2794:15:1", + "nodeType": "YulVariableDeclaration", + "src": "2794:15:1", + "value": { + "kind": "number", + "nativeSrc": "2808:1:1", + "nodeType": "YulLiteral", + "src": "2808:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2798:6:1", + "nodeType": "YulTypedName", + "src": "2798:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "2823:63:1", + "nodeType": "YulAssignment", + "src": "2823:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2858:9:1", + "nodeType": "YulIdentifier", + "src": "2858:9:1" + }, + { + "name": "offset", + "nativeSrc": "2869:6:1", + "nodeType": "YulIdentifier", + "src": "2869:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2854:3:1", + "nodeType": "YulIdentifier", + "src": "2854:3:1" + }, + "nativeSrc": "2854:22:1", + "nodeType": "YulFunctionCall", + "src": "2854:22:1" + }, + { + "name": "dataEnd", + "nativeSrc": "2878:7:1", + "nodeType": "YulIdentifier", + "src": "2878:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "2833:20:1", + "nodeType": "YulIdentifier", + "src": "2833:20:1" + }, + "nativeSrc": "2833:53:1", + "nodeType": "YulFunctionCall", + "src": "2833:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2823:6:1", + "nodeType": "YulIdentifier", + "src": "2823:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "2574:329:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2610:9:1", + "nodeType": "YulTypedName", + "src": "2610:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2621:7:1", + "nodeType": "YulTypedName", + "src": "2621:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2633:6:1", + "nodeType": "YulTypedName", + "src": "2633:6:1", + "type": "" + } + ], + "src": "2574:329:1" + }, + { + "body": { + "nativeSrc": "2951:48:1", + "nodeType": "YulBlock", + "src": "2951:48:1", + "statements": [ + { + "nativeSrc": "2961:32:1", + "nodeType": "YulAssignment", + "src": "2961:32:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2986:5:1", + "nodeType": "YulIdentifier", + "src": "2986:5:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2979:6:1", + "nodeType": "YulIdentifier", + "src": "2979:6:1" + }, + "nativeSrc": "2979:13:1", + "nodeType": "YulFunctionCall", + "src": "2979:13:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2972:6:1", + "nodeType": "YulIdentifier", + "src": "2972:6:1" + }, + "nativeSrc": "2972:21:1", + "nodeType": "YulFunctionCall", + "src": "2972:21:1" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2961:7:1", + "nodeType": "YulIdentifier", + "src": "2961:7:1" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "2909:90:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2933:5:1", + "nodeType": "YulTypedName", + "src": "2933:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2943:7:1", + "nodeType": "YulTypedName", + "src": "2943:7:1", + "type": "" + } + ], + "src": "2909:90:1" + }, + { + "body": { + "nativeSrc": "3064:50:1", + "nodeType": "YulBlock", + "src": "3064:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3081:3:1", + "nodeType": "YulIdentifier", + "src": "3081:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3101:5:1", + "nodeType": "YulIdentifier", + "src": "3101:5:1" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "3086:14:1", + "nodeType": "YulIdentifier", + "src": "3086:14:1" + }, + "nativeSrc": "3086:21:1", + "nodeType": "YulFunctionCall", + "src": "3086:21:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3074:6:1", + "nodeType": "YulIdentifier", + "src": "3074:6:1" + }, + "nativeSrc": "3074:34:1", + "nodeType": "YulFunctionCall", + "src": "3074:34:1" + }, + "nativeSrc": "3074:34:1", + "nodeType": "YulExpressionStatement", + "src": "3074:34:1" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3005:109:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3052:5:1", + "nodeType": "YulTypedName", + "src": "3052:5:1", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3059:3:1", + "nodeType": "YulTypedName", + "src": "3059:3:1", + "type": "" + } + ], + "src": "3005:109:1" + }, + { + "body": { + "nativeSrc": "3212:118:1", + "nodeType": "YulBlock", + "src": "3212:118:1", + "statements": [ + { + "nativeSrc": "3222:26:1", + "nodeType": "YulAssignment", + "src": "3222:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3234:9:1", + "nodeType": "YulIdentifier", + "src": "3234:9:1" + }, + { + "kind": "number", + "nativeSrc": "3245:2:1", + "nodeType": "YulLiteral", + "src": "3245:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3230:3:1", + "nodeType": "YulIdentifier", + "src": "3230:3:1" + }, + "nativeSrc": "3230:18:1", + "nodeType": "YulFunctionCall", + "src": "3230:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3222:4:1", + "nodeType": "YulIdentifier", + "src": "3222:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3296:6:1", + "nodeType": "YulIdentifier", + "src": "3296:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3309:9:1", + "nodeType": "YulIdentifier", + "src": "3309:9:1" + }, + { + "kind": "number", + "nativeSrc": "3320:1:1", + "nodeType": "YulLiteral", + "src": "3320:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3305:3:1", + "nodeType": "YulIdentifier", + "src": "3305:3:1" + }, + "nativeSrc": "3305:17:1", + "nodeType": "YulFunctionCall", + "src": "3305:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3258:37:1", + "nodeType": "YulIdentifier", + "src": "3258:37:1" + }, + "nativeSrc": "3258:65:1", + "nodeType": "YulFunctionCall", + "src": "3258:65:1" + }, + "nativeSrc": "3258:65:1", + "nodeType": "YulExpressionStatement", + "src": "3258:65:1" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "3120:210:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3184:9:1", + "nodeType": "YulTypedName", + "src": "3184:9:1", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3196:6:1", + "nodeType": "YulTypedName", + "src": "3196:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3207:4:1", + "nodeType": "YulTypedName", + "src": "3207:4:1", + "type": "" + } + ], + "src": "3120:210:1" + }, + { + "body": { + "nativeSrc": "3394:40:1", + "nodeType": "YulBlock", + "src": "3394:40:1", + "statements": [ + { + "nativeSrc": "3405:22:1", + "nodeType": "YulAssignment", + "src": "3405:22:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3421:5:1", + "nodeType": "YulIdentifier", + "src": "3421:5:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3415:5:1", + "nodeType": "YulIdentifier", + "src": "3415:5:1" + }, + "nativeSrc": "3415:12:1", + "nodeType": "YulFunctionCall", + "src": "3415:12:1" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3405:6:1", + "nodeType": "YulIdentifier", + "src": "3405:6:1" + } + ] + } + ] + }, + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "3336:98:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3377:5:1", + "nodeType": "YulTypedName", + "src": "3377:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3387:6:1", + "nodeType": "YulTypedName", + "src": "3387:6:1", + "type": "" + } + ], + "src": "3336:98:1" + }, + { + "body": { + "nativeSrc": "3535:73:1", + "nodeType": "YulBlock", + "src": "3535:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3552:3:1", + "nodeType": "YulIdentifier", + "src": "3552:3:1" + }, + { + "name": "length", + "nativeSrc": "3557:6:1", + "nodeType": "YulIdentifier", + "src": "3557:6:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3545:6:1", + "nodeType": "YulIdentifier", + "src": "3545:6:1" + }, + "nativeSrc": "3545:19:1", + "nodeType": "YulFunctionCall", + "src": "3545:19:1" + }, + "nativeSrc": "3545:19:1", + "nodeType": "YulExpressionStatement", + "src": "3545:19:1" + }, + { + "nativeSrc": "3573:29:1", + "nodeType": "YulAssignment", + "src": "3573:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3592:3:1", + "nodeType": "YulIdentifier", + "src": "3592:3:1" + }, + { + "kind": "number", + "nativeSrc": "3597:4:1", + "nodeType": "YulLiteral", + "src": "3597:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3588:3:1", + "nodeType": "YulIdentifier", + "src": "3588:3:1" + }, + "nativeSrc": "3588:14:1", + "nodeType": "YulFunctionCall", + "src": "3588:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "3573:11:1", + "nodeType": "YulIdentifier", + "src": "3573:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "3440:168:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "3507:3:1", + "nodeType": "YulTypedName", + "src": "3507:3:1", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3512:6:1", + "nodeType": "YulTypedName", + "src": "3512:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "3523:11:1", + "nodeType": "YulTypedName", + "src": "3523:11:1", + "type": "" + } + ], + "src": "3440:168:1" + }, + { + "body": { + "nativeSrc": "3676:184:1", + "nodeType": "YulBlock", + "src": "3676:184:1", + "statements": [ + { + "nativeSrc": "3686:10:1", + "nodeType": "YulVariableDeclaration", + "src": "3686:10:1", + "value": { + "kind": "number", + "nativeSrc": "3695:1:1", + "nodeType": "YulLiteral", + "src": "3695:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "3690:1:1", + "nodeType": "YulTypedName", + "src": "3690:1:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3755:63:1", + "nodeType": "YulBlock", + "src": "3755:63:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3780:3:1", + "nodeType": "YulIdentifier", + "src": "3780:3:1" + }, + { + "name": "i", + "nativeSrc": "3785:1:1", + "nodeType": "YulIdentifier", + "src": "3785:1:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3776:3:1", + "nodeType": "YulIdentifier", + "src": "3776:3:1" + }, + "nativeSrc": "3776:11:1", + "nodeType": "YulFunctionCall", + "src": "3776:11:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "3799:3:1", + "nodeType": "YulIdentifier", + "src": "3799:3:1" + }, + { + "name": "i", + "nativeSrc": "3804:1:1", + "nodeType": "YulIdentifier", + "src": "3804:1:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3795:3:1", + "nodeType": "YulIdentifier", + "src": "3795:3:1" + }, + "nativeSrc": "3795:11:1", + "nodeType": "YulFunctionCall", + "src": "3795:11:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3789:5:1", + "nodeType": "YulIdentifier", + "src": "3789:5:1" + }, + "nativeSrc": "3789:18:1", + "nodeType": "YulFunctionCall", + "src": "3789:18:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3769:6:1", + "nodeType": "YulIdentifier", + "src": "3769:6:1" + }, + "nativeSrc": "3769:39:1", + "nodeType": "YulFunctionCall", + "src": "3769:39:1" + }, + "nativeSrc": "3769:39:1", + "nodeType": "YulExpressionStatement", + "src": "3769:39:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3716:1:1", + "nodeType": "YulIdentifier", + "src": "3716:1:1" + }, + { + "name": "length", + "nativeSrc": "3719:6:1", + "nodeType": "YulIdentifier", + "src": "3719:6:1" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3713:2:1", + "nodeType": "YulIdentifier", + "src": "3713:2:1" + }, + "nativeSrc": "3713:13:1", + "nodeType": "YulFunctionCall", + "src": "3713:13:1" + }, + "nativeSrc": "3705:113:1", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3727:19:1", + "nodeType": "YulBlock", + "src": "3727:19:1", + "statements": [ + { + "nativeSrc": "3729:15:1", + "nodeType": "YulAssignment", + "src": "3729:15:1", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3738:1:1", + "nodeType": "YulIdentifier", + "src": "3738:1:1" + }, + { + "kind": "number", + "nativeSrc": "3741:2:1", + "nodeType": "YulLiteral", + "src": "3741:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3734:3:1", + "nodeType": "YulIdentifier", + "src": "3734:3:1" + }, + "nativeSrc": "3734:10:1", + "nodeType": "YulFunctionCall", + "src": "3734:10:1" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "3729:1:1", + "nodeType": "YulIdentifier", + "src": "3729:1:1" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "3709:3:1", + "nodeType": "YulBlock", + "src": "3709:3:1", + "statements": [] + }, + "src": "3705:113:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3838:3:1", + "nodeType": "YulIdentifier", + "src": "3838:3:1" + }, + { + "name": "length", + "nativeSrc": "3843:6:1", + "nodeType": "YulIdentifier", + "src": "3843:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3834:3:1", + "nodeType": "YulIdentifier", + "src": "3834:3:1" + }, + "nativeSrc": "3834:16:1", + "nodeType": "YulFunctionCall", + "src": "3834:16:1" + }, + { + "kind": "number", + "nativeSrc": "3852:1:1", + "nodeType": "YulLiteral", + "src": "3852:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3827:6:1", + "nodeType": "YulIdentifier", + "src": "3827:6:1" + }, + "nativeSrc": "3827:27:1", + "nodeType": "YulFunctionCall", + "src": "3827:27:1" + }, + "nativeSrc": "3827:27:1", + "nodeType": "YulExpressionStatement", + "src": "3827:27:1" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "3614:246:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3658:3:1", + "nodeType": "YulTypedName", + "src": "3658:3:1", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "3663:3:1", + "nodeType": "YulTypedName", + "src": "3663:3:1", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3668:6:1", + "nodeType": "YulTypedName", + "src": "3668:6:1", + "type": "" + } + ], + "src": "3614:246:1" + }, + { + "body": { + "nativeSrc": "3914:54:1", + "nodeType": "YulBlock", + "src": "3914:54:1", + "statements": [ + { + "nativeSrc": "3924:38:1", + "nodeType": "YulAssignment", + "src": "3924:38:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3942:5:1", + "nodeType": "YulIdentifier", + "src": "3942:5:1" + }, + { + "kind": "number", + "nativeSrc": "3949:2:1", + "nodeType": "YulLiteral", + "src": "3949:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3938:3:1", + "nodeType": "YulIdentifier", + "src": "3938:3:1" + }, + "nativeSrc": "3938:14:1", + "nodeType": "YulFunctionCall", + "src": "3938:14:1" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3958:2:1", + "nodeType": "YulLiteral", + "src": "3958:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "3954:3:1", + "nodeType": "YulIdentifier", + "src": "3954:3:1" + }, + "nativeSrc": "3954:7:1", + "nodeType": "YulFunctionCall", + "src": "3954:7:1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3934:3:1", + "nodeType": "YulIdentifier", + "src": "3934:3:1" + }, + "nativeSrc": "3934:28:1", + "nodeType": "YulFunctionCall", + "src": "3934:28:1" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3924:6:1", + "nodeType": "YulIdentifier", + "src": "3924:6:1" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "3866:102:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3897:5:1", + "nodeType": "YulTypedName", + "src": "3897:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "3907:6:1", + "nodeType": "YulTypedName", + "src": "3907:6:1", + "type": "" + } + ], + "src": "3866:102:1" + }, + { + "body": { + "nativeSrc": "4064:283:1", + "nodeType": "YulBlock", + "src": "4064:283:1", + "statements": [ + { + "nativeSrc": "4074:52:1", + "nodeType": "YulVariableDeclaration", + "src": "4074:52:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4120:5:1", + "nodeType": "YulIdentifier", + "src": "4120:5:1" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "4088:31:1", + "nodeType": "YulIdentifier", + "src": "4088:31:1" + }, + "nativeSrc": "4088:38:1", + "nodeType": "YulFunctionCall", + "src": "4088:38:1" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "4078:6:1", + "nodeType": "YulTypedName", + "src": "4078:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "4135:77:1", + "nodeType": "YulAssignment", + "src": "4135:77:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4200:3:1", + "nodeType": "YulIdentifier", + "src": "4200:3:1" + }, + { + "name": "length", + "nativeSrc": "4205:6:1", + "nodeType": "YulIdentifier", + "src": "4205:6:1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "4142:57:1", + "nodeType": "YulIdentifier", + "src": "4142:57:1" + }, + "nativeSrc": "4142:70:1", + "nodeType": "YulFunctionCall", + "src": "4142:70:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "4135:3:1", + "nodeType": "YulIdentifier", + "src": "4135:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4260:5:1", + "nodeType": "YulIdentifier", + "src": "4260:5:1" + }, + { + "kind": "number", + "nativeSrc": "4267:4:1", + "nodeType": "YulLiteral", + "src": "4267:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4256:3:1", + "nodeType": "YulIdentifier", + "src": "4256:3:1" + }, + "nativeSrc": "4256:16:1", + "nodeType": "YulFunctionCall", + "src": "4256:16:1" + }, + { + "name": "pos", + "nativeSrc": "4274:3:1", + "nodeType": "YulIdentifier", + "src": "4274:3:1" + }, + { + "name": "length", + "nativeSrc": "4279:6:1", + "nodeType": "YulIdentifier", + "src": "4279:6:1" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4221:34:1", + "nodeType": "YulIdentifier", + "src": "4221:34:1" + }, + "nativeSrc": "4221:65:1", + "nodeType": "YulFunctionCall", + "src": "4221:65:1" + }, + "nativeSrc": "4221:65:1", + "nodeType": "YulExpressionStatement", + "src": "4221:65:1" + }, + { + "nativeSrc": "4295:46:1", + "nodeType": "YulAssignment", + "src": "4295:46:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4306:3:1", + "nodeType": "YulIdentifier", + "src": "4306:3:1" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "4333:6:1", + "nodeType": "YulIdentifier", + "src": "4333:6:1" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "4311:21:1", + "nodeType": "YulIdentifier", + "src": "4311:21:1" + }, + "nativeSrc": "4311:29:1", + "nodeType": "YulFunctionCall", + "src": "4311:29:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4302:3:1", + "nodeType": "YulIdentifier", + "src": "4302:3:1" + }, + "nativeSrc": "4302:39:1", + "nodeType": "YulFunctionCall", + "src": "4302:39:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "4295:3:1", + "nodeType": "YulIdentifier", + "src": "4295:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "3974:373:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4045:5:1", + "nodeType": "YulTypedName", + "src": "4045:5:1", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4052:3:1", + "nodeType": "YulTypedName", + "src": "4052:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "4060:3:1", + "nodeType": "YulTypedName", + "src": "4060:3:1", + "type": "" + } + ], + "src": "3974:373:1" + }, + { + "body": { + "nativeSrc": "4575:517:1", + "nodeType": "YulBlock", + "src": "4575:517:1", + "statements": [ + { + "nativeSrc": "4585:27:1", + "nodeType": "YulAssignment", + "src": "4585:27:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4597:9:1", + "nodeType": "YulIdentifier", + "src": "4597:9:1" + }, + { + "kind": "number", + "nativeSrc": "4608:3:1", + "nodeType": "YulLiteral", + "src": "4608:3:1", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4593:3:1", + "nodeType": "YulIdentifier", + "src": "4593:3:1" + }, + "nativeSrc": "4593:19:1", + "nodeType": "YulFunctionCall", + "src": "4593:19:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4585:4:1", + "nodeType": "YulIdentifier", + "src": "4585:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4666:6:1", + "nodeType": "YulIdentifier", + "src": "4666:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4679:9:1", + "nodeType": "YulIdentifier", + "src": "4679:9:1" + }, + { + "kind": "number", + "nativeSrc": "4690:1:1", + "nodeType": "YulLiteral", + "src": "4690:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4675:3:1", + "nodeType": "YulIdentifier", + "src": "4675:3:1" + }, + "nativeSrc": "4675:17:1", + "nodeType": "YulFunctionCall", + "src": "4675:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "4622:43:1", + "nodeType": "YulIdentifier", + "src": "4622:43:1" + }, + "nativeSrc": "4622:71:1", + "nodeType": "YulFunctionCall", + "src": "4622:71:1" + }, + "nativeSrc": "4622:71:1", + "nodeType": "YulExpressionStatement", + "src": "4622:71:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "4747:6:1", + "nodeType": "YulIdentifier", + "src": "4747:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4760:9:1", + "nodeType": "YulIdentifier", + "src": "4760:9:1" + }, + { + "kind": "number", + "nativeSrc": "4771:2:1", + "nodeType": "YulLiteral", + "src": "4771:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4756:3:1", + "nodeType": "YulIdentifier", + "src": "4756:3:1" + }, + "nativeSrc": "4756:18:1", + "nodeType": "YulFunctionCall", + "src": "4756:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "4703:43:1", + "nodeType": "YulIdentifier", + "src": "4703:43:1" + }, + "nativeSrc": "4703:72:1", + "nodeType": "YulFunctionCall", + "src": "4703:72:1" + }, + "nativeSrc": "4703:72:1", + "nodeType": "YulExpressionStatement", + "src": "4703:72:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4796:9:1", + "nodeType": "YulIdentifier", + "src": "4796:9:1" + }, + { + "kind": "number", + "nativeSrc": "4807:2:1", + "nodeType": "YulLiteral", + "src": "4807:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4792:3:1", + "nodeType": "YulIdentifier", + "src": "4792:3:1" + }, + "nativeSrc": "4792:18:1", + "nodeType": "YulFunctionCall", + "src": "4792:18:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "4816:4:1", + "nodeType": "YulIdentifier", + "src": "4816:4:1" + }, + { + "name": "headStart", + "nativeSrc": "4822:9:1", + "nodeType": "YulIdentifier", + "src": "4822:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4812:3:1", + "nodeType": "YulIdentifier", + "src": "4812:3:1" + }, + "nativeSrc": "4812:20:1", + "nodeType": "YulFunctionCall", + "src": "4812:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4785:6:1", + "nodeType": "YulIdentifier", + "src": "4785:6:1" + }, + "nativeSrc": "4785:48:1", + "nodeType": "YulFunctionCall", + "src": "4785:48:1" + }, + "nativeSrc": "4785:48:1", + "nodeType": "YulExpressionStatement", + "src": "4785:48:1" + }, + { + "nativeSrc": "4842:84:1", + "nodeType": "YulAssignment", + "src": "4842:84:1", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "4912:6:1", + "nodeType": "YulIdentifier", + "src": "4912:6:1" + }, + { + "name": "tail", + "nativeSrc": "4921:4:1", + "nodeType": "YulIdentifier", + "src": "4921:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "4850:61:1", + "nodeType": "YulIdentifier", + "src": "4850:61:1" + }, + "nativeSrc": "4850:76:1", + "nodeType": "YulFunctionCall", + "src": "4850:76:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4842:4:1", + "nodeType": "YulIdentifier", + "src": "4842:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "4974:6:1", + "nodeType": "YulIdentifier", + "src": "4974:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4987:9:1", + "nodeType": "YulIdentifier", + "src": "4987:9:1" + }, + { + "kind": "number", + "nativeSrc": "4998:2:1", + "nodeType": "YulLiteral", + "src": "4998:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4983:3:1", + "nodeType": "YulIdentifier", + "src": "4983:3:1" + }, + "nativeSrc": "4983:18:1", + "nodeType": "YulFunctionCall", + "src": "4983:18:1" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "4936:37:1", + "nodeType": "YulIdentifier", + "src": "4936:37:1" + }, + "nativeSrc": "4936:66:1", + "nodeType": "YulFunctionCall", + "src": "4936:66:1" + }, + "nativeSrc": "4936:66:1", + "nodeType": "YulExpressionStatement", + "src": "4936:66:1" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "5056:6:1", + "nodeType": "YulIdentifier", + "src": "5056:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5069:9:1", + "nodeType": "YulIdentifier", + "src": "5069:9:1" + }, + { + "kind": "number", + "nativeSrc": "5080:3:1", + "nodeType": "YulLiteral", + "src": "5080:3:1", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5065:3:1", + "nodeType": "YulIdentifier", + "src": "5065:3:1" + }, + "nativeSrc": "5065:19:1", + "nodeType": "YulFunctionCall", + "src": "5065:19:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "5012:43:1", + "nodeType": "YulIdentifier", + "src": "5012:43:1" + }, + "nativeSrc": "5012:73:1", + "nodeType": "YulFunctionCall", + "src": "5012:73:1" + }, + "nativeSrc": "5012:73:1", + "nodeType": "YulExpressionStatement", + "src": "5012:73:1" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__fromStack_reversed", + "nativeSrc": "4353:739:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4515:9:1", + "nodeType": "YulTypedName", + "src": "4515:9:1", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "4527:6:1", + "nodeType": "YulTypedName", + "src": "4527:6:1", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "4535:6:1", + "nodeType": "YulTypedName", + "src": "4535:6:1", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4543:6:1", + "nodeType": "YulTypedName", + "src": "4543:6:1", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4551:6:1", + "nodeType": "YulTypedName", + "src": "4551:6:1", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4559:6:1", + "nodeType": "YulTypedName", + "src": "4559:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4570:4:1", + "nodeType": "YulTypedName", + "src": "4570:4:1", + "type": "" + } + ], + "src": "4353:739:1" + }, + { + "body": { + "nativeSrc": "5181:391:1", + "nodeType": "YulBlock", + "src": "5181:391:1", + "statements": [ + { + "body": { + "nativeSrc": "5227:83:1", + "nodeType": "YulBlock", + "src": "5227:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5229:77:1", + "nodeType": "YulIdentifier", + "src": "5229:77:1" + }, + "nativeSrc": "5229:79:1", + "nodeType": "YulFunctionCall", + "src": "5229:79:1" + }, + "nativeSrc": "5229:79:1", + "nodeType": "YulExpressionStatement", + "src": "5229:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5202:7:1", + "nodeType": "YulIdentifier", + "src": "5202:7:1" + }, + { + "name": "headStart", + "nativeSrc": "5211:9:1", + "nodeType": "YulIdentifier", + "src": "5211:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5198:3:1", + "nodeType": "YulIdentifier", + "src": "5198:3:1" + }, + "nativeSrc": "5198:23:1", + "nodeType": "YulFunctionCall", + "src": "5198:23:1" + }, + { + "kind": "number", + "nativeSrc": "5223:2:1", + "nodeType": "YulLiteral", + "src": "5223:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5194:3:1", + "nodeType": "YulIdentifier", + "src": "5194:3:1" + }, + "nativeSrc": "5194:32:1", + "nodeType": "YulFunctionCall", + "src": "5194:32:1" + }, + "nativeSrc": "5191:119:1", + "nodeType": "YulIf", + "src": "5191:119:1" + }, + { + "nativeSrc": "5320:117:1", + "nodeType": "YulBlock", + "src": "5320:117:1", + "statements": [ + { + "nativeSrc": "5335:15:1", + "nodeType": "YulVariableDeclaration", + "src": "5335:15:1", + "value": { + "kind": "number", + "nativeSrc": "5349:1:1", + "nodeType": "YulLiteral", + "src": "5349:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5339:6:1", + "nodeType": "YulTypedName", + "src": "5339:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "5364:63:1", + "nodeType": "YulAssignment", + "src": "5364:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5399:9:1", + "nodeType": "YulIdentifier", + "src": "5399:9:1" + }, + { + "name": "offset", + "nativeSrc": "5410:6:1", + "nodeType": "YulIdentifier", + "src": "5410:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5395:3:1", + "nodeType": "YulIdentifier", + "src": "5395:3:1" + }, + "nativeSrc": "5395:22:1", + "nodeType": "YulFunctionCall", + "src": "5395:22:1" + }, + { + "name": "dataEnd", + "nativeSrc": "5419:7:1", + "nodeType": "YulIdentifier", + "src": "5419:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "5374:20:1", + "nodeType": "YulIdentifier", + "src": "5374:20:1" + }, + "nativeSrc": "5374:53:1", + "nodeType": "YulFunctionCall", + "src": "5374:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5364:6:1", + "nodeType": "YulIdentifier", + "src": "5364:6:1" + } + ] + } + ] + }, + { + "nativeSrc": "5447:118:1", + "nodeType": "YulBlock", + "src": "5447:118:1", + "statements": [ + { + "nativeSrc": "5462:16:1", + "nodeType": "YulVariableDeclaration", + "src": "5462:16:1", + "value": { + "kind": "number", + "nativeSrc": "5476:2:1", + "nodeType": "YulLiteral", + "src": "5476:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5466:6:1", + "nodeType": "YulTypedName", + "src": "5466:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "5492:63:1", + "nodeType": "YulAssignment", + "src": "5492:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5527:9:1", + "nodeType": "YulIdentifier", + "src": "5527:9:1" + }, + { + "name": "offset", + "nativeSrc": "5538:6:1", + "nodeType": "YulIdentifier", + "src": "5538:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5523:3:1", + "nodeType": "YulIdentifier", + "src": "5523:3:1" + }, + "nativeSrc": "5523:22:1", + "nodeType": "YulFunctionCall", + "src": "5523:22:1" + }, + { + "name": "dataEnd", + "nativeSrc": "5547:7:1", + "nodeType": "YulIdentifier", + "src": "5547:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "5502:20:1", + "nodeType": "YulIdentifier", + "src": "5502:20:1" + }, + "nativeSrc": "5502:53:1", + "nodeType": "YulFunctionCall", + "src": "5502:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5492:6:1", + "nodeType": "YulIdentifier", + "src": "5492:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_address", + "nativeSrc": "5098:474:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5143:9:1", + "nodeType": "YulTypedName", + "src": "5143:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5154:7:1", + "nodeType": "YulTypedName", + "src": "5154:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5166:6:1", + "nodeType": "YulTypedName", + "src": "5166:6:1", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5174:6:1", + "nodeType": "YulTypedName", + "src": "5174:6:1", + "type": "" + } + ], + "src": "5098:474:1" + }, + { + "body": { + "nativeSrc": "5652:40:1", + "nodeType": "YulBlock", + "src": "5652:40:1", + "statements": [ + { + "nativeSrc": "5663:22:1", + "nodeType": "YulAssignment", + "src": "5663:22:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5679:5:1", + "nodeType": "YulIdentifier", + "src": "5679:5:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5673:5:1", + "nodeType": "YulIdentifier", + "src": "5673:5:1" + }, + "nativeSrc": "5673:12:1", + "nodeType": "YulFunctionCall", + "src": "5673:12:1" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "5663:6:1", + "nodeType": "YulIdentifier", + "src": "5663:6:1" + } + ] + } + ] + }, + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "5578:114:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5635:5:1", + "nodeType": "YulTypedName", + "src": "5635:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "5645:6:1", + "nodeType": "YulTypedName", + "src": "5645:6:1", + "type": "" + } + ], + "src": "5578:114:1" + }, + { + "body": { + "nativeSrc": "5809:73:1", + "nodeType": "YulBlock", + "src": "5809:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5826:3:1", + "nodeType": "YulIdentifier", + "src": "5826:3:1" + }, + { + "name": "length", + "nativeSrc": "5831:6:1", + "nodeType": "YulIdentifier", + "src": "5831:6:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5819:6:1", + "nodeType": "YulIdentifier", + "src": "5819:6:1" + }, + "nativeSrc": "5819:19:1", + "nodeType": "YulFunctionCall", + "src": "5819:19:1" + }, + "nativeSrc": "5819:19:1", + "nodeType": "YulExpressionStatement", + "src": "5819:19:1" + }, + { + "nativeSrc": "5847:29:1", + "nodeType": "YulAssignment", + "src": "5847:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5866:3:1", + "nodeType": "YulIdentifier", + "src": "5866:3:1" + }, + { + "kind": "number", + "nativeSrc": "5871:4:1", + "nodeType": "YulLiteral", + "src": "5871:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5862:3:1", + "nodeType": "YulIdentifier", + "src": "5862:3:1" + }, + "nativeSrc": "5862:14:1", + "nodeType": "YulFunctionCall", + "src": "5862:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "5847:11:1", + "nodeType": "YulIdentifier", + "src": "5847:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "5698:184:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "5781:3:1", + "nodeType": "YulTypedName", + "src": "5781:3:1", + "type": "" + }, + { + "name": "length", + "nativeSrc": "5786:6:1", + "nodeType": "YulTypedName", + "src": "5786:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "5797:11:1", + "nodeType": "YulTypedName", + "src": "5797:11:1", + "type": "" + } + ], + "src": "5698:184:1" + }, + { + "body": { + "nativeSrc": "5960:60:1", + "nodeType": "YulBlock", + "src": "5960:60:1", + "statements": [ + { + "nativeSrc": "5970:11:1", + "nodeType": "YulAssignment", + "src": "5970:11:1", + "value": { + "name": "ptr", + "nativeSrc": "5978:3:1", + "nodeType": "YulIdentifier", + "src": "5978:3:1" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "5970:4:1", + "nodeType": "YulIdentifier", + "src": "5970:4:1" + } + ] + }, + { + "nativeSrc": "5991:22:1", + "nodeType": "YulAssignment", + "src": "5991:22:1", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "6003:3:1", + "nodeType": "YulIdentifier", + "src": "6003:3:1" + }, + { + "kind": "number", + "nativeSrc": "6008:4:1", + "nodeType": "YulLiteral", + "src": "6008:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5999:3:1", + "nodeType": "YulIdentifier", + "src": "5999:3:1" + }, + "nativeSrc": "5999:14:1", + "nodeType": "YulFunctionCall", + "src": "5999:14:1" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "5991:4:1", + "nodeType": "YulIdentifier", + "src": "5991:4:1" + } + ] + } + ] + }, + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "5888:132:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "5947:3:1", + "nodeType": "YulTypedName", + "src": "5947:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "5955:4:1", + "nodeType": "YulTypedName", + "src": "5955:4:1", + "type": "" + } + ], + "src": "5888:132:1" + }, + { + "body": { + "nativeSrc": "6081:53:1", + "nodeType": "YulBlock", + "src": "6081:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6098:3:1", + "nodeType": "YulIdentifier", + "src": "6098:3:1" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6121:5:1", + "nodeType": "YulIdentifier", + "src": "6121:5:1" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "6103:17:1", + "nodeType": "YulIdentifier", + "src": "6103:17:1" + }, + "nativeSrc": "6103:24:1", + "nodeType": "YulFunctionCall", + "src": "6103:24:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6091:6:1", + "nodeType": "YulIdentifier", + "src": "6091:6:1" + }, + "nativeSrc": "6091:37:1", + "nodeType": "YulFunctionCall", + "src": "6091:37:1" + }, + "nativeSrc": "6091:37:1", + "nodeType": "YulExpressionStatement", + "src": "6091:37:1" + } + ] + }, + "name": "abi_encode_t_address_to_t_address", + "nativeSrc": "6026:108:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6069:5:1", + "nodeType": "YulTypedName", + "src": "6069:5:1", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6076:3:1", + "nodeType": "YulTypedName", + "src": "6076:3:1", + "type": "" + } + ], + "src": "6026:108:1" + }, + { + "body": { + "nativeSrc": "6220:99:1", + "nodeType": "YulBlock", + "src": "6220:99:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6264:6:1", + "nodeType": "YulIdentifier", + "src": "6264:6:1" + }, + { + "name": "pos", + "nativeSrc": "6272:3:1", + "nodeType": "YulIdentifier", + "src": "6272:3:1" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address", + "nativeSrc": "6230:33:1", + "nodeType": "YulIdentifier", + "src": "6230:33:1" + }, + "nativeSrc": "6230:46:1", + "nodeType": "YulFunctionCall", + "src": "6230:46:1" + }, + "nativeSrc": "6230:46:1", + "nodeType": "YulExpressionStatement", + "src": "6230:46:1" + }, + { + "nativeSrc": "6285:28:1", + "nodeType": "YulAssignment", + "src": "6285:28:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6303:3:1", + "nodeType": "YulIdentifier", + "src": "6303:3:1" + }, + { + "kind": "number", + "nativeSrc": "6308:4:1", + "nodeType": "YulLiteral", + "src": "6308:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6299:3:1", + "nodeType": "YulIdentifier", + "src": "6299:3:1" + }, + "nativeSrc": "6299:14:1", + "nodeType": "YulFunctionCall", + "src": "6299:14:1" + }, + "variableNames": [ + { + "name": "updatedPos", + "nativeSrc": "6285:10:1", + "nodeType": "YulIdentifier", + "src": "6285:10:1" + } + ] + } + ] + }, + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nativeSrc": "6140:179:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value0", + "nativeSrc": "6193:6:1", + "nodeType": "YulTypedName", + "src": "6193:6:1", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6201:3:1", + "nodeType": "YulTypedName", + "src": "6201:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updatedPos", + "nativeSrc": "6209:10:1", + "nodeType": "YulTypedName", + "src": "6209:10:1", + "type": "" + } + ], + "src": "6140:179:1" + }, + { + "body": { + "nativeSrc": "6400:38:1", + "nodeType": "YulBlock", + "src": "6400:38:1", + "statements": [ + { + "nativeSrc": "6410:22:1", + "nodeType": "YulAssignment", + "src": "6410:22:1", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "6422:3:1", + "nodeType": "YulIdentifier", + "src": "6422:3:1" + }, + { + "kind": "number", + "nativeSrc": "6427:4:1", + "nodeType": "YulLiteral", + "src": "6427:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6418:3:1", + "nodeType": "YulIdentifier", + "src": "6418:3:1" + }, + "nativeSrc": "6418:14:1", + "nodeType": "YulFunctionCall", + "src": "6418:14:1" + }, + "variableNames": [ + { + "name": "next", + "nativeSrc": "6410:4:1", + "nodeType": "YulIdentifier", + "src": "6410:4:1" + } + ] + } + ] + }, + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "6325:113:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "6387:3:1", + "nodeType": "YulTypedName", + "src": "6387:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "next", + "nativeSrc": "6395:4:1", + "nodeType": "YulTypedName", + "src": "6395:4:1", + "type": "" + } + ], + "src": "6325:113:1" + }, + { + "body": { + "nativeSrc": "6598:608:1", + "nodeType": "YulBlock", + "src": "6598:608:1", + "statements": [ + { + "nativeSrc": "6608:68:1", + "nodeType": "YulVariableDeclaration", + "src": "6608:68:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6670:5:1", + "nodeType": "YulIdentifier", + "src": "6670:5:1" + } + ], + "functionName": { + "name": "array_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "6622:47:1", + "nodeType": "YulIdentifier", + "src": "6622:47:1" + }, + "nativeSrc": "6622:54:1", + "nodeType": "YulFunctionCall", + "src": "6622:54:1" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "6612:6:1", + "nodeType": "YulTypedName", + "src": "6612:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "6685:93:1", + "nodeType": "YulAssignment", + "src": "6685:93:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6766:3:1", + "nodeType": "YulIdentifier", + "src": "6766:3:1" + }, + { + "name": "length", + "nativeSrc": "6771:6:1", + "nodeType": "YulIdentifier", + "src": "6771:6:1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "6692:73:1", + "nodeType": "YulIdentifier", + "src": "6692:73:1" + }, + "nativeSrc": "6692:86:1", + "nodeType": "YulFunctionCall", + "src": "6692:86:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "6685:3:1", + "nodeType": "YulIdentifier", + "src": "6685:3:1" + } + ] + }, + { + "nativeSrc": "6787:71:1", + "nodeType": "YulVariableDeclaration", + "src": "6787:71:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6852:5:1", + "nodeType": "YulIdentifier", + "src": "6852:5:1" + } + ], + "functionName": { + "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "6802:49:1", + "nodeType": "YulIdentifier", + "src": "6802:49:1" + }, + "nativeSrc": "6802:56:1", + "nodeType": "YulFunctionCall", + "src": "6802:56:1" + }, + "variables": [ + { + "name": "baseRef", + "nativeSrc": "6791:7:1", + "nodeType": "YulTypedName", + "src": "6791:7:1", + "type": "" + } + ] + }, + { + "nativeSrc": "6867:21:1", + "nodeType": "YulVariableDeclaration", + "src": "6867:21:1", + "value": { + "name": "baseRef", + "nativeSrc": "6881:7:1", + "nodeType": "YulIdentifier", + "src": "6881:7:1" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "6871:6:1", + "nodeType": "YulTypedName", + "src": "6871:6:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6957:224:1", + "nodeType": "YulBlock", + "src": "6957:224:1", + "statements": [ + { + "nativeSrc": "6971:34:1", + "nodeType": "YulVariableDeclaration", + "src": "6971:34:1", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "6998:6:1", + "nodeType": "YulIdentifier", + "src": "6998:6:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6992:5:1", + "nodeType": "YulIdentifier", + "src": "6992:5:1" + }, + "nativeSrc": "6992:13:1", + "nodeType": "YulFunctionCall", + "src": "6992:13:1" + }, + "variables": [ + { + "name": "elementValue0", + "nativeSrc": "6975:13:1", + "nodeType": "YulTypedName", + "src": "6975:13:1", + "type": "" + } + ] + }, + { + "nativeSrc": "7018:70:1", + "nodeType": "YulAssignment", + "src": "7018:70:1", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "7069:13:1", + "nodeType": "YulIdentifier", + "src": "7069:13:1" + }, + { + "name": "pos", + "nativeSrc": "7084:3:1", + "nodeType": "YulIdentifier", + "src": "7084:3:1" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_address_to_t_address", + "nativeSrc": "7025:43:1", + "nodeType": "YulIdentifier", + "src": "7025:43:1" + }, + "nativeSrc": "7025:63:1", + "nodeType": "YulFunctionCall", + "src": "7025:63:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "7018:3:1", + "nodeType": "YulIdentifier", + "src": "7018:3:1" + } + ] + }, + { + "nativeSrc": "7101:70:1", + "nodeType": "YulAssignment", + "src": "7101:70:1", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "7164:6:1", + "nodeType": "YulIdentifier", + "src": "7164:6:1" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "7111:52:1", + "nodeType": "YulIdentifier", + "src": "7111:52:1" + }, + "nativeSrc": "7111:60:1", + "nodeType": "YulFunctionCall", + "src": "7111:60:1" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "7101:6:1", + "nodeType": "YulIdentifier", + "src": "7101:6:1" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "6919:1:1", + "nodeType": "YulIdentifier", + "src": "6919:1:1" + }, + { + "name": "length", + "nativeSrc": "6922:6:1", + "nodeType": "YulIdentifier", + "src": "6922:6:1" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6916:2:1", + "nodeType": "YulIdentifier", + "src": "6916:2:1" + }, + "nativeSrc": "6916:13:1", + "nodeType": "YulFunctionCall", + "src": "6916:13:1" + }, + "nativeSrc": "6897:284:1", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "6930:18:1", + "nodeType": "YulBlock", + "src": "6930:18:1", + "statements": [ + { + "nativeSrc": "6932:14:1", + "nodeType": "YulAssignment", + "src": "6932:14:1", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "6941:1:1", + "nodeType": "YulIdentifier", + "src": "6941:1:1" + }, + { + "kind": "number", + "nativeSrc": "6944:1:1", + "nodeType": "YulLiteral", + "src": "6944:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6937:3:1", + "nodeType": "YulIdentifier", + "src": "6937:3:1" + }, + "nativeSrc": "6937:9:1", + "nodeType": "YulFunctionCall", + "src": "6937:9:1" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "6932:1:1", + "nodeType": "YulIdentifier", + "src": "6932:1:1" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "6901:14:1", + "nodeType": "YulBlock", + "src": "6901:14:1", + "statements": [ + { + "nativeSrc": "6903:10:1", + "nodeType": "YulVariableDeclaration", + "src": "6903:10:1", + "value": { + "kind": "number", + "nativeSrc": "6912:1:1", + "nodeType": "YulLiteral", + "src": "6912:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "6907:1:1", + "nodeType": "YulTypedName", + "src": "6907:1:1", + "type": "" + } + ] + } + ] + }, + "src": "6897:284:1" + }, + { + "nativeSrc": "7190:10:1", + "nodeType": "YulAssignment", + "src": "7190:10:1", + "value": { + "name": "pos", + "nativeSrc": "7197:3:1", + "nodeType": "YulIdentifier", + "src": "7197:3:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "7190:3:1", + "nodeType": "YulIdentifier", + "src": "7190:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "6474:732:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6577:5:1", + "nodeType": "YulTypedName", + "src": "6577:5:1", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6584:3:1", + "nodeType": "YulTypedName", + "src": "6584:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "6593:3:1", + "nodeType": "YulTypedName", + "src": "6593:3:1", + "type": "" + } + ], + "src": "6474:732:1" + }, + { + "body": { + "nativeSrc": "7360:225:1", + "nodeType": "YulBlock", + "src": "7360:225:1", + "statements": [ + { + "nativeSrc": "7370:26:1", + "nodeType": "YulAssignment", + "src": "7370:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7382:9:1", + "nodeType": "YulIdentifier", + "src": "7382:9:1" + }, + { + "kind": "number", + "nativeSrc": "7393:2:1", + "nodeType": "YulLiteral", + "src": "7393:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7378:3:1", + "nodeType": "YulIdentifier", + "src": "7378:3:1" + }, + "nativeSrc": "7378:18:1", + "nodeType": "YulFunctionCall", + "src": "7378:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7370:4:1", + "nodeType": "YulIdentifier", + "src": "7370:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7417:9:1", + "nodeType": "YulIdentifier", + "src": "7417:9:1" + }, + { + "kind": "number", + "nativeSrc": "7428:1:1", + "nodeType": "YulLiteral", + "src": "7428:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7413:3:1", + "nodeType": "YulIdentifier", + "src": "7413:3:1" + }, + "nativeSrc": "7413:17:1", + "nodeType": "YulFunctionCall", + "src": "7413:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "7436:4:1", + "nodeType": "YulIdentifier", + "src": "7436:4:1" + }, + { + "name": "headStart", + "nativeSrc": "7442:9:1", + "nodeType": "YulIdentifier", + "src": "7442:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7432:3:1", + "nodeType": "YulIdentifier", + "src": "7432:3:1" + }, + "nativeSrc": "7432:20:1", + "nodeType": "YulFunctionCall", + "src": "7432:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7406:6:1", + "nodeType": "YulIdentifier", + "src": "7406:6:1" + }, + "nativeSrc": "7406:47:1", + "nodeType": "YulFunctionCall", + "src": "7406:47:1" + }, + "nativeSrc": "7406:47:1", + "nodeType": "YulExpressionStatement", + "src": "7406:47:1" + }, + { + "nativeSrc": "7462:116:1", + "nodeType": "YulAssignment", + "src": "7462:116:1", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7564:6:1", + "nodeType": "YulIdentifier", + "src": "7564:6:1" + }, + { + "name": "tail", + "nativeSrc": "7573:4:1", + "nodeType": "YulIdentifier", + "src": "7573:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", + "nativeSrc": "7470:93:1", + "nodeType": "YulIdentifier", + "src": "7470:93:1" + }, + "nativeSrc": "7470:108:1", + "nodeType": "YulFunctionCall", + "src": "7470:108:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7462:4:1", + "nodeType": "YulIdentifier", + "src": "7462:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "7212:373:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7332:9:1", + "nodeType": "YulTypedName", + "src": "7332:9:1", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7344:6:1", + "nodeType": "YulTypedName", + "src": "7344:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7355:4:1", + "nodeType": "YulTypedName", + "src": "7355:4:1", + "type": "" + } + ], + "src": "7212:373:1" + }, + { + "body": { + "nativeSrc": "7680:28:1", + "nodeType": "YulBlock", + "src": "7680:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7697:1:1", + "nodeType": "YulLiteral", + "src": "7697:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7700:1:1", + "nodeType": "YulLiteral", + "src": "7700:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7690:6:1", + "nodeType": "YulIdentifier", + "src": "7690:6:1" + }, + "nativeSrc": "7690:12:1", + "nodeType": "YulFunctionCall", + "src": "7690:12:1" + }, + "nativeSrc": "7690:12:1", + "nodeType": "YulExpressionStatement", + "src": "7690:12:1" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "7591:117:1", + "nodeType": "YulFunctionDefinition", + "src": "7591:117:1" + }, + { + "body": { + "nativeSrc": "7803:28:1", + "nodeType": "YulBlock", + "src": "7803:28:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7820:1:1", + "nodeType": "YulLiteral", + "src": "7820:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7823:1:1", + "nodeType": "YulLiteral", + "src": "7823:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7813:6:1", + "nodeType": "YulIdentifier", + "src": "7813:6:1" + }, + "nativeSrc": "7813:12:1", + "nodeType": "YulFunctionCall", + "src": "7813:12:1" + }, + "nativeSrc": "7813:12:1", + "nodeType": "YulExpressionStatement", + "src": "7813:12:1" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "7714:117:1", + "nodeType": "YulFunctionDefinition", + "src": "7714:117:1" + }, + { + "body": { + "nativeSrc": "7865:152:1", + "nodeType": "YulBlock", + "src": "7865:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7882:1:1", + "nodeType": "YulLiteral", + "src": "7882:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7885:77:1", + "nodeType": "YulLiteral", + "src": "7885:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7875:6:1", + "nodeType": "YulIdentifier", + "src": "7875:6:1" + }, + "nativeSrc": "7875:88:1", + "nodeType": "YulFunctionCall", + "src": "7875:88:1" + }, + "nativeSrc": "7875:88:1", + "nodeType": "YulExpressionStatement", + "src": "7875:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7979:1:1", + "nodeType": "YulLiteral", + "src": "7979:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "7982:4:1", + "nodeType": "YulLiteral", + "src": "7982:4:1", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7972:6:1", + "nodeType": "YulIdentifier", + "src": "7972:6:1" + }, + "nativeSrc": "7972:15:1", + "nodeType": "YulFunctionCall", + "src": "7972:15:1" + }, + "nativeSrc": "7972:15:1", + "nodeType": "YulExpressionStatement", + "src": "7972:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8003:1:1", + "nodeType": "YulLiteral", + "src": "8003:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8006:4:1", + "nodeType": "YulLiteral", + "src": "8006:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7996:6:1", + "nodeType": "YulIdentifier", + "src": "7996:6:1" + }, + "nativeSrc": "7996:15:1", + "nodeType": "YulFunctionCall", + "src": "7996:15:1" + }, + "nativeSrc": "7996:15:1", + "nodeType": "YulExpressionStatement", + "src": "7996:15:1" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "7837:180:1", + "nodeType": "YulFunctionDefinition", + "src": "7837:180:1" + }, + { + "body": { + "nativeSrc": "8066:238:1", + "nodeType": "YulBlock", + "src": "8066:238:1", + "statements": [ + { + "nativeSrc": "8076:58:1", + "nodeType": "YulVariableDeclaration", + "src": "8076:58:1", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8098:6:1", + "nodeType": "YulIdentifier", + "src": "8098:6:1" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "8128:4:1", + "nodeType": "YulIdentifier", + "src": "8128:4:1" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "8106:21:1", + "nodeType": "YulIdentifier", + "src": "8106:21:1" + }, + "nativeSrc": "8106:27:1", + "nodeType": "YulFunctionCall", + "src": "8106:27:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8094:3:1", + "nodeType": "YulIdentifier", + "src": "8094:3:1" + }, + "nativeSrc": "8094:40:1", + "nodeType": "YulFunctionCall", + "src": "8094:40:1" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "8080:10:1", + "nodeType": "YulTypedName", + "src": "8080:10:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8245:22:1", + "nodeType": "YulBlock", + "src": "8245:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "8247:16:1", + "nodeType": "YulIdentifier", + "src": "8247:16:1" + }, + "nativeSrc": "8247:18:1", + "nodeType": "YulFunctionCall", + "src": "8247:18:1" + }, + "nativeSrc": "8247:18:1", + "nodeType": "YulExpressionStatement", + "src": "8247:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "8188:10:1", + "nodeType": "YulIdentifier", + "src": "8188:10:1" + }, + { + "kind": "number", + "nativeSrc": "8200:18:1", + "nodeType": "YulLiteral", + "src": "8200:18:1", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8185:2:1", + "nodeType": "YulIdentifier", + "src": "8185:2:1" + }, + "nativeSrc": "8185:34:1", + "nodeType": "YulFunctionCall", + "src": "8185:34:1" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "8224:10:1", + "nodeType": "YulIdentifier", + "src": "8224:10:1" + }, + { + "name": "memPtr", + "nativeSrc": "8236:6:1", + "nodeType": "YulIdentifier", + "src": "8236:6:1" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "8221:2:1", + "nodeType": "YulIdentifier", + "src": "8221:2:1" + }, + "nativeSrc": "8221:22:1", + "nodeType": "YulFunctionCall", + "src": "8221:22:1" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "8182:2:1", + "nodeType": "YulIdentifier", + "src": "8182:2:1" + }, + "nativeSrc": "8182:62:1", + "nodeType": "YulFunctionCall", + "src": "8182:62:1" + }, + "nativeSrc": "8179:88:1", + "nodeType": "YulIf", + "src": "8179:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8283:2:1", + "nodeType": "YulLiteral", + "src": "8283:2:1", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "8287:10:1", + "nodeType": "YulIdentifier", + "src": "8287:10:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8276:6:1", + "nodeType": "YulIdentifier", + "src": "8276:6:1" + }, + "nativeSrc": "8276:22:1", + "nodeType": "YulFunctionCall", + "src": "8276:22:1" + }, + "nativeSrc": "8276:22:1", + "nodeType": "YulExpressionStatement", + "src": "8276:22:1" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "8023:281:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "8052:6:1", + "nodeType": "YulTypedName", + "src": "8052:6:1", + "type": "" + }, + { + "name": "size", + "nativeSrc": "8060:4:1", + "nodeType": "YulTypedName", + "src": "8060:4:1", + "type": "" + } + ], + "src": "8023:281:1" + }, + { + "body": { + "nativeSrc": "8351:88:1", + "nodeType": "YulBlock", + "src": "8351:88:1", + "statements": [ + { + "nativeSrc": "8361:30:1", + "nodeType": "YulAssignment", + "src": "8361:30:1", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "8371:18:1", + "nodeType": "YulIdentifier", + "src": "8371:18:1" + }, + "nativeSrc": "8371:20:1", + "nodeType": "YulFunctionCall", + "src": "8371:20:1" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "8361:6:1", + "nodeType": "YulIdentifier", + "src": "8361:6:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "8420:6:1", + "nodeType": "YulIdentifier", + "src": "8420:6:1" + }, + { + "name": "size", + "nativeSrc": "8428:4:1", + "nodeType": "YulIdentifier", + "src": "8428:4:1" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "8400:19:1", + "nodeType": "YulIdentifier", + "src": "8400:19:1" + }, + "nativeSrc": "8400:33:1", + "nodeType": "YulFunctionCall", + "src": "8400:33:1" + }, + "nativeSrc": "8400:33:1", + "nodeType": "YulExpressionStatement", + "src": "8400:33:1" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "8310:129:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "8335:4:1", + "nodeType": "YulTypedName", + "src": "8335:4:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "8344:6:1", + "nodeType": "YulTypedName", + "src": "8344:6:1", + "type": "" + } + ], + "src": "8310:129:1" + }, + { + "body": { + "nativeSrc": "8511:241:1", + "nodeType": "YulBlock", + "src": "8511:241:1", + "statements": [ + { + "body": { + "nativeSrc": "8616:22:1", + "nodeType": "YulBlock", + "src": "8616:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "8618:16:1", + "nodeType": "YulIdentifier", + "src": "8618:16:1" + }, + "nativeSrc": "8618:18:1", + "nodeType": "YulFunctionCall", + "src": "8618:18:1" + }, + "nativeSrc": "8618:18:1", + "nodeType": "YulExpressionStatement", + "src": "8618:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8588:6:1", + "nodeType": "YulIdentifier", + "src": "8588:6:1" + }, + { + "kind": "number", + "nativeSrc": "8596:18:1", + "nodeType": "YulLiteral", + "src": "8596:18:1", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8585:2:1", + "nodeType": "YulIdentifier", + "src": "8585:2:1" + }, + "nativeSrc": "8585:30:1", + "nodeType": "YulFunctionCall", + "src": "8585:30:1" + }, + "nativeSrc": "8582:56:1", + "nodeType": "YulIf", + "src": "8582:56:1" + }, + { + "nativeSrc": "8648:37:1", + "nodeType": "YulAssignment", + "src": "8648:37:1", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8678:6:1", + "nodeType": "YulIdentifier", + "src": "8678:6:1" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "8656:21:1", + "nodeType": "YulIdentifier", + "src": "8656:21:1" + }, + "nativeSrc": "8656:29:1", + "nodeType": "YulFunctionCall", + "src": "8656:29:1" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "8648:4:1", + "nodeType": "YulIdentifier", + "src": "8648:4:1" + } + ] + }, + { + "nativeSrc": "8722:23:1", + "nodeType": "YulAssignment", + "src": "8722:23:1", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "8734:4:1", + "nodeType": "YulIdentifier", + "src": "8734:4:1" + }, + { + "kind": "number", + "nativeSrc": "8740:4:1", + "nodeType": "YulLiteral", + "src": "8740:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8730:3:1", + "nodeType": "YulIdentifier", + "src": "8730:3:1" + }, + "nativeSrc": "8730:15:1", + "nodeType": "YulFunctionCall", + "src": "8730:15:1" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "8722:4:1", + "nodeType": "YulIdentifier", + "src": "8722:4:1" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "8445:307:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "8495:6:1", + "nodeType": "YulTypedName", + "src": "8495:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "8506:4:1", + "nodeType": "YulTypedName", + "src": "8506:4:1", + "type": "" + } + ], + "src": "8445:307:1" + }, + { + "body": { + "nativeSrc": "8822:82:1", + "nodeType": "YulBlock", + "src": "8822:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8845:3:1", + "nodeType": "YulIdentifier", + "src": "8845:3:1" + }, + { + "name": "src", + "nativeSrc": "8850:3:1", + "nodeType": "YulIdentifier", + "src": "8850:3:1" + }, + { + "name": "length", + "nativeSrc": "8855:6:1", + "nodeType": "YulIdentifier", + "src": "8855:6:1" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "8832:12:1", + "nodeType": "YulIdentifier", + "src": "8832:12:1" + }, + "nativeSrc": "8832:30:1", + "nodeType": "YulFunctionCall", + "src": "8832:30:1" + }, + "nativeSrc": "8832:30:1", + "nodeType": "YulExpressionStatement", + "src": "8832:30:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8882:3:1", + "nodeType": "YulIdentifier", + "src": "8882:3:1" + }, + { + "name": "length", + "nativeSrc": "8887:6:1", + "nodeType": "YulIdentifier", + "src": "8887:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8878:3:1", + "nodeType": "YulIdentifier", + "src": "8878:3:1" + }, + "nativeSrc": "8878:16:1", + "nodeType": "YulFunctionCall", + "src": "8878:16:1" + }, + { + "kind": "number", + "nativeSrc": "8896:1:1", + "nodeType": "YulLiteral", + "src": "8896:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8871:6:1", + "nodeType": "YulIdentifier", + "src": "8871:6:1" + }, + "nativeSrc": "8871:27:1", + "nodeType": "YulFunctionCall", + "src": "8871:27:1" + }, + "nativeSrc": "8871:27:1", + "nodeType": "YulExpressionStatement", + "src": "8871:27:1" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "8758:146:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "8804:3:1", + "nodeType": "YulTypedName", + "src": "8804:3:1", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "8809:3:1", + "nodeType": "YulTypedName", + "src": "8809:3:1", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8814:6:1", + "nodeType": "YulTypedName", + "src": "8814:6:1", + "type": "" + } + ], + "src": "8758:146:1" + }, + { + "body": { + "nativeSrc": "8993:340:1", + "nodeType": "YulBlock", + "src": "8993:340:1", + "statements": [ + { + "nativeSrc": "9003:74:1", + "nodeType": "YulAssignment", + "src": "9003:74:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "9069:6:1", + "nodeType": "YulIdentifier", + "src": "9069:6:1" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "9028:40:1", + "nodeType": "YulIdentifier", + "src": "9028:40:1" + }, + "nativeSrc": "9028:48:1", + "nodeType": "YulFunctionCall", + "src": "9028:48:1" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "9012:15:1", + "nodeType": "YulIdentifier", + "src": "9012:15:1" + }, + "nativeSrc": "9012:65:1", + "nodeType": "YulFunctionCall", + "src": "9012:65:1" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9003:5:1", + "nodeType": "YulIdentifier", + "src": "9003:5:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "9093:5:1", + "nodeType": "YulIdentifier", + "src": "9093:5:1" + }, + { + "name": "length", + "nativeSrc": "9100:6:1", + "nodeType": "YulIdentifier", + "src": "9100:6:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9086:6:1", + "nodeType": "YulIdentifier", + "src": "9086:6:1" + }, + "nativeSrc": "9086:21:1", + "nodeType": "YulFunctionCall", + "src": "9086:21:1" + }, + "nativeSrc": "9086:21:1", + "nodeType": "YulExpressionStatement", + "src": "9086:21:1" + }, + { + "nativeSrc": "9116:27:1", + "nodeType": "YulVariableDeclaration", + "src": "9116:27:1", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "9131:5:1", + "nodeType": "YulIdentifier", + "src": "9131:5:1" + }, + { + "kind": "number", + "nativeSrc": "9138:4:1", + "nodeType": "YulLiteral", + "src": "9138:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9127:3:1", + "nodeType": "YulIdentifier", + "src": "9127:3:1" + }, + "nativeSrc": "9127:16:1", + "nodeType": "YulFunctionCall", + "src": "9127:16:1" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "9120:3:1", + "nodeType": "YulTypedName", + "src": "9120:3:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9181:83:1", + "nodeType": "YulBlock", + "src": "9181:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "9183:77:1", + "nodeType": "YulIdentifier", + "src": "9183:77:1" + }, + "nativeSrc": "9183:79:1", + "nodeType": "YulFunctionCall", + "src": "9183:79:1" + }, + "nativeSrc": "9183:79:1", + "nodeType": "YulExpressionStatement", + "src": "9183:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "9162:3:1", + "nodeType": "YulIdentifier", + "src": "9162:3:1" + }, + { + "name": "length", + "nativeSrc": "9167:6:1", + "nodeType": "YulIdentifier", + "src": "9167:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9158:3:1", + "nodeType": "YulIdentifier", + "src": "9158:3:1" + }, + "nativeSrc": "9158:16:1", + "nodeType": "YulFunctionCall", + "src": "9158:16:1" + }, + { + "name": "end", + "nativeSrc": "9176:3:1", + "nodeType": "YulIdentifier", + "src": "9176:3:1" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9155:2:1", + "nodeType": "YulIdentifier", + "src": "9155:2:1" + }, + "nativeSrc": "9155:25:1", + "nodeType": "YulFunctionCall", + "src": "9155:25:1" + }, + "nativeSrc": "9152:112:1", + "nodeType": "YulIf", + "src": "9152:112:1" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "9310:3:1", + "nodeType": "YulIdentifier", + "src": "9310:3:1" + }, + { + "name": "dst", + "nativeSrc": "9315:3:1", + "nodeType": "YulIdentifier", + "src": "9315:3:1" + }, + { + "name": "length", + "nativeSrc": "9320:6:1", + "nodeType": "YulIdentifier", + "src": "9320:6:1" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "9273:36:1", + "nodeType": "YulIdentifier", + "src": "9273:36:1" + }, + "nativeSrc": "9273:54:1", + "nodeType": "YulFunctionCall", + "src": "9273:54:1" + }, + "nativeSrc": "9273:54:1", + "nodeType": "YulExpressionStatement", + "src": "9273:54:1" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "8910:423:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "8966:3:1", + "nodeType": "YulTypedName", + "src": "8966:3:1", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8971:6:1", + "nodeType": "YulTypedName", + "src": "8971:6:1", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8979:3:1", + "nodeType": "YulTypedName", + "src": "8979:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8987:5:1", + "nodeType": "YulTypedName", + "src": "8987:5:1", + "type": "" + } + ], + "src": "8910:423:1" + }, + { + "body": { + "nativeSrc": "9413:277:1", + "nodeType": "YulBlock", + "src": "9413:277:1", + "statements": [ + { + "body": { + "nativeSrc": "9462:83:1", + "nodeType": "YulBlock", + "src": "9462:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "9464:77:1", + "nodeType": "YulIdentifier", + "src": "9464:77:1" + }, + "nativeSrc": "9464:79:1", + "nodeType": "YulFunctionCall", + "src": "9464:79:1" + }, + "nativeSrc": "9464:79:1", + "nodeType": "YulExpressionStatement", + "src": "9464:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9441:6:1", + "nodeType": "YulIdentifier", + "src": "9441:6:1" + }, + { + "kind": "number", + "nativeSrc": "9449:4:1", + "nodeType": "YulLiteral", + "src": "9449:4:1", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9437:3:1", + "nodeType": "YulIdentifier", + "src": "9437:3:1" + }, + "nativeSrc": "9437:17:1", + "nodeType": "YulFunctionCall", + "src": "9437:17:1" + }, + { + "name": "end", + "nativeSrc": "9456:3:1", + "nodeType": "YulIdentifier", + "src": "9456:3:1" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9433:3:1", + "nodeType": "YulIdentifier", + "src": "9433:3:1" + }, + "nativeSrc": "9433:27:1", + "nodeType": "YulFunctionCall", + "src": "9433:27:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "9426:6:1", + "nodeType": "YulIdentifier", + "src": "9426:6:1" + }, + "nativeSrc": "9426:35:1", + "nodeType": "YulFunctionCall", + "src": "9426:35:1" + }, + "nativeSrc": "9423:122:1", + "nodeType": "YulIf", + "src": "9423:122:1" + }, + { + "nativeSrc": "9554:34:1", + "nodeType": "YulVariableDeclaration", + "src": "9554:34:1", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9581:6:1", + "nodeType": "YulIdentifier", + "src": "9581:6:1" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9568:12:1", + "nodeType": "YulIdentifier", + "src": "9568:12:1" + }, + "nativeSrc": "9568:20:1", + "nodeType": "YulFunctionCall", + "src": "9568:20:1" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "9558:6:1", + "nodeType": "YulTypedName", + "src": "9558:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "9597:87:1", + "nodeType": "YulAssignment", + "src": "9597:87:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9657:6:1", + "nodeType": "YulIdentifier", + "src": "9657:6:1" + }, + { + "kind": "number", + "nativeSrc": "9665:4:1", + "nodeType": "YulLiteral", + "src": "9665:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9653:3:1", + "nodeType": "YulIdentifier", + "src": "9653:3:1" + }, + "nativeSrc": "9653:17:1", + "nodeType": "YulFunctionCall", + "src": "9653:17:1" + }, + { + "name": "length", + "nativeSrc": "9672:6:1", + "nodeType": "YulIdentifier", + "src": "9672:6:1" + }, + { + "name": "end", + "nativeSrc": "9680:3:1", + "nodeType": "YulIdentifier", + "src": "9680:3:1" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9606:46:1", + "nodeType": "YulIdentifier", + "src": "9606:46:1" + }, + "nativeSrc": "9606:78:1", + "nodeType": "YulFunctionCall", + "src": "9606:78:1" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "9597:5:1", + "nodeType": "YulIdentifier", + "src": "9597:5:1" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "9352:338:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "9391:6:1", + "nodeType": "YulTypedName", + "src": "9391:6:1", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9399:3:1", + "nodeType": "YulTypedName", + "src": "9399:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "9407:5:1", + "nodeType": "YulTypedName", + "src": "9407:5:1", + "type": "" + } + ], + "src": "9352:338:1" + }, + { + "body": { + "nativeSrc": "9805:688:1", + "nodeType": "YulBlock", + "src": "9805:688:1", + "statements": [ + { + "body": { + "nativeSrc": "9851:83:1", + "nodeType": "YulBlock", + "src": "9851:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "9853:77:1", + "nodeType": "YulIdentifier", + "src": "9853:77:1" + }, + "nativeSrc": "9853:79:1", + "nodeType": "YulFunctionCall", + "src": "9853:79:1" + }, + "nativeSrc": "9853:79:1", + "nodeType": "YulExpressionStatement", + "src": "9853:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9826:7:1", + "nodeType": "YulIdentifier", + "src": "9826:7:1" + }, + { + "name": "headStart", + "nativeSrc": "9835:9:1", + "nodeType": "YulIdentifier", + "src": "9835:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9822:3:1", + "nodeType": "YulIdentifier", + "src": "9822:3:1" + }, + "nativeSrc": "9822:23:1", + "nodeType": "YulFunctionCall", + "src": "9822:23:1" + }, + { + "kind": "number", + "nativeSrc": "9847:2:1", + "nodeType": "YulLiteral", + "src": "9847:2:1", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9818:3:1", + "nodeType": "YulIdentifier", + "src": "9818:3:1" + }, + "nativeSrc": "9818:32:1", + "nodeType": "YulFunctionCall", + "src": "9818:32:1" + }, + "nativeSrc": "9815:119:1", + "nodeType": "YulIf", + "src": "9815:119:1" + }, + { + "nativeSrc": "9944:117:1", + "nodeType": "YulBlock", + "src": "9944:117:1", + "statements": [ + { + "nativeSrc": "9959:15:1", + "nodeType": "YulVariableDeclaration", + "src": "9959:15:1", + "value": { + "kind": "number", + "nativeSrc": "9973:1:1", + "nodeType": "YulLiteral", + "src": "9973:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9963:6:1", + "nodeType": "YulTypedName", + "src": "9963:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "9988:63:1", + "nodeType": "YulAssignment", + "src": "9988:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10023:9:1", + "nodeType": "YulIdentifier", + "src": "10023:9:1" + }, + { + "name": "offset", + "nativeSrc": "10034:6:1", + "nodeType": "YulIdentifier", + "src": "10034:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10019:3:1", + "nodeType": "YulIdentifier", + "src": "10019:3:1" + }, + "nativeSrc": "10019:22:1", + "nodeType": "YulFunctionCall", + "src": "10019:22:1" + }, + { + "name": "dataEnd", + "nativeSrc": "10043:7:1", + "nodeType": "YulIdentifier", + "src": "10043:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "9998:20:1", + "nodeType": "YulIdentifier", + "src": "9998:20:1" + }, + "nativeSrc": "9998:53:1", + "nodeType": "YulFunctionCall", + "src": "9998:53:1" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9988:6:1", + "nodeType": "YulIdentifier", + "src": "9988:6:1" + } + ] + } + ] + }, + { + "nativeSrc": "10071:118:1", + "nodeType": "YulBlock", + "src": "10071:118:1", + "statements": [ + { + "nativeSrc": "10086:16:1", + "nodeType": "YulVariableDeclaration", + "src": "10086:16:1", + "value": { + "kind": "number", + "nativeSrc": "10100:2:1", + "nodeType": "YulLiteral", + "src": "10100:2:1", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10090:6:1", + "nodeType": "YulTypedName", + "src": "10090:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "10116:63:1", + "nodeType": "YulAssignment", + "src": "10116:63:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10151:9:1", + "nodeType": "YulIdentifier", + "src": "10151:9:1" + }, + { + "name": "offset", + "nativeSrc": "10162:6:1", + "nodeType": "YulIdentifier", + "src": "10162:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10147:3:1", + "nodeType": "YulIdentifier", + "src": "10147:3:1" + }, + "nativeSrc": "10147:22:1", + "nodeType": "YulFunctionCall", + "src": "10147:22:1" + }, + { + "name": "dataEnd", + "nativeSrc": "10171:7:1", + "nodeType": "YulIdentifier", + "src": "10171:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "10126:20:1", + "nodeType": "YulIdentifier", + "src": "10126:20:1" + }, + "nativeSrc": "10126:53:1", + "nodeType": "YulFunctionCall", + "src": "10126:53:1" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "10116:6:1", + "nodeType": "YulIdentifier", + "src": "10116:6:1" + } + ] + } + ] + }, + { + "nativeSrc": "10199:287:1", + "nodeType": "YulBlock", + "src": "10199:287:1", + "statements": [ + { + "nativeSrc": "10214:46:1", + "nodeType": "YulVariableDeclaration", + "src": "10214:46:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10245:9:1", + "nodeType": "YulIdentifier", + "src": "10245:9:1" + }, + { + "kind": "number", + "nativeSrc": "10256:2:1", + "nodeType": "YulLiteral", + "src": "10256:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10241:3:1", + "nodeType": "YulIdentifier", + "src": "10241:3:1" + }, + "nativeSrc": "10241:18:1", + "nodeType": "YulFunctionCall", + "src": "10241:18:1" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10228:12:1", + "nodeType": "YulIdentifier", + "src": "10228:12:1" + }, + "nativeSrc": "10228:32:1", + "nodeType": "YulFunctionCall", + "src": "10228:32:1" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10218:6:1", + "nodeType": "YulTypedName", + "src": "10218:6:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10307:83:1", + "nodeType": "YulBlock", + "src": "10307:83:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10309:77:1", + "nodeType": "YulIdentifier", + "src": "10309:77:1" + }, + "nativeSrc": "10309:79:1", + "nodeType": "YulFunctionCall", + "src": "10309:79:1" + }, + "nativeSrc": "10309:79:1", + "nodeType": "YulExpressionStatement", + "src": "10309:79:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10279:6:1", + "nodeType": "YulIdentifier", + "src": "10279:6:1" + }, + { + "kind": "number", + "nativeSrc": "10287:18:1", + "nodeType": "YulLiteral", + "src": "10287:18:1", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10276:2:1", + "nodeType": "YulIdentifier", + "src": "10276:2:1" + }, + "nativeSrc": "10276:30:1", + "nodeType": "YulFunctionCall", + "src": "10276:30:1" + }, + "nativeSrc": "10273:117:1", + "nodeType": "YulIf", + "src": "10273:117:1" + }, + { + "nativeSrc": "10404:72:1", + "nodeType": "YulAssignment", + "src": "10404:72:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10448:9:1", + "nodeType": "YulIdentifier", + "src": "10448:9:1" + }, + { + "name": "offset", + "nativeSrc": "10459:6:1", + "nodeType": "YulIdentifier", + "src": "10459:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10444:3:1", + "nodeType": "YulIdentifier", + "src": "10444:3:1" + }, + "nativeSrc": "10444:22:1", + "nodeType": "YulFunctionCall", + "src": "10444:22:1" + }, + { + "name": "dataEnd", + "nativeSrc": "10468:7:1", + "nodeType": "YulIdentifier", + "src": "10468:7:1" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "10414:29:1", + "nodeType": "YulIdentifier", + "src": "10414:29:1" + }, + "nativeSrc": "10414:62:1", + "nodeType": "YulFunctionCall", + "src": "10414:62:1" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "10404:6:1", + "nodeType": "YulIdentifier", + "src": "10404:6:1" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr", + "nativeSrc": "9696:797:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9759:9:1", + "nodeType": "YulTypedName", + "src": "9759:9:1", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9770:7:1", + "nodeType": "YulTypedName", + "src": "9770:7:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9782:6:1", + "nodeType": "YulTypedName", + "src": "9782:6:1", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9790:6:1", + "nodeType": "YulTypedName", + "src": "9790:6:1", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "9798:6:1", + "nodeType": "YulTypedName", + "src": "9798:6:1", + "type": "" + } + ], + "src": "9696:797:1" + }, + { + "body": { + "nativeSrc": "10595:73:1", + "nodeType": "YulBlock", + "src": "10595:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10612:3:1", + "nodeType": "YulIdentifier", + "src": "10612:3:1" + }, + { + "name": "length", + "nativeSrc": "10617:6:1", + "nodeType": "YulIdentifier", + "src": "10617:6:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10605:6:1", + "nodeType": "YulIdentifier", + "src": "10605:6:1" + }, + "nativeSrc": "10605:19:1", + "nodeType": "YulFunctionCall", + "src": "10605:19:1" + }, + "nativeSrc": "10605:19:1", + "nodeType": "YulExpressionStatement", + "src": "10605:19:1" + }, + { + "nativeSrc": "10633:29:1", + "nodeType": "YulAssignment", + "src": "10633:29:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10652:3:1", + "nodeType": "YulIdentifier", + "src": "10652:3:1" + }, + { + "kind": "number", + "nativeSrc": "10657:4:1", + "nodeType": "YulLiteral", + "src": "10657:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10648:3:1", + "nodeType": "YulIdentifier", + "src": "10648:3:1" + }, + "nativeSrc": "10648:14:1", + "nodeType": "YulFunctionCall", + "src": "10648:14:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "10633:11:1", + "nodeType": "YulIdentifier", + "src": "10633:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "10499:169:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "10567:3:1", + "nodeType": "YulTypedName", + "src": "10567:3:1", + "type": "" + }, + { + "name": "length", + "nativeSrc": "10572:6:1", + "nodeType": "YulTypedName", + "src": "10572:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "10583:11:1", + "nodeType": "YulTypedName", + "src": "10583:11:1", + "type": "" + } + ], + "src": "10499:169:1" + }, + { + "body": { + "nativeSrc": "10780:53:1", + "nodeType": "YulBlock", + "src": "10780:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "10802:6:1", + "nodeType": "YulIdentifier", + "src": "10802:6:1" + }, + { + "kind": "number", + "nativeSrc": "10810:1:1", + "nodeType": "YulLiteral", + "src": "10810:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10798:3:1", + "nodeType": "YulIdentifier", + "src": "10798:3:1" + }, + "nativeSrc": "10798:14:1", + "nodeType": "YulFunctionCall", + "src": "10798:14:1" + }, + { + "hexValue": "6e6f74206f776e6572", + "kind": "string", + "nativeSrc": "10814:11:1", + "nodeType": "YulLiteral", + "src": "10814:11:1", + "type": "", + "value": "not owner" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10791:6:1", + "nodeType": "YulIdentifier", + "src": "10791:6:1" + }, + "nativeSrc": "10791:35:1", + "nodeType": "YulFunctionCall", + "src": "10791:35:1" + }, + "nativeSrc": "10791:35:1", + "nodeType": "YulExpressionStatement", + "src": "10791:35:1" + } + ] + }, + "name": "store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e", + "nativeSrc": "10674:159:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "10772:6:1", + "nodeType": "YulTypedName", + "src": "10772:6:1", + "type": "" + } + ], + "src": "10674:159:1" + }, + { + "body": { + "nativeSrc": "10985:219:1", + "nodeType": "YulBlock", + "src": "10985:219:1", + "statements": [ + { + "nativeSrc": "10995:73:1", + "nodeType": "YulAssignment", + "src": "10995:73:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11061:3:1", + "nodeType": "YulIdentifier", + "src": "11061:3:1" + }, + { + "kind": "number", + "nativeSrc": "11066:1:1", + "nodeType": "YulLiteral", + "src": "11066:1:1", + "type": "", + "value": "9" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "11002:58:1", + "nodeType": "YulIdentifier", + "src": "11002:58:1" + }, + "nativeSrc": "11002:66:1", + "nodeType": "YulFunctionCall", + "src": "11002:66:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "10995:3:1", + "nodeType": "YulIdentifier", + "src": "10995:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11166:3:1", + "nodeType": "YulIdentifier", + "src": "11166:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e", + "nativeSrc": "11077:88:1", + "nodeType": "YulIdentifier", + "src": "11077:88:1" + }, + "nativeSrc": "11077:93:1", + "nodeType": "YulFunctionCall", + "src": "11077:93:1" + }, + "nativeSrc": "11077:93:1", + "nodeType": "YulExpressionStatement", + "src": "11077:93:1" + }, + { + "nativeSrc": "11179:19:1", + "nodeType": "YulAssignment", + "src": "11179:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11190:3:1", + "nodeType": "YulIdentifier", + "src": "11190:3:1" + }, + { + "kind": "number", + "nativeSrc": "11195:2:1", + "nodeType": "YulLiteral", + "src": "11195:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11186:3:1", + "nodeType": "YulIdentifier", + "src": "11186:3:1" + }, + "nativeSrc": "11186:12:1", + "nodeType": "YulFunctionCall", + "src": "11186:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "11179:3:1", + "nodeType": "YulIdentifier", + "src": "11179:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack", + "nativeSrc": "10839:365:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "10973:3:1", + "nodeType": "YulTypedName", + "src": "10973:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "10981:3:1", + "nodeType": "YulTypedName", + "src": "10981:3:1", + "type": "" + } + ], + "src": "10839:365:1" + }, + { + "body": { + "nativeSrc": "11381:248:1", + "nodeType": "YulBlock", + "src": "11381:248:1", + "statements": [ + { + "nativeSrc": "11391:26:1", + "nodeType": "YulAssignment", + "src": "11391:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11403:9:1", + "nodeType": "YulIdentifier", + "src": "11403:9:1" + }, + { + "kind": "number", + "nativeSrc": "11414:2:1", + "nodeType": "YulLiteral", + "src": "11414:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11399:3:1", + "nodeType": "YulIdentifier", + "src": "11399:3:1" + }, + "nativeSrc": "11399:18:1", + "nodeType": "YulFunctionCall", + "src": "11399:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11391:4:1", + "nodeType": "YulIdentifier", + "src": "11391:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11438:9:1", + "nodeType": "YulIdentifier", + "src": "11438:9:1" + }, + { + "kind": "number", + "nativeSrc": "11449:1:1", + "nodeType": "YulLiteral", + "src": "11449:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11434:3:1", + "nodeType": "YulIdentifier", + "src": "11434:3:1" + }, + "nativeSrc": "11434:17:1", + "nodeType": "YulFunctionCall", + "src": "11434:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "11457:4:1", + "nodeType": "YulIdentifier", + "src": "11457:4:1" + }, + { + "name": "headStart", + "nativeSrc": "11463:9:1", + "nodeType": "YulIdentifier", + "src": "11463:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11453:3:1", + "nodeType": "YulIdentifier", + "src": "11453:3:1" + }, + "nativeSrc": "11453:20:1", + "nodeType": "YulFunctionCall", + "src": "11453:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11427:6:1", + "nodeType": "YulIdentifier", + "src": "11427:6:1" + }, + "nativeSrc": "11427:47:1", + "nodeType": "YulFunctionCall", + "src": "11427:47:1" + }, + "nativeSrc": "11427:47:1", + "nodeType": "YulExpressionStatement", + "src": "11427:47:1" + }, + { + "nativeSrc": "11483:139:1", + "nodeType": "YulAssignment", + "src": "11483:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "11617:4:1", + "nodeType": "YulIdentifier", + "src": "11617:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11491:124:1", + "nodeType": "YulIdentifier", + "src": "11491:124:1" + }, + "nativeSrc": "11491:131:1", + "nodeType": "YulFunctionCall", + "src": "11491:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11483:4:1", + "nodeType": "YulIdentifier", + "src": "11483:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "11210:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11361:9:1", + "nodeType": "YulTypedName", + "src": "11361:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11376:4:1", + "nodeType": "YulTypedName", + "src": "11376:4:1", + "type": "" + } + ], + "src": "11210:419:1" + }, + { + "body": { + "nativeSrc": "11741:61:1", + "nodeType": "YulBlock", + "src": "11741:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "11763:6:1", + "nodeType": "YulIdentifier", + "src": "11763:6:1" + }, + { + "kind": "number", + "nativeSrc": "11771:1:1", + "nodeType": "YulLiteral", + "src": "11771:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11759:3:1", + "nodeType": "YulIdentifier", + "src": "11759:3:1" + }, + "nativeSrc": "11759:14:1", + "nodeType": "YulFunctionCall", + "src": "11759:14:1" + }, + { + "hexValue": "747820646f6573206e6f74206578697374", + "kind": "string", + "nativeSrc": "11775:19:1", + "nodeType": "YulLiteral", + "src": "11775:19:1", + "type": "", + "value": "tx does not exist" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11752:6:1", + "nodeType": "YulIdentifier", + "src": "11752:6:1" + }, + "nativeSrc": "11752:43:1", + "nodeType": "YulFunctionCall", + "src": "11752:43:1" + }, + "nativeSrc": "11752:43:1", + "nodeType": "YulExpressionStatement", + "src": "11752:43:1" + } + ] + }, + "name": "store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251", + "nativeSrc": "11635:167:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "11733:6:1", + "nodeType": "YulTypedName", + "src": "11733:6:1", + "type": "" + } + ], + "src": "11635:167:1" + }, + { + "body": { + "nativeSrc": "11954:220:1", + "nodeType": "YulBlock", + "src": "11954:220:1", + "statements": [ + { + "nativeSrc": "11964:74:1", + "nodeType": "YulAssignment", + "src": "11964:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12030:3:1", + "nodeType": "YulIdentifier", + "src": "12030:3:1" + }, + { + "kind": "number", + "nativeSrc": "12035:2:1", + "nodeType": "YulLiteral", + "src": "12035:2:1", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "11971:58:1", + "nodeType": "YulIdentifier", + "src": "11971:58:1" + }, + "nativeSrc": "11971:67:1", + "nodeType": "YulFunctionCall", + "src": "11971:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "11964:3:1", + "nodeType": "YulIdentifier", + "src": "11964:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12136:3:1", + "nodeType": "YulIdentifier", + "src": "12136:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251", + "nativeSrc": "12047:88:1", + "nodeType": "YulIdentifier", + "src": "12047:88:1" + }, + "nativeSrc": "12047:93:1", + "nodeType": "YulFunctionCall", + "src": "12047:93:1" + }, + "nativeSrc": "12047:93:1", + "nodeType": "YulExpressionStatement", + "src": "12047:93:1" + }, + { + "nativeSrc": "12149:19:1", + "nodeType": "YulAssignment", + "src": "12149:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12160:3:1", + "nodeType": "YulIdentifier", + "src": "12160:3:1" + }, + { + "kind": "number", + "nativeSrc": "12165:2:1", + "nodeType": "YulLiteral", + "src": "12165:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12156:3:1", + "nodeType": "YulIdentifier", + "src": "12156:3:1" + }, + "nativeSrc": "12156:12:1", + "nodeType": "YulFunctionCall", + "src": "12156:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "12149:3:1", + "nodeType": "YulIdentifier", + "src": "12149:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack", + "nativeSrc": "11808:366:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "11942:3:1", + "nodeType": "YulTypedName", + "src": "11942:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "11950:3:1", + "nodeType": "YulTypedName", + "src": "11950:3:1", + "type": "" + } + ], + "src": "11808:366:1" + }, + { + "body": { + "nativeSrc": "12351:248:1", + "nodeType": "YulBlock", + "src": "12351:248:1", + "statements": [ + { + "nativeSrc": "12361:26:1", + "nodeType": "YulAssignment", + "src": "12361:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12373:9:1", + "nodeType": "YulIdentifier", + "src": "12373:9:1" + }, + { + "kind": "number", + "nativeSrc": "12384:2:1", + "nodeType": "YulLiteral", + "src": "12384:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12369:3:1", + "nodeType": "YulIdentifier", + "src": "12369:3:1" + }, + "nativeSrc": "12369:18:1", + "nodeType": "YulFunctionCall", + "src": "12369:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12361:4:1", + "nodeType": "YulIdentifier", + "src": "12361:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12408:9:1", + "nodeType": "YulIdentifier", + "src": "12408:9:1" + }, + { + "kind": "number", + "nativeSrc": "12419:1:1", + "nodeType": "YulLiteral", + "src": "12419:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12404:3:1", + "nodeType": "YulIdentifier", + "src": "12404:3:1" + }, + "nativeSrc": "12404:17:1", + "nodeType": "YulFunctionCall", + "src": "12404:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "12427:4:1", + "nodeType": "YulIdentifier", + "src": "12427:4:1" + }, + { + "name": "headStart", + "nativeSrc": "12433:9:1", + "nodeType": "YulIdentifier", + "src": "12433:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12423:3:1", + "nodeType": "YulIdentifier", + "src": "12423:3:1" + }, + "nativeSrc": "12423:20:1", + "nodeType": "YulFunctionCall", + "src": "12423:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12397:6:1", + "nodeType": "YulIdentifier", + "src": "12397:6:1" + }, + "nativeSrc": "12397:47:1", + "nodeType": "YulFunctionCall", + "src": "12397:47:1" + }, + "nativeSrc": "12397:47:1", + "nodeType": "YulExpressionStatement", + "src": "12397:47:1" + }, + { + "nativeSrc": "12453:139:1", + "nodeType": "YulAssignment", + "src": "12453:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "12587:4:1", + "nodeType": "YulIdentifier", + "src": "12587:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12461:124:1", + "nodeType": "YulIdentifier", + "src": "12461:124:1" + }, + "nativeSrc": "12461:131:1", + "nodeType": "YulFunctionCall", + "src": "12461:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12453:4:1", + "nodeType": "YulIdentifier", + "src": "12453:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "12180:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12331:9:1", + "nodeType": "YulTypedName", + "src": "12331:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12346:4:1", + "nodeType": "YulTypedName", + "src": "12346:4:1", + "type": "" + } + ], + "src": "12180:419:1" + }, + { + "body": { + "nativeSrc": "12633:152:1", + "nodeType": "YulBlock", + "src": "12633:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12650:1:1", + "nodeType": "YulLiteral", + "src": "12650:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12653:77:1", + "nodeType": "YulLiteral", + "src": "12653:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12643:6:1", + "nodeType": "YulIdentifier", + "src": "12643:6:1" + }, + "nativeSrc": "12643:88:1", + "nodeType": "YulFunctionCall", + "src": "12643:88:1" + }, + "nativeSrc": "12643:88:1", + "nodeType": "YulExpressionStatement", + "src": "12643:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12747:1:1", + "nodeType": "YulLiteral", + "src": "12747:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "12750:4:1", + "nodeType": "YulLiteral", + "src": "12750:4:1", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12740:6:1", + "nodeType": "YulIdentifier", + "src": "12740:6:1" + }, + "nativeSrc": "12740:15:1", + "nodeType": "YulFunctionCall", + "src": "12740:15:1" + }, + "nativeSrc": "12740:15:1", + "nodeType": "YulExpressionStatement", + "src": "12740:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12771:1:1", + "nodeType": "YulLiteral", + "src": "12771:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12774:4:1", + "nodeType": "YulLiteral", + "src": "12774:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12764:6:1", + "nodeType": "YulIdentifier", + "src": "12764:6:1" + }, + "nativeSrc": "12764:15:1", + "nodeType": "YulFunctionCall", + "src": "12764:15:1" + }, + "nativeSrc": "12764:15:1", + "nodeType": "YulExpressionStatement", + "src": "12764:15:1" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "12605:180:1", + "nodeType": "YulFunctionDefinition", + "src": "12605:180:1" + }, + { + "body": { + "nativeSrc": "12897:64:1", + "nodeType": "YulBlock", + "src": "12897:64:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "12919:6:1", + "nodeType": "YulIdentifier", + "src": "12919:6:1" + }, + { + "kind": "number", + "nativeSrc": "12927:1:1", + "nodeType": "YulLiteral", + "src": "12927:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12915:3:1", + "nodeType": "YulIdentifier", + "src": "12915:3:1" + }, + "nativeSrc": "12915:14:1", + "nodeType": "YulFunctionCall", + "src": "12915:14:1" + }, + { + "hexValue": "747820616c726561647920636f6e6669726d6564", + "kind": "string", + "nativeSrc": "12931:22:1", + "nodeType": "YulLiteral", + "src": "12931:22:1", + "type": "", + "value": "tx already confirmed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12908:6:1", + "nodeType": "YulIdentifier", + "src": "12908:6:1" + }, + "nativeSrc": "12908:46:1", + "nodeType": "YulFunctionCall", + "src": "12908:46:1" + }, + "nativeSrc": "12908:46:1", + "nodeType": "YulExpressionStatement", + "src": "12908:46:1" + } + ] + }, + "name": "store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", + "nativeSrc": "12791:170:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "12889:6:1", + "nodeType": "YulTypedName", + "src": "12889:6:1", + "type": "" + } + ], + "src": "12791:170:1" + }, + { + "body": { + "nativeSrc": "13113:220:1", + "nodeType": "YulBlock", + "src": "13113:220:1", + "statements": [ + { + "nativeSrc": "13123:74:1", + "nodeType": "YulAssignment", + "src": "13123:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13189:3:1", + "nodeType": "YulIdentifier", + "src": "13189:3:1" + }, + { + "kind": "number", + "nativeSrc": "13194:2:1", + "nodeType": "YulLiteral", + "src": "13194:2:1", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "13130:58:1", + "nodeType": "YulIdentifier", + "src": "13130:58:1" + }, + "nativeSrc": "13130:67:1", + "nodeType": "YulFunctionCall", + "src": "13130:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "13123:3:1", + "nodeType": "YulIdentifier", + "src": "13123:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13295:3:1", + "nodeType": "YulIdentifier", + "src": "13295:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", + "nativeSrc": "13206:88:1", + "nodeType": "YulIdentifier", + "src": "13206:88:1" + }, + "nativeSrc": "13206:93:1", + "nodeType": "YulFunctionCall", + "src": "13206:93:1" + }, + "nativeSrc": "13206:93:1", + "nodeType": "YulExpressionStatement", + "src": "13206:93:1" + }, + { + "nativeSrc": "13308:19:1", + "nodeType": "YulAssignment", + "src": "13308:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13319:3:1", + "nodeType": "YulIdentifier", + "src": "13319:3:1" + }, + { + "kind": "number", + "nativeSrc": "13324:2:1", + "nodeType": "YulLiteral", + "src": "13324:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13315:3:1", + "nodeType": "YulIdentifier", + "src": "13315:3:1" + }, + "nativeSrc": "13315:12:1", + "nodeType": "YulFunctionCall", + "src": "13315:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13308:3:1", + "nodeType": "YulIdentifier", + "src": "13308:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack", + "nativeSrc": "12967:366:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "13101:3:1", + "nodeType": "YulTypedName", + "src": "13101:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "13109:3:1", + "nodeType": "YulTypedName", + "src": "13109:3:1", + "type": "" + } + ], + "src": "12967:366:1" + }, + { + "body": { + "nativeSrc": "13510:248:1", + "nodeType": "YulBlock", + "src": "13510:248:1", + "statements": [ + { + "nativeSrc": "13520:26:1", + "nodeType": "YulAssignment", + "src": "13520:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13532:9:1", + "nodeType": "YulIdentifier", + "src": "13532:9:1" + }, + { + "kind": "number", + "nativeSrc": "13543:2:1", + "nodeType": "YulLiteral", + "src": "13543:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13528:3:1", + "nodeType": "YulIdentifier", + "src": "13528:3:1" + }, + "nativeSrc": "13528:18:1", + "nodeType": "YulFunctionCall", + "src": "13528:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13520:4:1", + "nodeType": "YulIdentifier", + "src": "13520:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13567:9:1", + "nodeType": "YulIdentifier", + "src": "13567:9:1" + }, + { + "kind": "number", + "nativeSrc": "13578:1:1", + "nodeType": "YulLiteral", + "src": "13578:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13563:3:1", + "nodeType": "YulIdentifier", + "src": "13563:3:1" + }, + "nativeSrc": "13563:17:1", + "nodeType": "YulFunctionCall", + "src": "13563:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13586:4:1", + "nodeType": "YulIdentifier", + "src": "13586:4:1" + }, + { + "name": "headStart", + "nativeSrc": "13592:9:1", + "nodeType": "YulIdentifier", + "src": "13592:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13582:3:1", + "nodeType": "YulIdentifier", + "src": "13582:3:1" + }, + "nativeSrc": "13582:20:1", + "nodeType": "YulFunctionCall", + "src": "13582:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13556:6:1", + "nodeType": "YulIdentifier", + "src": "13556:6:1" + }, + "nativeSrc": "13556:47:1", + "nodeType": "YulFunctionCall", + "src": "13556:47:1" + }, + "nativeSrc": "13556:47:1", + "nodeType": "YulExpressionStatement", + "src": "13556:47:1" + }, + { + "nativeSrc": "13612:139:1", + "nodeType": "YulAssignment", + "src": "13612:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "13746:4:1", + "nodeType": "YulIdentifier", + "src": "13746:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13620:124:1", + "nodeType": "YulIdentifier", + "src": "13620:124:1" + }, + "nativeSrc": "13620:131:1", + "nodeType": "YulFunctionCall", + "src": "13620:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13612:4:1", + "nodeType": "YulIdentifier", + "src": "13612:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13339:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13490:9:1", + "nodeType": "YulTypedName", + "src": "13490:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13505:4:1", + "nodeType": "YulTypedName", + "src": "13505:4:1", + "type": "" + } + ], + "src": "13339:419:1" + }, + { + "body": { + "nativeSrc": "13870:60:1", + "nodeType": "YulBlock", + "src": "13870:60:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "13892:6:1", + "nodeType": "YulIdentifier", + "src": "13892:6:1" + }, + { + "kind": "number", + "nativeSrc": "13900:1:1", + "nodeType": "YulLiteral", + "src": "13900:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13888:3:1", + "nodeType": "YulIdentifier", + "src": "13888:3:1" + }, + "nativeSrc": "13888:14:1", + "nodeType": "YulFunctionCall", + "src": "13888:14:1" + }, + { + "hexValue": "7478206e6f7420636f6e6669726d6564", + "kind": "string", + "nativeSrc": "13904:18:1", + "nodeType": "YulLiteral", + "src": "13904:18:1", + "type": "", + "value": "tx not confirmed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13881:6:1", + "nodeType": "YulIdentifier", + "src": "13881:6:1" + }, + "nativeSrc": "13881:42:1", + "nodeType": "YulFunctionCall", + "src": "13881:42:1" + }, + "nativeSrc": "13881:42:1", + "nodeType": "YulExpressionStatement", + "src": "13881:42:1" + } + ] + }, + "name": "store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae", + "nativeSrc": "13764:166:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "13862:6:1", + "nodeType": "YulTypedName", + "src": "13862:6:1", + "type": "" + } + ], + "src": "13764:166:1" + }, + { + "body": { + "nativeSrc": "14082:220:1", + "nodeType": "YulBlock", + "src": "14082:220:1", + "statements": [ + { + "nativeSrc": "14092:74:1", + "nodeType": "YulAssignment", + "src": "14092:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14158:3:1", + "nodeType": "YulIdentifier", + "src": "14158:3:1" + }, + { + "kind": "number", + "nativeSrc": "14163:2:1", + "nodeType": "YulLiteral", + "src": "14163:2:1", + "type": "", + "value": "16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "14099:58:1", + "nodeType": "YulIdentifier", + "src": "14099:58:1" + }, + "nativeSrc": "14099:67:1", + "nodeType": "YulFunctionCall", + "src": "14099:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14092:3:1", + "nodeType": "YulIdentifier", + "src": "14092:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14264:3:1", + "nodeType": "YulIdentifier", + "src": "14264:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae", + "nativeSrc": "14175:88:1", + "nodeType": "YulIdentifier", + "src": "14175:88:1" + }, + "nativeSrc": "14175:93:1", + "nodeType": "YulFunctionCall", + "src": "14175:93:1" + }, + "nativeSrc": "14175:93:1", + "nodeType": "YulExpressionStatement", + "src": "14175:93:1" + }, + { + "nativeSrc": "14277:19:1", + "nodeType": "YulAssignment", + "src": "14277:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14288:3:1", + "nodeType": "YulIdentifier", + "src": "14288:3:1" + }, + { + "kind": "number", + "nativeSrc": "14293:2:1", + "nodeType": "YulLiteral", + "src": "14293:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14284:3:1", + "nodeType": "YulIdentifier", + "src": "14284:3:1" + }, + "nativeSrc": "14284:12:1", + "nodeType": "YulFunctionCall", + "src": "14284:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14277:3:1", + "nodeType": "YulIdentifier", + "src": "14277:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13936:366:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14070:3:1", + "nodeType": "YulTypedName", + "src": "14070:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14078:3:1", + "nodeType": "YulTypedName", + "src": "14078:3:1", + "type": "" + } + ], + "src": "13936:366:1" + }, + { + "body": { + "nativeSrc": "14479:248:1", + "nodeType": "YulBlock", + "src": "14479:248:1", + "statements": [ + { + "nativeSrc": "14489:26:1", + "nodeType": "YulAssignment", + "src": "14489:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14501:9:1", + "nodeType": "YulIdentifier", + "src": "14501:9:1" + }, + { + "kind": "number", + "nativeSrc": "14512:2:1", + "nodeType": "YulLiteral", + "src": "14512:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14497:3:1", + "nodeType": "YulIdentifier", + "src": "14497:3:1" + }, + "nativeSrc": "14497:18:1", + "nodeType": "YulFunctionCall", + "src": "14497:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14489:4:1", + "nodeType": "YulIdentifier", + "src": "14489:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14536:9:1", + "nodeType": "YulIdentifier", + "src": "14536:9:1" + }, + { + "kind": "number", + "nativeSrc": "14547:1:1", + "nodeType": "YulLiteral", + "src": "14547:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14532:3:1", + "nodeType": "YulIdentifier", + "src": "14532:3:1" + }, + "nativeSrc": "14532:17:1", + "nodeType": "YulFunctionCall", + "src": "14532:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "14555:4:1", + "nodeType": "YulIdentifier", + "src": "14555:4:1" + }, + { + "name": "headStart", + "nativeSrc": "14561:9:1", + "nodeType": "YulIdentifier", + "src": "14561:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14551:3:1", + "nodeType": "YulIdentifier", + "src": "14551:3:1" + }, + "nativeSrc": "14551:20:1", + "nodeType": "YulFunctionCall", + "src": "14551:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14525:6:1", + "nodeType": "YulIdentifier", + "src": "14525:6:1" + }, + "nativeSrc": "14525:47:1", + "nodeType": "YulFunctionCall", + "src": "14525:47:1" + }, + "nativeSrc": "14525:47:1", + "nodeType": "YulExpressionStatement", + "src": "14525:47:1" + }, + { + "nativeSrc": "14581:139:1", + "nodeType": "YulAssignment", + "src": "14581:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "14715:4:1", + "nodeType": "YulIdentifier", + "src": "14715:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack", + "nativeSrc": "14589:124:1", + "nodeType": "YulIdentifier", + "src": "14589:124:1" + }, + "nativeSrc": "14589:131:1", + "nodeType": "YulFunctionCall", + "src": "14589:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14581:4:1", + "nodeType": "YulIdentifier", + "src": "14581:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "14308:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14459:9:1", + "nodeType": "YulTypedName", + "src": "14459:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14474:4:1", + "nodeType": "YulTypedName", + "src": "14474:4:1", + "type": "" + } + ], + "src": "14308:419:1" + }, + { + "body": { + "nativeSrc": "14761:152:1", + "nodeType": "YulBlock", + "src": "14761:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14778:1:1", + "nodeType": "YulLiteral", + "src": "14778:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14781:77:1", + "nodeType": "YulLiteral", + "src": "14781:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14771:6:1", + "nodeType": "YulIdentifier", + "src": "14771:6:1" + }, + "nativeSrc": "14771:88:1", + "nodeType": "YulFunctionCall", + "src": "14771:88:1" + }, + "nativeSrc": "14771:88:1", + "nodeType": "YulExpressionStatement", + "src": "14771:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14875:1:1", + "nodeType": "YulLiteral", + "src": "14875:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "14878:4:1", + "nodeType": "YulLiteral", + "src": "14878:4:1", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14868:6:1", + "nodeType": "YulIdentifier", + "src": "14868:6:1" + }, + "nativeSrc": "14868:15:1", + "nodeType": "YulFunctionCall", + "src": "14868:15:1" + }, + "nativeSrc": "14868:15:1", + "nodeType": "YulExpressionStatement", + "src": "14868:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14899:1:1", + "nodeType": "YulLiteral", + "src": "14899:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14902:4:1", + "nodeType": "YulLiteral", + "src": "14902:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14892:6:1", + "nodeType": "YulIdentifier", + "src": "14892:6:1" + }, + "nativeSrc": "14892:15:1", + "nodeType": "YulFunctionCall", + "src": "14892:15:1" + }, + "nativeSrc": "14892:15:1", + "nodeType": "YulExpressionStatement", + "src": "14892:15:1" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "14733:180:1", + "nodeType": "YulFunctionDefinition", + "src": "14733:180:1" + }, + { + "body": { + "nativeSrc": "14964:149:1", + "nodeType": "YulBlock", + "src": "14964:149:1", + "statements": [ + { + "nativeSrc": "14974:25:1", + "nodeType": "YulAssignment", + "src": "14974:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "14997:1:1", + "nodeType": "YulIdentifier", + "src": "14997:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "14979:17:1", + "nodeType": "YulIdentifier", + "src": "14979:17:1" + }, + "nativeSrc": "14979:20:1", + "nodeType": "YulFunctionCall", + "src": "14979:20:1" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "14974:1:1", + "nodeType": "YulIdentifier", + "src": "14974:1:1" + } + ] + }, + { + "nativeSrc": "15008:25:1", + "nodeType": "YulAssignment", + "src": "15008:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "15031:1:1", + "nodeType": "YulIdentifier", + "src": "15031:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "15013:17:1", + "nodeType": "YulIdentifier", + "src": "15013:17:1" + }, + "nativeSrc": "15013:20:1", + "nodeType": "YulFunctionCall", + "src": "15013:20:1" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "15008:1:1", + "nodeType": "YulIdentifier", + "src": "15008:1:1" + } + ] + }, + { + "nativeSrc": "15042:17:1", + "nodeType": "YulAssignment", + "src": "15042:17:1", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "15054:1:1", + "nodeType": "YulIdentifier", + "src": "15054:1:1" + }, + { + "name": "y", + "nativeSrc": "15057:1:1", + "nodeType": "YulIdentifier", + "src": "15057:1:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15050:3:1", + "nodeType": "YulIdentifier", + "src": "15050:3:1" + }, + "nativeSrc": "15050:9:1", + "nodeType": "YulFunctionCall", + "src": "15050:9:1" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "15042:4:1", + "nodeType": "YulIdentifier", + "src": "15042:4:1" + } + ] + }, + { + "body": { + "nativeSrc": "15084:22:1", + "nodeType": "YulBlock", + "src": "15084:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "15086:16:1", + "nodeType": "YulIdentifier", + "src": "15086:16:1" + }, + "nativeSrc": "15086:18:1", + "nodeType": "YulFunctionCall", + "src": "15086:18:1" + }, + "nativeSrc": "15086:18:1", + "nodeType": "YulExpressionStatement", + "src": "15086:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "15075:4:1", + "nodeType": "YulIdentifier", + "src": "15075:4:1" + }, + { + "name": "x", + "nativeSrc": "15081:1:1", + "nodeType": "YulIdentifier", + "src": "15081:1:1" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15072:2:1", + "nodeType": "YulIdentifier", + "src": "15072:2:1" + }, + "nativeSrc": "15072:11:1", + "nodeType": "YulFunctionCall", + "src": "15072:11:1" + }, + "nativeSrc": "15069:37:1", + "nodeType": "YulIf", + "src": "15069:37:1" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "14919:194:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "14950:1:1", + "nodeType": "YulTypedName", + "src": "14950:1:1", + "type": "" + }, + { + "name": "y", + "nativeSrc": "14953:1:1", + "nodeType": "YulTypedName", + "src": "14953:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "14959:4:1", + "nodeType": "YulTypedName", + "src": "14959:4:1", + "type": "" + } + ], + "src": "14919:194:1" + }, + { + "body": { + "nativeSrc": "15147:152:1", + "nodeType": "YulBlock", + "src": "15147:152:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15164:1:1", + "nodeType": "YulLiteral", + "src": "15164:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15167:77:1", + "nodeType": "YulLiteral", + "src": "15167:77:1", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15157:6:1", + "nodeType": "YulIdentifier", + "src": "15157:6:1" + }, + "nativeSrc": "15157:88:1", + "nodeType": "YulFunctionCall", + "src": "15157:88:1" + }, + "nativeSrc": "15157:88:1", + "nodeType": "YulExpressionStatement", + "src": "15157:88:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15261:1:1", + "nodeType": "YulLiteral", + "src": "15261:1:1", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "15264:4:1", + "nodeType": "YulLiteral", + "src": "15264:4:1", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15254:6:1", + "nodeType": "YulIdentifier", + "src": "15254:6:1" + }, + "nativeSrc": "15254:15:1", + "nodeType": "YulFunctionCall", + "src": "15254:15:1" + }, + "nativeSrc": "15254:15:1", + "nodeType": "YulExpressionStatement", + "src": "15254:15:1" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15285:1:1", + "nodeType": "YulLiteral", + "src": "15285:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15288:4:1", + "nodeType": "YulLiteral", + "src": "15288:4:1", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15278:6:1", + "nodeType": "YulIdentifier", + "src": "15278:6:1" + }, + "nativeSrc": "15278:15:1", + "nodeType": "YulFunctionCall", + "src": "15278:15:1" + }, + "nativeSrc": "15278:15:1", + "nodeType": "YulExpressionStatement", + "src": "15278:15:1" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "15119:180:1", + "nodeType": "YulFunctionDefinition", + "src": "15119:180:1" + }, + { + "body": { + "nativeSrc": "15356:269:1", + "nodeType": "YulBlock", + "src": "15356:269:1", + "statements": [ + { + "nativeSrc": "15366:22:1", + "nodeType": "YulAssignment", + "src": "15366:22:1", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "15380:4:1", + "nodeType": "YulIdentifier", + "src": "15380:4:1" + }, + { + "kind": "number", + "nativeSrc": "15386:1:1", + "nodeType": "YulLiteral", + "src": "15386:1:1", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "15376:3:1", + "nodeType": "YulIdentifier", + "src": "15376:3:1" + }, + "nativeSrc": "15376:12:1", + "nodeType": "YulFunctionCall", + "src": "15376:12:1" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "15366:6:1", + "nodeType": "YulIdentifier", + "src": "15366:6:1" + } + ] + }, + { + "nativeSrc": "15397:38:1", + "nodeType": "YulVariableDeclaration", + "src": "15397:38:1", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "15427:4:1", + "nodeType": "YulIdentifier", + "src": "15427:4:1" + }, + { + "kind": "number", + "nativeSrc": "15433:1:1", + "nodeType": "YulLiteral", + "src": "15433:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "15423:3:1", + "nodeType": "YulIdentifier", + "src": "15423:3:1" + }, + "nativeSrc": "15423:12:1", + "nodeType": "YulFunctionCall", + "src": "15423:12:1" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "15401:18:1", + "nodeType": "YulTypedName", + "src": "15401:18:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15474:51:1", + "nodeType": "YulBlock", + "src": "15474:51:1", + "statements": [ + { + "nativeSrc": "15488:27:1", + "nodeType": "YulAssignment", + "src": "15488:27:1", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "15502:6:1", + "nodeType": "YulIdentifier", + "src": "15502:6:1" + }, + { + "kind": "number", + "nativeSrc": "15510:4:1", + "nodeType": "YulLiteral", + "src": "15510:4:1", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "15498:3:1", + "nodeType": "YulIdentifier", + "src": "15498:3:1" + }, + "nativeSrc": "15498:17:1", + "nodeType": "YulFunctionCall", + "src": "15498:17:1" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "15488:6:1", + "nodeType": "YulIdentifier", + "src": "15488:6:1" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "15454:18:1", + "nodeType": "YulIdentifier", + "src": "15454:18:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "15447:6:1", + "nodeType": "YulIdentifier", + "src": "15447:6:1" + }, + "nativeSrc": "15447:26:1", + "nodeType": "YulFunctionCall", + "src": "15447:26:1" + }, + "nativeSrc": "15444:81:1", + "nodeType": "YulIf", + "src": "15444:81:1" + }, + { + "body": { + "nativeSrc": "15577:42:1", + "nodeType": "YulBlock", + "src": "15577:42:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "15591:16:1", + "nodeType": "YulIdentifier", + "src": "15591:16:1" + }, + "nativeSrc": "15591:18:1", + "nodeType": "YulFunctionCall", + "src": "15591:18:1" + }, + "nativeSrc": "15591:18:1", + "nodeType": "YulExpressionStatement", + "src": "15591:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "15541:18:1", + "nodeType": "YulIdentifier", + "src": "15541:18:1" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "15564:6:1", + "nodeType": "YulIdentifier", + "src": "15564:6:1" + }, + { + "kind": "number", + "nativeSrc": "15572:2:1", + "nodeType": "YulLiteral", + "src": "15572:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "15561:2:1", + "nodeType": "YulIdentifier", + "src": "15561:2:1" + }, + "nativeSrc": "15561:14:1", + "nodeType": "YulFunctionCall", + "src": "15561:14:1" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "15538:2:1", + "nodeType": "YulIdentifier", + "src": "15538:2:1" + }, + "nativeSrc": "15538:38:1", + "nodeType": "YulFunctionCall", + "src": "15538:38:1" + }, + "nativeSrc": "15535:84:1", + "nodeType": "YulIf", + "src": "15535:84:1" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "15305:320:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "15340:4:1", + "nodeType": "YulTypedName", + "src": "15340:4:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "15349:6:1", + "nodeType": "YulTypedName", + "src": "15349:6:1", + "type": "" + } + ], + "src": "15305:320:1" + }, + { + "body": { + "nativeSrc": "15675:147:1", + "nodeType": "YulBlock", + "src": "15675:147:1", + "statements": [ + { + "nativeSrc": "15685:25:1", + "nodeType": "YulAssignment", + "src": "15685:25:1", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "15708:1:1", + "nodeType": "YulIdentifier", + "src": "15708:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "15690:17:1", + "nodeType": "YulIdentifier", + "src": "15690:17:1" + }, + "nativeSrc": "15690:20:1", + "nodeType": "YulFunctionCall", + "src": "15690:20:1" + }, + "variableNames": [ + { + "name": "x", + "nativeSrc": "15685:1:1", + "nodeType": "YulIdentifier", + "src": "15685:1:1" + } + ] + }, + { + "nativeSrc": "15719:25:1", + "nodeType": "YulAssignment", + "src": "15719:25:1", + "value": { + "arguments": [ + { + "name": "y", + "nativeSrc": "15742:1:1", + "nodeType": "YulIdentifier", + "src": "15742:1:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "15724:17:1", + "nodeType": "YulIdentifier", + "src": "15724:17:1" + }, + "nativeSrc": "15724:20:1", + "nodeType": "YulFunctionCall", + "src": "15724:20:1" + }, + "variableNames": [ + { + "name": "y", + "nativeSrc": "15719:1:1", + "nodeType": "YulIdentifier", + "src": "15719:1:1" + } + ] + }, + { + "nativeSrc": "15753:16:1", + "nodeType": "YulAssignment", + "src": "15753:16:1", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "15764:1:1", + "nodeType": "YulIdentifier", + "src": "15764:1:1" + }, + { + "name": "y", + "nativeSrc": "15767:1:1", + "nodeType": "YulIdentifier", + "src": "15767:1:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15760:3:1", + "nodeType": "YulIdentifier", + "src": "15760:3:1" + }, + "nativeSrc": "15760:9:1", + "nodeType": "YulFunctionCall", + "src": "15760:9:1" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "15753:3:1", + "nodeType": "YulIdentifier", + "src": "15753:3:1" + } + ] + }, + { + "body": { + "nativeSrc": "15793:22:1", + "nodeType": "YulBlock", + "src": "15793:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "15795:16:1", + "nodeType": "YulIdentifier", + "src": "15795:16:1" + }, + "nativeSrc": "15795:18:1", + "nodeType": "YulFunctionCall", + "src": "15795:18:1" + }, + "nativeSrc": "15795:18:1", + "nodeType": "YulExpressionStatement", + "src": "15795:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "15785:1:1", + "nodeType": "YulIdentifier", + "src": "15785:1:1" + }, + { + "name": "sum", + "nativeSrc": "15788:3:1", + "nodeType": "YulIdentifier", + "src": "15788:3:1" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15782:2:1", + "nodeType": "YulIdentifier", + "src": "15782:2:1" + }, + "nativeSrc": "15782:10:1", + "nodeType": "YulFunctionCall", + "src": "15782:10:1" + }, + "nativeSrc": "15779:36:1", + "nodeType": "YulIf", + "src": "15779:36:1" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "15631:191:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "15662:1:1", + "nodeType": "YulTypedName", + "src": "15662:1:1", + "type": "" + }, + { + "name": "y", + "nativeSrc": "15665:1:1", + "nodeType": "YulTypedName", + "src": "15665:1:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "15671:3:1", + "nodeType": "YulTypedName", + "src": "15671:3:1", + "type": "" + } + ], + "src": "15631:191:1" + }, + { + "body": { + "nativeSrc": "15881:87:1", + "nodeType": "YulBlock", + "src": "15881:87:1", + "statements": [ + { + "nativeSrc": "15891:11:1", + "nodeType": "YulAssignment", + "src": "15891:11:1", + "value": { + "name": "ptr", + "nativeSrc": "15899:3:1", + "nodeType": "YulIdentifier", + "src": "15899:3:1" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "15891:4:1", + "nodeType": "YulIdentifier", + "src": "15891:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15919:1:1", + "nodeType": "YulLiteral", + "src": "15919:1:1", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "15922:3:1", + "nodeType": "YulIdentifier", + "src": "15922:3:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15912:6:1", + "nodeType": "YulIdentifier", + "src": "15912:6:1" + }, + "nativeSrc": "15912:14:1", + "nodeType": "YulFunctionCall", + "src": "15912:14:1" + }, + "nativeSrc": "15912:14:1", + "nodeType": "YulExpressionStatement", + "src": "15912:14:1" + }, + { + "nativeSrc": "15935:26:1", + "nodeType": "YulAssignment", + "src": "15935:26:1", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15953:1:1", + "nodeType": "YulLiteral", + "src": "15953:1:1", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15956:4:1", + "nodeType": "YulLiteral", + "src": "15956:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "15943:9:1", + "nodeType": "YulIdentifier", + "src": "15943:9:1" + }, + "nativeSrc": "15943:18:1", + "nodeType": "YulFunctionCall", + "src": "15943:18:1" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "15935:4:1", + "nodeType": "YulIdentifier", + "src": "15935:4:1" + } + ] + } + ] + }, + "name": "array_dataslot_t_bytes_storage", + "nativeSrc": "15828:140:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "15868:3:1", + "nodeType": "YulTypedName", + "src": "15868:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "15876:4:1", + "nodeType": "YulTypedName", + "src": "15876:4:1", + "type": "" + } + ], + "src": "15828:140:1" + }, + { + "body": { + "nativeSrc": "16018:49:1", + "nodeType": "YulBlock", + "src": "16018:49:1", + "statements": [ + { + "nativeSrc": "16028:33:1", + "nodeType": "YulAssignment", + "src": "16028:33:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "16046:5:1", + "nodeType": "YulIdentifier", + "src": "16046:5:1" + }, + { + "kind": "number", + "nativeSrc": "16053:2:1", + "nodeType": "YulLiteral", + "src": "16053:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16042:3:1", + "nodeType": "YulIdentifier", + "src": "16042:3:1" + }, + "nativeSrc": "16042:14:1", + "nodeType": "YulFunctionCall", + "src": "16042:14:1" + }, + { + "kind": "number", + "nativeSrc": "16058:2:1", + "nodeType": "YulLiteral", + "src": "16058:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "16038:3:1", + "nodeType": "YulIdentifier", + "src": "16038:3:1" + }, + "nativeSrc": "16038:23:1", + "nodeType": "YulFunctionCall", + "src": "16038:23:1" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "16028:6:1", + "nodeType": "YulIdentifier", + "src": "16028:6:1" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "15974:93:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16001:5:1", + "nodeType": "YulTypedName", + "src": "16001:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "16011:6:1", + "nodeType": "YulTypedName", + "src": "16011:6:1", + "type": "" + } + ], + "src": "15974:93:1" + }, + { + "body": { + "nativeSrc": "16126:54:1", + "nodeType": "YulBlock", + "src": "16126:54:1", + "statements": [ + { + "nativeSrc": "16136:37:1", + "nodeType": "YulAssignment", + "src": "16136:37:1", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "16161:4:1", + "nodeType": "YulIdentifier", + "src": "16161:4:1" + }, + { + "name": "value", + "nativeSrc": "16167:5:1", + "nodeType": "YulIdentifier", + "src": "16167:5:1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16157:3:1", + "nodeType": "YulIdentifier", + "src": "16157:3:1" + }, + "nativeSrc": "16157:16:1", + "nodeType": "YulFunctionCall", + "src": "16157:16:1" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "16136:8:1", + "nodeType": "YulIdentifier", + "src": "16136:8:1" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "16073:107:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "16101:4:1", + "nodeType": "YulTypedName", + "src": "16101:4:1", + "type": "" + }, + { + "name": "value", + "nativeSrc": "16107:5:1", + "nodeType": "YulTypedName", + "src": "16107:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "16117:8:1", + "nodeType": "YulTypedName", + "src": "16117:8:1", + "type": "" + } + ], + "src": "16073:107:1" + }, + { + "body": { + "nativeSrc": "16262:317:1", + "nodeType": "YulBlock", + "src": "16262:317:1", + "statements": [ + { + "nativeSrc": "16272:35:1", + "nodeType": "YulVariableDeclaration", + "src": "16272:35:1", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nativeSrc": "16293:10:1", + "nodeType": "YulIdentifier", + "src": "16293:10:1" + }, + { + "kind": "number", + "nativeSrc": "16305:1:1", + "nodeType": "YulLiteral", + "src": "16305:1:1", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "16289:3:1", + "nodeType": "YulIdentifier", + "src": "16289:3:1" + }, + "nativeSrc": "16289:18:1", + "nodeType": "YulFunctionCall", + "src": "16289:18:1" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "16276:9:1", + "nodeType": "YulTypedName", + "src": "16276:9:1", + "type": "" + } + ] + }, + { + "nativeSrc": "16316:109:1", + "nodeType": "YulVariableDeclaration", + "src": "16316:109:1", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "16347:9:1", + "nodeType": "YulIdentifier", + "src": "16347:9:1" + }, + { + "kind": "number", + "nativeSrc": "16358:66:1", + "nodeType": "YulLiteral", + "src": "16358:66:1", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "16328:18:1", + "nodeType": "YulIdentifier", + "src": "16328:18:1" + }, + "nativeSrc": "16328:97:1", + "nodeType": "YulFunctionCall", + "src": "16328:97:1" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "16320:4:1", + "nodeType": "YulTypedName", + "src": "16320:4:1", + "type": "" + } + ] + }, + { + "nativeSrc": "16434:51:1", + "nodeType": "YulAssignment", + "src": "16434:51:1", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "16465:9:1", + "nodeType": "YulIdentifier", + "src": "16465:9:1" + }, + { + "name": "toInsert", + "nativeSrc": "16476:8:1", + "nodeType": "YulIdentifier", + "src": "16476:8:1" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "16446:18:1", + "nodeType": "YulIdentifier", + "src": "16446:18:1" + }, + "nativeSrc": "16446:39:1", + "nodeType": "YulFunctionCall", + "src": "16446:39:1" + }, + "variableNames": [ + { + "name": "toInsert", + "nativeSrc": "16434:8:1", + "nodeType": "YulIdentifier", + "src": "16434:8:1" + } + ] + }, + { + "nativeSrc": "16494:30:1", + "nodeType": "YulAssignment", + "src": "16494:30:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "16507:5:1", + "nodeType": "YulIdentifier", + "src": "16507:5:1" + }, + { + "arguments": [ + { + "name": "mask", + "nativeSrc": "16518:4:1", + "nodeType": "YulIdentifier", + "src": "16518:4:1" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "16514:3:1", + "nodeType": "YulIdentifier", + "src": "16514:3:1" + }, + "nativeSrc": "16514:9:1", + "nodeType": "YulFunctionCall", + "src": "16514:9:1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16503:3:1", + "nodeType": "YulIdentifier", + "src": "16503:3:1" + }, + "nativeSrc": "16503:21:1", + "nodeType": "YulFunctionCall", + "src": "16503:21:1" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "16494:5:1", + "nodeType": "YulIdentifier", + "src": "16494:5:1" + } + ] + }, + { + "nativeSrc": "16533:40:1", + "nodeType": "YulAssignment", + "src": "16533:40:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "16546:5:1", + "nodeType": "YulIdentifier", + "src": "16546:5:1" + }, + { + "arguments": [ + { + "name": "toInsert", + "nativeSrc": "16557:8:1", + "nodeType": "YulIdentifier", + "src": "16557:8:1" + }, + { + "name": "mask", + "nativeSrc": "16567:4:1", + "nodeType": "YulIdentifier", + "src": "16567:4:1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16553:3:1", + "nodeType": "YulIdentifier", + "src": "16553:3:1" + }, + "nativeSrc": "16553:19:1", + "nodeType": "YulFunctionCall", + "src": "16553:19:1" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "16543:2:1", + "nodeType": "YulIdentifier", + "src": "16543:2:1" + }, + "nativeSrc": "16543:30:1", + "nodeType": "YulFunctionCall", + "src": "16543:30:1" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "16533:6:1", + "nodeType": "YulIdentifier", + "src": "16533:6:1" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "16186:393:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16223:5:1", + "nodeType": "YulTypedName", + "src": "16223:5:1", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "16230:10:1", + "nodeType": "YulTypedName", + "src": "16230:10:1", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "16242:8:1", + "nodeType": "YulTypedName", + "src": "16242:8:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "16255:6:1", + "nodeType": "YulTypedName", + "src": "16255:6:1", + "type": "" + } + ], + "src": "16186:393:1" + }, + { + "body": { + "nativeSrc": "16617:28:1", + "nodeType": "YulBlock", + "src": "16617:28:1", + "statements": [ + { + "nativeSrc": "16627:12:1", + "nodeType": "YulAssignment", + "src": "16627:12:1", + "value": { + "name": "value", + "nativeSrc": "16634:5:1", + "nodeType": "YulIdentifier", + "src": "16634:5:1" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "16627:3:1", + "nodeType": "YulIdentifier", + "src": "16627:3:1" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "16585:60:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16603:5:1", + "nodeType": "YulTypedName", + "src": "16603:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "16613:3:1", + "nodeType": "YulTypedName", + "src": "16613:3:1", + "type": "" + } + ], + "src": "16585:60:1" + }, + { + "body": { + "nativeSrc": "16711:82:1", + "nodeType": "YulBlock", + "src": "16711:82:1", + "statements": [ + { + "nativeSrc": "16721:66:1", + "nodeType": "YulAssignment", + "src": "16721:66:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "16779:5:1", + "nodeType": "YulIdentifier", + "src": "16779:5:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16761:17:1", + "nodeType": "YulIdentifier", + "src": "16761:17:1" + }, + "nativeSrc": "16761:24:1", + "nodeType": "YulFunctionCall", + "src": "16761:24:1" + } + ], + "functionName": { + "name": "identity", + "nativeSrc": "16752:8:1", + "nodeType": "YulIdentifier", + "src": "16752:8:1" + }, + "nativeSrc": "16752:34:1", + "nodeType": "YulFunctionCall", + "src": "16752:34:1" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "16734:17:1", + "nodeType": "YulIdentifier", + "src": "16734:17:1" + }, + "nativeSrc": "16734:53:1", + "nodeType": "YulFunctionCall", + "src": "16734:53:1" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "16721:9:1", + "nodeType": "YulIdentifier", + "src": "16721:9:1" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "16651:142:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16691:5:1", + "nodeType": "YulTypedName", + "src": "16691:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "16701:9:1", + "nodeType": "YulTypedName", + "src": "16701:9:1", + "type": "" + } + ], + "src": "16651:142:1" + }, + { + "body": { + "nativeSrc": "16846:28:1", + "nodeType": "YulBlock", + "src": "16846:28:1", + "statements": [ + { + "nativeSrc": "16856:12:1", + "nodeType": "YulAssignment", + "src": "16856:12:1", + "value": { + "name": "value", + "nativeSrc": "16863:5:1", + "nodeType": "YulIdentifier", + "src": "16863:5:1" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "16856:3:1", + "nodeType": "YulIdentifier", + "src": "16856:3:1" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "16799:75:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "16832:5:1", + "nodeType": "YulTypedName", + "src": "16832:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "16842:3:1", + "nodeType": "YulTypedName", + "src": "16842:3:1", + "type": "" + } + ], + "src": "16799:75:1" + }, + { + "body": { + "nativeSrc": "16956:193:1", + "nodeType": "YulBlock", + "src": "16956:193:1", + "statements": [ + { + "nativeSrc": "16966:63:1", + "nodeType": "YulVariableDeclaration", + "src": "16966:63:1", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "17021:7:1", + "nodeType": "YulIdentifier", + "src": "17021:7:1" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "16990:30:1", + "nodeType": "YulIdentifier", + "src": "16990:30:1" + }, + "nativeSrc": "16990:39:1", + "nodeType": "YulFunctionCall", + "src": "16990:39:1" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "16970:16:1", + "nodeType": "YulTypedName", + "src": "16970:16:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "17045:4:1", + "nodeType": "YulIdentifier", + "src": "17045:4:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "17085:4:1", + "nodeType": "YulIdentifier", + "src": "17085:4:1" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "17079:5:1", + "nodeType": "YulIdentifier", + "src": "17079:5:1" + }, + "nativeSrc": "17079:11:1", + "nodeType": "YulFunctionCall", + "src": "17079:11:1" + }, + { + "name": "offset", + "nativeSrc": "17092:6:1", + "nodeType": "YulIdentifier", + "src": "17092:6:1" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "17124:16:1", + "nodeType": "YulIdentifier", + "src": "17124:16:1" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "17100:23:1", + "nodeType": "YulIdentifier", + "src": "17100:23:1" + }, + "nativeSrc": "17100:41:1", + "nodeType": "YulFunctionCall", + "src": "17100:41:1" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nativeSrc": "17051:27:1", + "nodeType": "YulIdentifier", + "src": "17051:27:1" + }, + "nativeSrc": "17051:91:1", + "nodeType": "YulFunctionCall", + "src": "17051:91:1" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "17038:6:1", + "nodeType": "YulIdentifier", + "src": "17038:6:1" + }, + "nativeSrc": "17038:105:1", + "nodeType": "YulFunctionCall", + "src": "17038:105:1" + }, + "nativeSrc": "17038:105:1", + "nodeType": "YulExpressionStatement", + "src": "17038:105:1" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "16880:269:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "16933:4:1", + "nodeType": "YulTypedName", + "src": "16933:4:1", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "16939:6:1", + "nodeType": "YulTypedName", + "src": "16939:6:1", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "16947:7:1", + "nodeType": "YulTypedName", + "src": "16947:7:1", + "type": "" + } + ], + "src": "16880:269:1" + }, + { + "body": { + "nativeSrc": "17204:24:1", + "nodeType": "YulBlock", + "src": "17204:24:1", + "statements": [ + { + "nativeSrc": "17214:8:1", + "nodeType": "YulAssignment", + "src": "17214:8:1", + "value": { + "kind": "number", + "nativeSrc": "17221:1:1", + "nodeType": "YulLiteral", + "src": "17221:1:1", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "17214:3:1", + "nodeType": "YulIdentifier", + "src": "17214:3:1" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "17155:73:1", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "17200:3:1", + "nodeType": "YulTypedName", + "src": "17200:3:1", + "type": "" + } + ], + "src": "17155:73:1" + }, + { + "body": { + "nativeSrc": "17287:136:1", + "nodeType": "YulBlock", + "src": "17287:136:1", + "statements": [ + { + "nativeSrc": "17297:46:1", + "nodeType": "YulVariableDeclaration", + "src": "17297:46:1", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "17311:30:1", + "nodeType": "YulIdentifier", + "src": "17311:30:1" + }, + "nativeSrc": "17311:32:1", + "nodeType": "YulFunctionCall", + "src": "17311:32:1" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "17301:6:1", + "nodeType": "YulTypedName", + "src": "17301:6:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "17396:4:1", + "nodeType": "YulIdentifier", + "src": "17396:4:1" + }, + { + "name": "offset", + "nativeSrc": "17402:6:1", + "nodeType": "YulIdentifier", + "src": "17402:6:1" + }, + { + "name": "zero_0", + "nativeSrc": "17410:6:1", + "nodeType": "YulIdentifier", + "src": "17410:6:1" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "17352:43:1", + "nodeType": "YulIdentifier", + "src": "17352:43:1" + }, + "nativeSrc": "17352:65:1", + "nodeType": "YulFunctionCall", + "src": "17352:65:1" + }, + "nativeSrc": "17352:65:1", + "nodeType": "YulExpressionStatement", + "src": "17352:65:1" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "17234:189:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "17273:4:1", + "nodeType": "YulTypedName", + "src": "17273:4:1", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "17279:6:1", + "nodeType": "YulTypedName", + "src": "17279:6:1", + "type": "" + } + ], + "src": "17234:189:1" + }, + { + "body": { + "nativeSrc": "17479:136:1", + "nodeType": "YulBlock", + "src": "17479:136:1", + "statements": [ + { + "body": { + "nativeSrc": "17546:63:1", + "nodeType": "YulBlock", + "src": "17546:63:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17590:5:1", + "nodeType": "YulIdentifier", + "src": "17590:5:1" + }, + { + "kind": "number", + "nativeSrc": "17597:1:1", + "nodeType": "YulLiteral", + "src": "17597:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "17560:29:1", + "nodeType": "YulIdentifier", + "src": "17560:29:1" + }, + "nativeSrc": "17560:39:1", + "nodeType": "YulFunctionCall", + "src": "17560:39:1" + }, + "nativeSrc": "17560:39:1", + "nodeType": "YulExpressionStatement", + "src": "17560:39:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17499:5:1", + "nodeType": "YulIdentifier", + "src": "17499:5:1" + }, + { + "name": "end", + "nativeSrc": "17506:3:1", + "nodeType": "YulIdentifier", + "src": "17506:3:1" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17496:2:1", + "nodeType": "YulIdentifier", + "src": "17496:2:1" + }, + "nativeSrc": "17496:14:1", + "nodeType": "YulFunctionCall", + "src": "17496:14:1" + }, + "nativeSrc": "17489:120:1", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "17511:26:1", + "nodeType": "YulBlock", + "src": "17511:26:1", + "statements": [ + { + "nativeSrc": "17513:22:1", + "nodeType": "YulAssignment", + "src": "17513:22:1", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17526:5:1", + "nodeType": "YulIdentifier", + "src": "17526:5:1" + }, + { + "kind": "number", + "nativeSrc": "17533:1:1", + "nodeType": "YulLiteral", + "src": "17533:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17522:3:1", + "nodeType": "YulIdentifier", + "src": "17522:3:1" + }, + "nativeSrc": "17522:13:1", + "nodeType": "YulFunctionCall", + "src": "17522:13:1" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "17513:5:1", + "nodeType": "YulIdentifier", + "src": "17513:5:1" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "17493:2:1", + "nodeType": "YulBlock", + "src": "17493:2:1", + "statements": [] + }, + "src": "17489:120:1" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "17429:186:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "17467:5:1", + "nodeType": "YulTypedName", + "src": "17467:5:1", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17474:3:1", + "nodeType": "YulTypedName", + "src": "17474:3:1", + "type": "" + } + ], + "src": "17429:186:1" + }, + { + "body": { + "nativeSrc": "17699:463:1", + "nodeType": "YulBlock", + "src": "17699:463:1", + "statements": [ + { + "body": { + "nativeSrc": "17725:430:1", + "nodeType": "YulBlock", + "src": "17725:430:1", + "statements": [ + { + "nativeSrc": "17739:53:1", + "nodeType": "YulVariableDeclaration", + "src": "17739:53:1", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "17786:5:1", + "nodeType": "YulIdentifier", + "src": "17786:5:1" + } + ], + "functionName": { + "name": "array_dataslot_t_bytes_storage", + "nativeSrc": "17755:30:1", + "nodeType": "YulIdentifier", + "src": "17755:30:1" + }, + "nativeSrc": "17755:37:1", + "nodeType": "YulFunctionCall", + "src": "17755:37:1" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "17743:8:1", + "nodeType": "YulTypedName", + "src": "17743:8:1", + "type": "" + } + ] + }, + { + "nativeSrc": "17805:63:1", + "nodeType": "YulVariableDeclaration", + "src": "17805:63:1", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "17828:8:1", + "nodeType": "YulIdentifier", + "src": "17828:8:1" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "17856:10:1", + "nodeType": "YulIdentifier", + "src": "17856:10:1" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "17838:17:1", + "nodeType": "YulIdentifier", + "src": "17838:17:1" + }, + "nativeSrc": "17838:29:1", + "nodeType": "YulFunctionCall", + "src": "17838:29:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17824:3:1", + "nodeType": "YulIdentifier", + "src": "17824:3:1" + }, + "nativeSrc": "17824:44:1", + "nodeType": "YulFunctionCall", + "src": "17824:44:1" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "17809:11:1", + "nodeType": "YulTypedName", + "src": "17809:11:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18025:27:1", + "nodeType": "YulBlock", + "src": "18025:27:1", + "statements": [ + { + "nativeSrc": "18027:23:1", + "nodeType": "YulAssignment", + "src": "18027:23:1", + "value": { + "name": "dataArea", + "nativeSrc": "18042:8:1", + "nodeType": "YulIdentifier", + "src": "18042:8:1" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "18027:11:1", + "nodeType": "YulIdentifier", + "src": "18027:11:1" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "18009:10:1", + "nodeType": "YulIdentifier", + "src": "18009:10:1" + }, + { + "kind": "number", + "nativeSrc": "18021:2:1", + "nodeType": "YulLiteral", + "src": "18021:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18006:2:1", + "nodeType": "YulIdentifier", + "src": "18006:2:1" + }, + "nativeSrc": "18006:18:1", + "nodeType": "YulFunctionCall", + "src": "18006:18:1" + }, + "nativeSrc": "18003:49:1", + "nodeType": "YulIf", + "src": "18003:49:1" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "18094:11:1", + "nodeType": "YulIdentifier", + "src": "18094:11:1" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "18111:8:1", + "nodeType": "YulIdentifier", + "src": "18111:8:1" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "18139:3:1", + "nodeType": "YulIdentifier", + "src": "18139:3:1" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "18121:17:1", + "nodeType": "YulIdentifier", + "src": "18121:17:1" + }, + "nativeSrc": "18121:22:1", + "nodeType": "YulFunctionCall", + "src": "18121:22:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18107:3:1", + "nodeType": "YulIdentifier", + "src": "18107:3:1" + }, + "nativeSrc": "18107:37:1", + "nodeType": "YulFunctionCall", + "src": "18107:37:1" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "18065:28:1", + "nodeType": "YulIdentifier", + "src": "18065:28:1" + }, + "nativeSrc": "18065:80:1", + "nodeType": "YulFunctionCall", + "src": "18065:80:1" + }, + "nativeSrc": "18065:80:1", + "nodeType": "YulExpressionStatement", + "src": "18065:80:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "17716:3:1", + "nodeType": "YulIdentifier", + "src": "17716:3:1" + }, + { + "kind": "number", + "nativeSrc": "17721:2:1", + "nodeType": "YulLiteral", + "src": "17721:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17713:2:1", + "nodeType": "YulIdentifier", + "src": "17713:2:1" + }, + "nativeSrc": "17713:11:1", + "nodeType": "YulFunctionCall", + "src": "17713:11:1" + }, + "nativeSrc": "17710:445:1", + "nodeType": "YulIf", + "src": "17710:445:1" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_bytes_storage", + "nativeSrc": "17621:541:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "17675:5:1", + "nodeType": "YulTypedName", + "src": "17675:5:1", + "type": "" + }, + { + "name": "len", + "nativeSrc": "17682:3:1", + "nodeType": "YulTypedName", + "src": "17682:3:1", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "17687:10:1", + "nodeType": "YulTypedName", + "src": "17687:10:1", + "type": "" + } + ], + "src": "17621:541:1" + }, + { + "body": { + "nativeSrc": "18231:54:1", + "nodeType": "YulBlock", + "src": "18231:54:1", + "statements": [ + { + "nativeSrc": "18241:37:1", + "nodeType": "YulAssignment", + "src": "18241:37:1", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "18266:4:1", + "nodeType": "YulIdentifier", + "src": "18266:4:1" + }, + { + "name": "value", + "nativeSrc": "18272:5:1", + "nodeType": "YulIdentifier", + "src": "18272:5:1" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "18262:3:1", + "nodeType": "YulIdentifier", + "src": "18262:3:1" + }, + "nativeSrc": "18262:16:1", + "nodeType": "YulFunctionCall", + "src": "18262:16:1" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "18241:8:1", + "nodeType": "YulIdentifier", + "src": "18241:8:1" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "18168:117:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "18206:4:1", + "nodeType": "YulTypedName", + "src": "18206:4:1", + "type": "" + }, + { + "name": "value", + "nativeSrc": "18212:5:1", + "nodeType": "YulTypedName", + "src": "18212:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "18222:8:1", + "nodeType": "YulTypedName", + "src": "18222:8:1", + "type": "" + } + ], + "src": "18168:117:1" + }, + { + "body": { + "nativeSrc": "18342:118:1", + "nodeType": "YulBlock", + "src": "18342:118:1", + "statements": [ + { + "nativeSrc": "18352:68:1", + "nodeType": "YulVariableDeclaration", + "src": "18352:68:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18401:1:1", + "nodeType": "YulLiteral", + "src": "18401:1:1", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "18404:5:1", + "nodeType": "YulIdentifier", + "src": "18404:5:1" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "18397:3:1", + "nodeType": "YulIdentifier", + "src": "18397:3:1" + }, + "nativeSrc": "18397:13:1", + "nodeType": "YulFunctionCall", + "src": "18397:13:1" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18416:1:1", + "nodeType": "YulLiteral", + "src": "18416:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18412:3:1", + "nodeType": "YulIdentifier", + "src": "18412:3:1" + }, + "nativeSrc": "18412:6:1", + "nodeType": "YulFunctionCall", + "src": "18412:6:1" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "18368:28:1", + "nodeType": "YulIdentifier", + "src": "18368:28:1" + }, + "nativeSrc": "18368:51:1", + "nodeType": "YulFunctionCall", + "src": "18368:51:1" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18364:3:1", + "nodeType": "YulIdentifier", + "src": "18364:3:1" + }, + "nativeSrc": "18364:56:1", + "nodeType": "YulFunctionCall", + "src": "18364:56:1" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "18356:4:1", + "nodeType": "YulTypedName", + "src": "18356:4:1", + "type": "" + } + ] + }, + { + "nativeSrc": "18429:25:1", + "nodeType": "YulAssignment", + "src": "18429:25:1", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18443:4:1", + "nodeType": "YulIdentifier", + "src": "18443:4:1" + }, + { + "name": "mask", + "nativeSrc": "18449:4:1", + "nodeType": "YulIdentifier", + "src": "18449:4:1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18439:3:1", + "nodeType": "YulIdentifier", + "src": "18439:3:1" + }, + "nativeSrc": "18439:15:1", + "nodeType": "YulFunctionCall", + "src": "18439:15:1" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "18429:6:1", + "nodeType": "YulIdentifier", + "src": "18429:6:1" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "18291:169:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "18319:4:1", + "nodeType": "YulTypedName", + "src": "18319:4:1", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "18325:5:1", + "nodeType": "YulTypedName", + "src": "18325:5:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "18335:6:1", + "nodeType": "YulTypedName", + "src": "18335:6:1", + "type": "" + } + ], + "src": "18291:169:1" + }, + { + "body": { + "nativeSrc": "18546:214:1", + "nodeType": "YulBlock", + "src": "18546:214:1", + "statements": [ + { + "nativeSrc": "18679:37:1", + "nodeType": "YulAssignment", + "src": "18679:37:1", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18706:4:1", + "nodeType": "YulIdentifier", + "src": "18706:4:1" + }, + { + "name": "len", + "nativeSrc": "18712:3:1", + "nodeType": "YulIdentifier", + "src": "18712:3:1" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "18687:18:1", + "nodeType": "YulIdentifier", + "src": "18687:18:1" + }, + "nativeSrc": "18687:29:1", + "nodeType": "YulFunctionCall", + "src": "18687:29:1" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "18679:4:1", + "nodeType": "YulIdentifier", + "src": "18679:4:1" + } + ] + }, + { + "nativeSrc": "18725:29:1", + "nodeType": "YulAssignment", + "src": "18725:29:1", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "18736:4:1", + "nodeType": "YulIdentifier", + "src": "18736:4:1" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18746:1:1", + "nodeType": "YulLiteral", + "src": "18746:1:1", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "18749:3:1", + "nodeType": "YulIdentifier", + "src": "18749:3:1" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "18742:3:1", + "nodeType": "YulIdentifier", + "src": "18742:3:1" + }, + "nativeSrc": "18742:11:1", + "nodeType": "YulFunctionCall", + "src": "18742:11:1" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "18733:2:1", + "nodeType": "YulIdentifier", + "src": "18733:2:1" + }, + "nativeSrc": "18733:21:1", + "nodeType": "YulFunctionCall", + "src": "18733:21:1" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "18725:4:1", + "nodeType": "YulIdentifier", + "src": "18725:4:1" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "18465:295:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "18527:4:1", + "nodeType": "YulTypedName", + "src": "18527:4:1", + "type": "" + }, + { + "name": "len", + "nativeSrc": "18533:3:1", + "nodeType": "YulTypedName", + "src": "18533:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "18541:4:1", + "nodeType": "YulTypedName", + "src": "18541:4:1", + "type": "" + } + ], + "src": "18465:295:1" + }, + { + "body": { + "nativeSrc": "18855:1300:1", + "nodeType": "YulBlock", + "src": "18855:1300:1", + "statements": [ + { + "nativeSrc": "18866:50:1", + "nodeType": "YulVariableDeclaration", + "src": "18866:50:1", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "18912:3:1", + "nodeType": "YulIdentifier", + "src": "18912:3:1" + } + ], + "functionName": { + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "18880:31:1", + "nodeType": "YulIdentifier", + "src": "18880:31:1" + }, + "nativeSrc": "18880:36:1", + "nodeType": "YulFunctionCall", + "src": "18880:36:1" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "18870:6:1", + "nodeType": "YulTypedName", + "src": "18870:6:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19001:22:1", + "nodeType": "YulBlock", + "src": "19001:22:1", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "19003:16:1", + "nodeType": "YulIdentifier", + "src": "19003:16:1" + }, + "nativeSrc": "19003:18:1", + "nodeType": "YulFunctionCall", + "src": "19003:18:1" + }, + "nativeSrc": "19003:18:1", + "nodeType": "YulExpressionStatement", + "src": "19003:18:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "18973:6:1", + "nodeType": "YulIdentifier", + "src": "18973:6:1" + }, + { + "kind": "number", + "nativeSrc": "18981:18:1", + "nodeType": "YulLiteral", + "src": "18981:18:1", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18970:2:1", + "nodeType": "YulIdentifier", + "src": "18970:2:1" + }, + "nativeSrc": "18970:30:1", + "nodeType": "YulFunctionCall", + "src": "18970:30:1" + }, + "nativeSrc": "18967:56:1", + "nodeType": "YulIf", + "src": "18967:56:1" + }, + { + "nativeSrc": "19033:52:1", + "nodeType": "YulVariableDeclaration", + "src": "19033:52:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19079:4:1", + "nodeType": "YulIdentifier", + "src": "19079:4:1" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "19073:5:1", + "nodeType": "YulIdentifier", + "src": "19073:5:1" + }, + "nativeSrc": "19073:11:1", + "nodeType": "YulFunctionCall", + "src": "19073:11:1" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "19047:25:1", + "nodeType": "YulIdentifier", + "src": "19047:25:1" + }, + "nativeSrc": "19047:38:1", + "nodeType": "YulFunctionCall", + "src": "19047:38:1" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "19037:6:1", + "nodeType": "YulTypedName", + "src": "19037:6:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19177:4:1", + "nodeType": "YulIdentifier", + "src": "19177:4:1" + }, + { + "name": "oldLen", + "nativeSrc": "19183:6:1", + "nodeType": "YulIdentifier", + "src": "19183:6:1" + }, + { + "name": "newLen", + "nativeSrc": "19191:6:1", + "nodeType": "YulIdentifier", + "src": "19191:6:1" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_bytes_storage", + "nativeSrc": "19132:44:1", + "nodeType": "YulIdentifier", + "src": "19132:44:1" + }, + "nativeSrc": "19132:66:1", + "nodeType": "YulFunctionCall", + "src": "19132:66:1" + }, + "nativeSrc": "19132:66:1", + "nodeType": "YulExpressionStatement", + "src": "19132:66:1" + }, + { + "nativeSrc": "19208:18:1", + "nodeType": "YulVariableDeclaration", + "src": "19208:18:1", + "value": { + "kind": "number", + "nativeSrc": "19225:1:1", + "nodeType": "YulLiteral", + "src": "19225:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "19212:9:1", + "nodeType": "YulTypedName", + "src": "19212:9:1", + "type": "" + } + ] + }, + { + "nativeSrc": "19236:17:1", + "nodeType": "YulAssignment", + "src": "19236:17:1", + "value": { + "kind": "number", + "nativeSrc": "19249:4:1", + "nodeType": "YulLiteral", + "src": "19249:4:1", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "19236:9:1", + "nodeType": "YulIdentifier", + "src": "19236:9:1" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "19300:610:1", + "nodeType": "YulBlock", + "src": "19300:610:1", + "statements": [ + { + "nativeSrc": "19314:37:1", + "nodeType": "YulVariableDeclaration", + "src": "19314:37:1", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19333:6:1", + "nodeType": "YulIdentifier", + "src": "19333:6:1" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19345:4:1", + "nodeType": "YulLiteral", + "src": "19345:4:1", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19341:3:1", + "nodeType": "YulIdentifier", + "src": "19341:3:1" + }, + "nativeSrc": "19341:9:1", + "nodeType": "YulFunctionCall", + "src": "19341:9:1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19329:3:1", + "nodeType": "YulIdentifier", + "src": "19329:3:1" + }, + "nativeSrc": "19329:22:1", + "nodeType": "YulFunctionCall", + "src": "19329:22:1" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "19318:7:1", + "nodeType": "YulTypedName", + "src": "19318:7:1", + "type": "" + } + ] + }, + { + "nativeSrc": "19365:50:1", + "nodeType": "YulVariableDeclaration", + "src": "19365:50:1", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19410:4:1", + "nodeType": "YulIdentifier", + "src": "19410:4:1" + } + ], + "functionName": { + "name": "array_dataslot_t_bytes_storage", + "nativeSrc": "19379:30:1", + "nodeType": "YulIdentifier", + "src": "19379:30:1" + }, + "nativeSrc": "19379:36:1", + "nodeType": "YulFunctionCall", + "src": "19379:36:1" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "19369:6:1", + "nodeType": "YulTypedName", + "src": "19369:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "19428:10:1", + "nodeType": "YulVariableDeclaration", + "src": "19428:10:1", + "value": { + "kind": "number", + "nativeSrc": "19437:1:1", + "nodeType": "YulLiteral", + "src": "19437:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "19432:1:1", + "nodeType": "YulTypedName", + "src": "19432:1:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19496:163:1", + "nodeType": "YulBlock", + "src": "19496:163:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19521:6:1", + "nodeType": "YulIdentifier", + "src": "19521:6:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19539:3:1", + "nodeType": "YulIdentifier", + "src": "19539:3:1" + }, + { + "name": "srcOffset", + "nativeSrc": "19544:9:1", + "nodeType": "YulIdentifier", + "src": "19544:9:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19535:3:1", + "nodeType": "YulIdentifier", + "src": "19535:3:1" + }, + "nativeSrc": "19535:19:1", + "nodeType": "YulFunctionCall", + "src": "19535:19:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19529:5:1", + "nodeType": "YulIdentifier", + "src": "19529:5:1" + }, + "nativeSrc": "19529:26:1", + "nodeType": "YulFunctionCall", + "src": "19529:26:1" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19514:6:1", + "nodeType": "YulIdentifier", + "src": "19514:6:1" + }, + "nativeSrc": "19514:42:1", + "nodeType": "YulFunctionCall", + "src": "19514:42:1" + }, + "nativeSrc": "19514:42:1", + "nodeType": "YulExpressionStatement", + "src": "19514:42:1" + }, + { + "nativeSrc": "19573:24:1", + "nodeType": "YulAssignment", + "src": "19573:24:1", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19587:6:1", + "nodeType": "YulIdentifier", + "src": "19587:6:1" + }, + { + "kind": "number", + "nativeSrc": "19595:1:1", + "nodeType": "YulLiteral", + "src": "19595:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19583:3:1", + "nodeType": "YulIdentifier", + "src": "19583:3:1" + }, + "nativeSrc": "19583:14:1", + "nodeType": "YulFunctionCall", + "src": "19583:14:1" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "19573:6:1", + "nodeType": "YulIdentifier", + "src": "19573:6:1" + } + ] + }, + { + "nativeSrc": "19614:31:1", + "nodeType": "YulAssignment", + "src": "19614:31:1", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "19631:9:1", + "nodeType": "YulIdentifier", + "src": "19631:9:1" + }, + { + "kind": "number", + "nativeSrc": "19642:2:1", + "nodeType": "YulLiteral", + "src": "19642:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19627:3:1", + "nodeType": "YulIdentifier", + "src": "19627:3:1" + }, + "nativeSrc": "19627:18:1", + "nodeType": "YulFunctionCall", + "src": "19627:18:1" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "19614:9:1", + "nodeType": "YulIdentifier", + "src": "19614:9:1" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "19462:1:1", + "nodeType": "YulIdentifier", + "src": "19462:1:1" + }, + { + "name": "loopEnd", + "nativeSrc": "19465:7:1", + "nodeType": "YulIdentifier", + "src": "19465:7:1" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19459:2:1", + "nodeType": "YulIdentifier", + "src": "19459:2:1" + }, + "nativeSrc": "19459:14:1", + "nodeType": "YulFunctionCall", + "src": "19459:14:1" + }, + "nativeSrc": "19451:208:1", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "19474:21:1", + "nodeType": "YulBlock", + "src": "19474:21:1", + "statements": [ + { + "nativeSrc": "19476:17:1", + "nodeType": "YulAssignment", + "src": "19476:17:1", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "19485:1:1", + "nodeType": "YulIdentifier", + "src": "19485:1:1" + }, + { + "kind": "number", + "nativeSrc": "19488:4:1", + "nodeType": "YulLiteral", + "src": "19488:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19481:3:1", + "nodeType": "YulIdentifier", + "src": "19481:3:1" + }, + "nativeSrc": "19481:12:1", + "nodeType": "YulFunctionCall", + "src": "19481:12:1" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "19476:1:1", + "nodeType": "YulIdentifier", + "src": "19476:1:1" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "19455:3:1", + "nodeType": "YulBlock", + "src": "19455:3:1", + "statements": [] + }, + "src": "19451:208:1" + }, + { + "body": { + "nativeSrc": "19695:156:1", + "nodeType": "YulBlock", + "src": "19695:156:1", + "statements": [ + { + "nativeSrc": "19713:43:1", + "nodeType": "YulVariableDeclaration", + "src": "19713:43:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19740:3:1", + "nodeType": "YulIdentifier", + "src": "19740:3:1" + }, + { + "name": "srcOffset", + "nativeSrc": "19745:9:1", + "nodeType": "YulIdentifier", + "src": "19745:9:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19736:3:1", + "nodeType": "YulIdentifier", + "src": "19736:3:1" + }, + "nativeSrc": "19736:19:1", + "nodeType": "YulFunctionCall", + "src": "19736:19:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19730:5:1", + "nodeType": "YulIdentifier", + "src": "19730:5:1" + }, + "nativeSrc": "19730:26:1", + "nodeType": "YulFunctionCall", + "src": "19730:26:1" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "19717:9:1", + "nodeType": "YulTypedName", + "src": "19717:9:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "19780:6:1", + "nodeType": "YulIdentifier", + "src": "19780:6:1" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "19807:9:1", + "nodeType": "YulIdentifier", + "src": "19807:9:1" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19822:6:1", + "nodeType": "YulIdentifier", + "src": "19822:6:1" + }, + { + "kind": "number", + "nativeSrc": "19830:4:1", + "nodeType": "YulLiteral", + "src": "19830:4:1", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19818:3:1", + "nodeType": "YulIdentifier", + "src": "19818:3:1" + }, + "nativeSrc": "19818:17:1", + "nodeType": "YulFunctionCall", + "src": "19818:17:1" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "19788:18:1", + "nodeType": "YulIdentifier", + "src": "19788:18:1" + }, + "nativeSrc": "19788:48:1", + "nodeType": "YulFunctionCall", + "src": "19788:48:1" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19773:6:1", + "nodeType": "YulIdentifier", + "src": "19773:6:1" + }, + "nativeSrc": "19773:64:1", + "nodeType": "YulFunctionCall", + "src": "19773:64:1" + }, + "nativeSrc": "19773:64:1", + "nodeType": "YulExpressionStatement", + "src": "19773:64:1" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "19678:7:1", + "nodeType": "YulIdentifier", + "src": "19678:7:1" + }, + { + "name": "newLen", + "nativeSrc": "19687:6:1", + "nodeType": "YulIdentifier", + "src": "19687:6:1" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19675:2:1", + "nodeType": "YulIdentifier", + "src": "19675:2:1" + }, + "nativeSrc": "19675:19:1", + "nodeType": "YulFunctionCall", + "src": "19675:19:1" + }, + "nativeSrc": "19672:179:1", + "nodeType": "YulIf", + "src": "19672:179:1" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19871:4:1", + "nodeType": "YulIdentifier", + "src": "19871:4:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19885:6:1", + "nodeType": "YulIdentifier", + "src": "19885:6:1" + }, + { + "kind": "number", + "nativeSrc": "19893:1:1", + "nodeType": "YulLiteral", + "src": "19893:1:1", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "19881:3:1", + "nodeType": "YulIdentifier", + "src": "19881:3:1" + }, + "nativeSrc": "19881:14:1", + "nodeType": "YulFunctionCall", + "src": "19881:14:1" + }, + { + "kind": "number", + "nativeSrc": "19897:1:1", + "nodeType": "YulLiteral", + "src": "19897:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19877:3:1", + "nodeType": "YulIdentifier", + "src": "19877:3:1" + }, + "nativeSrc": "19877:22:1", + "nodeType": "YulFunctionCall", + "src": "19877:22:1" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19864:6:1", + "nodeType": "YulIdentifier", + "src": "19864:6:1" + }, + "nativeSrc": "19864:36:1", + "nodeType": "YulFunctionCall", + "src": "19864:36:1" + }, + "nativeSrc": "19864:36:1", + "nodeType": "YulExpressionStatement", + "src": "19864:36:1" + } + ] + }, + "nativeSrc": "19293:617:1", + "nodeType": "YulCase", + "src": "19293:617:1", + "value": { + "kind": "number", + "nativeSrc": "19298:1:1", + "nodeType": "YulLiteral", + "src": "19298:1:1", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "19927:222:1", + "nodeType": "YulBlock", + "src": "19927:222:1", + "statements": [ + { + "nativeSrc": "19941:14:1", + "nodeType": "YulVariableDeclaration", + "src": "19941:14:1", + "value": { + "kind": "number", + "nativeSrc": "19954:1:1", + "nodeType": "YulLiteral", + "src": "19954:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "19945:5:1", + "nodeType": "YulTypedName", + "src": "19945:5:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19978:67:1", + "nodeType": "YulBlock", + "src": "19978:67:1", + "statements": [ + { + "nativeSrc": "19996:35:1", + "nodeType": "YulAssignment", + "src": "19996:35:1", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "20015:3:1", + "nodeType": "YulIdentifier", + "src": "20015:3:1" + }, + { + "name": "srcOffset", + "nativeSrc": "20020:9:1", + "nodeType": "YulIdentifier", + "src": "20020:9:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20011:3:1", + "nodeType": "YulIdentifier", + "src": "20011:3:1" + }, + "nativeSrc": "20011:19:1", + "nodeType": "YulFunctionCall", + "src": "20011:19:1" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20005:5:1", + "nodeType": "YulIdentifier", + "src": "20005:5:1" + }, + "nativeSrc": "20005:26:1", + "nodeType": "YulFunctionCall", + "src": "20005:26:1" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19996:5:1", + "nodeType": "YulIdentifier", + "src": "19996:5:1" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "19971:6:1", + "nodeType": "YulIdentifier", + "src": "19971:6:1" + }, + "nativeSrc": "19968:77:1", + "nodeType": "YulIf", + "src": "19968:77:1" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "20065:4:1", + "nodeType": "YulIdentifier", + "src": "20065:4:1" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "20124:5:1", + "nodeType": "YulIdentifier", + "src": "20124:5:1" + }, + { + "name": "newLen", + "nativeSrc": "20131:6:1", + "nodeType": "YulIdentifier", + "src": "20131:6:1" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "20071:52:1", + "nodeType": "YulIdentifier", + "src": "20071:52:1" + }, + "nativeSrc": "20071:67:1", + "nodeType": "YulFunctionCall", + "src": "20071:67:1" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "20058:6:1", + "nodeType": "YulIdentifier", + "src": "20058:6:1" + }, + "nativeSrc": "20058:81:1", + "nodeType": "YulFunctionCall", + "src": "20058:81:1" + }, + "nativeSrc": "20058:81:1", + "nodeType": "YulExpressionStatement", + "src": "20058:81:1" + } + ] + }, + "nativeSrc": "19919:230:1", + "nodeType": "YulCase", + "src": "19919:230:1", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "19273:6:1", + "nodeType": "YulIdentifier", + "src": "19273:6:1" + }, + { + "kind": "number", + "nativeSrc": "19281:2:1", + "nodeType": "YulLiteral", + "src": "19281:2:1", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "19270:2:1", + "nodeType": "YulIdentifier", + "src": "19270:2:1" + }, + "nativeSrc": "19270:14:1", + "nodeType": "YulFunctionCall", + "src": "19270:14:1" + }, + "nativeSrc": "19263:886:1", + "nodeType": "YulSwitch", + "src": "19263:886:1" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage", + "nativeSrc": "18765:1390:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "18844:4:1", + "nodeType": "YulTypedName", + "src": "18844:4:1", + "type": "" + }, + { + "name": "src", + "nativeSrc": "18850:3:1", + "nodeType": "YulTypedName", + "src": "18850:3:1", + "type": "" + } + ], + "src": "18765:1390:1" + }, + { + "body": { + "nativeSrc": "20305:275:1", + "nodeType": "YulBlock", + "src": "20305:275:1", + "statements": [ + { + "nativeSrc": "20315:26:1", + "nodeType": "YulAssignment", + "src": "20315:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20327:9:1", + "nodeType": "YulIdentifier", + "src": "20327:9:1" + }, + { + "kind": "number", + "nativeSrc": "20338:2:1", + "nodeType": "YulLiteral", + "src": "20338:2:1", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20323:3:1", + "nodeType": "YulIdentifier", + "src": "20323:3:1" + }, + "nativeSrc": "20323:18:1", + "nodeType": "YulFunctionCall", + "src": "20323:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20315:4:1", + "nodeType": "YulIdentifier", + "src": "20315:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "20395:6:1", + "nodeType": "YulIdentifier", + "src": "20395:6:1" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20408:9:1", + "nodeType": "YulIdentifier", + "src": "20408:9:1" + }, + { + "kind": "number", + "nativeSrc": "20419:1:1", + "nodeType": "YulLiteral", + "src": "20419:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20404:3:1", + "nodeType": "YulIdentifier", + "src": "20404:3:1" + }, + "nativeSrc": "20404:17:1", + "nodeType": "YulFunctionCall", + "src": "20404:17:1" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "20351:43:1", + "nodeType": "YulIdentifier", + "src": "20351:43:1" + }, + "nativeSrc": "20351:71:1", + "nodeType": "YulFunctionCall", + "src": "20351:71:1" + }, + "nativeSrc": "20351:71:1", + "nodeType": "YulExpressionStatement", + "src": "20351:71:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20443:9:1", + "nodeType": "YulIdentifier", + "src": "20443:9:1" + }, + { + "kind": "number", + "nativeSrc": "20454:2:1", + "nodeType": "YulLiteral", + "src": "20454:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20439:3:1", + "nodeType": "YulIdentifier", + "src": "20439:3:1" + }, + "nativeSrc": "20439:18:1", + "nodeType": "YulFunctionCall", + "src": "20439:18:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "20463:4:1", + "nodeType": "YulIdentifier", + "src": "20463:4:1" + }, + { + "name": "headStart", + "nativeSrc": "20469:9:1", + "nodeType": "YulIdentifier", + "src": "20469:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20459:3:1", + "nodeType": "YulIdentifier", + "src": "20459:3:1" + }, + "nativeSrc": "20459:20:1", + "nodeType": "YulFunctionCall", + "src": "20459:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20432:6:1", + "nodeType": "YulIdentifier", + "src": "20432:6:1" + }, + "nativeSrc": "20432:48:1", + "nodeType": "YulFunctionCall", + "src": "20432:48:1" + }, + "nativeSrc": "20432:48:1", + "nodeType": "YulExpressionStatement", + "src": "20432:48:1" + }, + { + "nativeSrc": "20489:84:1", + "nodeType": "YulAssignment", + "src": "20489:84:1", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "20559:6:1", + "nodeType": "YulIdentifier", + "src": "20559:6:1" + }, + { + "name": "tail", + "nativeSrc": "20568:4:1", + "nodeType": "YulIdentifier", + "src": "20568:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "20497:61:1", + "nodeType": "YulIdentifier", + "src": "20497:61:1" + }, + "nativeSrc": "20497:76:1", + "nodeType": "YulFunctionCall", + "src": "20497:76:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20489:4:1", + "nodeType": "YulIdentifier", + "src": "20489:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "20161:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20269:9:1", + "nodeType": "YulTypedName", + "src": "20269:9:1", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20281:6:1", + "nodeType": "YulTypedName", + "src": "20281:6:1", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20289:6:1", + "nodeType": "YulTypedName", + "src": "20289:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20300:4:1", + "nodeType": "YulTypedName", + "src": "20300:4:1", + "type": "" + } + ], + "src": "20161:419:1" + }, + { + "body": { + "nativeSrc": "20692:61:1", + "nodeType": "YulBlock", + "src": "20692:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "20714:6:1", + "nodeType": "YulIdentifier", + "src": "20714:6:1" + }, + { + "kind": "number", + "nativeSrc": "20722:1:1", + "nodeType": "YulLiteral", + "src": "20722:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20710:3:1", + "nodeType": "YulIdentifier", + "src": "20710:3:1" + }, + "nativeSrc": "20710:14:1", + "nodeType": "YulFunctionCall", + "src": "20710:14:1" + }, + { + "hexValue": "63616e6e6f742065786563757465207478", + "kind": "string", + "nativeSrc": "20726:19:1", + "nodeType": "YulLiteral", + "src": "20726:19:1", + "type": "", + "value": "cannot execute tx" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20703:6:1", + "nodeType": "YulIdentifier", + "src": "20703:6:1" + }, + "nativeSrc": "20703:43:1", + "nodeType": "YulFunctionCall", + "src": "20703:43:1" + }, + "nativeSrc": "20703:43:1", + "nodeType": "YulExpressionStatement", + "src": "20703:43:1" + } + ] + }, + "name": "store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513", + "nativeSrc": "20586:167:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "20684:6:1", + "nodeType": "YulTypedName", + "src": "20684:6:1", + "type": "" + } + ], + "src": "20586:167:1" + }, + { + "body": { + "nativeSrc": "20905:220:1", + "nodeType": "YulBlock", + "src": "20905:220:1", + "statements": [ + { + "nativeSrc": "20915:74:1", + "nodeType": "YulAssignment", + "src": "20915:74:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20981:3:1", + "nodeType": "YulIdentifier", + "src": "20981:3:1" + }, + { + "kind": "number", + "nativeSrc": "20986:2:1", + "nodeType": "YulLiteral", + "src": "20986:2:1", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "20922:58:1", + "nodeType": "YulIdentifier", + "src": "20922:58:1" + }, + "nativeSrc": "20922:67:1", + "nodeType": "YulFunctionCall", + "src": "20922:67:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20915:3:1", + "nodeType": "YulIdentifier", + "src": "20915:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21087:3:1", + "nodeType": "YulIdentifier", + "src": "21087:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513", + "nativeSrc": "20998:88:1", + "nodeType": "YulIdentifier", + "src": "20998:88:1" + }, + "nativeSrc": "20998:93:1", + "nodeType": "YulFunctionCall", + "src": "20998:93:1" + }, + "nativeSrc": "20998:93:1", + "nodeType": "YulExpressionStatement", + "src": "20998:93:1" + }, + { + "nativeSrc": "21100:19:1", + "nodeType": "YulAssignment", + "src": "21100:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21111:3:1", + "nodeType": "YulIdentifier", + "src": "21111:3:1" + }, + { + "kind": "number", + "nativeSrc": "21116:2:1", + "nodeType": "YulLiteral", + "src": "21116:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21107:3:1", + "nodeType": "YulIdentifier", + "src": "21107:3:1" + }, + "nativeSrc": "21107:12:1", + "nodeType": "YulFunctionCall", + "src": "21107:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "21100:3:1", + "nodeType": "YulIdentifier", + "src": "21100:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack", + "nativeSrc": "20759:366:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "20893:3:1", + "nodeType": "YulTypedName", + "src": "20893:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "20901:3:1", + "nodeType": "YulTypedName", + "src": "20901:3:1", + "type": "" + } + ], + "src": "20759:366:1" + }, + { + "body": { + "nativeSrc": "21302:248:1", + "nodeType": "YulBlock", + "src": "21302:248:1", + "statements": [ + { + "nativeSrc": "21312:26:1", + "nodeType": "YulAssignment", + "src": "21312:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21324:9:1", + "nodeType": "YulIdentifier", + "src": "21324:9:1" + }, + { + "kind": "number", + "nativeSrc": "21335:2:1", + "nodeType": "YulLiteral", + "src": "21335:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21320:3:1", + "nodeType": "YulIdentifier", + "src": "21320:3:1" + }, + "nativeSrc": "21320:18:1", + "nodeType": "YulFunctionCall", + "src": "21320:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "21312:4:1", + "nodeType": "YulIdentifier", + "src": "21312:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21359:9:1", + "nodeType": "YulIdentifier", + "src": "21359:9:1" + }, + { + "kind": "number", + "nativeSrc": "21370:1:1", + "nodeType": "YulLiteral", + "src": "21370:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21355:3:1", + "nodeType": "YulIdentifier", + "src": "21355:3:1" + }, + "nativeSrc": "21355:17:1", + "nodeType": "YulFunctionCall", + "src": "21355:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "21378:4:1", + "nodeType": "YulIdentifier", + "src": "21378:4:1" + }, + { + "name": "headStart", + "nativeSrc": "21384:9:1", + "nodeType": "YulIdentifier", + "src": "21384:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21374:3:1", + "nodeType": "YulIdentifier", + "src": "21374:3:1" + }, + "nativeSrc": "21374:20:1", + "nodeType": "YulFunctionCall", + "src": "21374:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21348:6:1", + "nodeType": "YulIdentifier", + "src": "21348:6:1" + }, + "nativeSrc": "21348:47:1", + "nodeType": "YulFunctionCall", + "src": "21348:47:1" + }, + "nativeSrc": "21348:47:1", + "nodeType": "YulExpressionStatement", + "src": "21348:47:1" + }, + { + "nativeSrc": "21404:139:1", + "nodeType": "YulAssignment", + "src": "21404:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "21538:4:1", + "nodeType": "YulIdentifier", + "src": "21538:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack", + "nativeSrc": "21412:124:1", + "nodeType": "YulIdentifier", + "src": "21412:124:1" + }, + "nativeSrc": "21412:131:1", + "nodeType": "YulFunctionCall", + "src": "21412:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "21404:4:1", + "nodeType": "YulIdentifier", + "src": "21404:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "21131:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21282:9:1", + "nodeType": "YulTypedName", + "src": "21282:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "21297:4:1", + "nodeType": "YulTypedName", + "src": "21297:4:1", + "type": "" + } + ], + "src": "21131:419:1" + }, + { + "body": { + "nativeSrc": "21669:34:1", + "nodeType": "YulBlock", + "src": "21669:34:1", + "statements": [ + { + "nativeSrc": "21679:18:1", + "nodeType": "YulAssignment", + "src": "21679:18:1", + "value": { + "name": "pos", + "nativeSrc": "21694:3:1", + "nodeType": "YulIdentifier", + "src": "21694:3:1" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "21679:11:1", + "nodeType": "YulIdentifier", + "src": "21679:11:1" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "21556:147:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "21641:3:1", + "nodeType": "YulTypedName", + "src": "21641:3:1", + "type": "" + }, + { + "name": "length", + "nativeSrc": "21646:6:1", + "nodeType": "YulTypedName", + "src": "21646:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "21657:11:1", + "nodeType": "YulTypedName", + "src": "21657:11:1", + "type": "" + } + ], + "src": "21556:147:1" + }, + { + "body": { + "nativeSrc": "21836:765:1", + "nodeType": "YulBlock", + "src": "21836:765:1", + "statements": [ + { + "nativeSrc": "21846:29:1", + "nodeType": "YulVariableDeclaration", + "src": "21846:29:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "21869:5:1", + "nodeType": "YulIdentifier", + "src": "21869:5:1" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "21863:5:1", + "nodeType": "YulIdentifier", + "src": "21863:5:1" + }, + "nativeSrc": "21863:12:1", + "nodeType": "YulFunctionCall", + "src": "21863:12:1" + }, + "variables": [ + { + "name": "slotValue", + "nativeSrc": "21850:9:1", + "nodeType": "YulTypedName", + "src": "21850:9:1", + "type": "" + } + ] + }, + { + "nativeSrc": "21884:50:1", + "nodeType": "YulVariableDeclaration", + "src": "21884:50:1", + "value": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "21924:9:1", + "nodeType": "YulIdentifier", + "src": "21924:9:1" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "21898:25:1", + "nodeType": "YulIdentifier", + "src": "21898:25:1" + }, + "nativeSrc": "21898:36:1", + "nodeType": "YulFunctionCall", + "src": "21898:36:1" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "21888:6:1", + "nodeType": "YulTypedName", + "src": "21888:6:1", + "type": "" + } + ] + }, + { + "nativeSrc": "21943:95:1", + "nodeType": "YulAssignment", + "src": "21943:95:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22026:3:1", + "nodeType": "YulIdentifier", + "src": "22026:3:1" + }, + { + "name": "length", + "nativeSrc": "22031:6:1", + "nodeType": "YulIdentifier", + "src": "22031:6:1" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "21950:75:1", + "nodeType": "YulIdentifier", + "src": "21950:75:1" + }, + "nativeSrc": "21950:88:1", + "nodeType": "YulFunctionCall", + "src": "21950:88:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21943:3:1", + "nodeType": "YulIdentifier", + "src": "21943:3:1" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "22087:159:1", + "nodeType": "YulBlock", + "src": "22087:159:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22140:3:1", + "nodeType": "YulIdentifier", + "src": "22140:3:1" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "22149:9:1", + "nodeType": "YulIdentifier", + "src": "22149:9:1" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22164:4:1", + "nodeType": "YulLiteral", + "src": "22164:4:1", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "22160:3:1", + "nodeType": "YulIdentifier", + "src": "22160:3:1" + }, + "nativeSrc": "22160:9:1", + "nodeType": "YulFunctionCall", + "src": "22160:9:1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22145:3:1", + "nodeType": "YulIdentifier", + "src": "22145:3:1" + }, + "nativeSrc": "22145:25:1", + "nodeType": "YulFunctionCall", + "src": "22145:25:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22133:6:1", + "nodeType": "YulIdentifier", + "src": "22133:6:1" + }, + "nativeSrc": "22133:38:1", + "nodeType": "YulFunctionCall", + "src": "22133:38:1" + }, + "nativeSrc": "22133:38:1", + "nodeType": "YulExpressionStatement", + "src": "22133:38:1" + }, + { + "nativeSrc": "22184:52:1", + "nodeType": "YulAssignment", + "src": "22184:52:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22195:3:1", + "nodeType": "YulIdentifier", + "src": "22195:3:1" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "22204:6:1", + "nodeType": "YulIdentifier", + "src": "22204:6:1" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "22226:6:1", + "nodeType": "YulIdentifier", + "src": "22226:6:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "22219:6:1", + "nodeType": "YulIdentifier", + "src": "22219:6:1" + }, + "nativeSrc": "22219:14:1", + "nodeType": "YulFunctionCall", + "src": "22219:14:1" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "22212:6:1", + "nodeType": "YulIdentifier", + "src": "22212:6:1" + }, + "nativeSrc": "22212:22:1", + "nodeType": "YulFunctionCall", + "src": "22212:22:1" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "22200:3:1", + "nodeType": "YulIdentifier", + "src": "22200:3:1" + }, + "nativeSrc": "22200:35:1", + "nodeType": "YulFunctionCall", + "src": "22200:35:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22191:3:1", + "nodeType": "YulIdentifier", + "src": "22191:3:1" + }, + "nativeSrc": "22191:45:1", + "nodeType": "YulFunctionCall", + "src": "22191:45:1" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "22184:3:1", + "nodeType": "YulIdentifier", + "src": "22184:3:1" + } + ] + } + ] + }, + "nativeSrc": "22080:166:1", + "nodeType": "YulCase", + "src": "22080:166:1", + "value": { + "kind": "number", + "nativeSrc": "22085:1:1", + "nodeType": "YulLiteral", + "src": "22085:1:1", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "22262:333:1", + "nodeType": "YulBlock", + "src": "22262:333:1", + "statements": [ + { + "nativeSrc": "22307:52:1", + "nodeType": "YulVariableDeclaration", + "src": "22307:52:1", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "22353:5:1", + "nodeType": "YulIdentifier", + "src": "22353:5:1" + } + ], + "functionName": { + "name": "array_dataslot_t_bytes_storage", + "nativeSrc": "22322:30:1", + "nodeType": "YulIdentifier", + "src": "22322:30:1" + }, + "nativeSrc": "22322:37:1", + "nodeType": "YulFunctionCall", + "src": "22322:37:1" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "22311:7:1", + "nodeType": "YulTypedName", + "src": "22311:7:1", + "type": "" + } + ] + }, + { + "nativeSrc": "22372:10:1", + "nodeType": "YulVariableDeclaration", + "src": "22372:10:1", + "value": { + "kind": "number", + "nativeSrc": "22381:1:1", + "nodeType": "YulLiteral", + "src": "22381:1:1", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "22376:1:1", + "nodeType": "YulTypedName", + "src": "22376:1:1", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22439:110:1", + "nodeType": "YulBlock", + "src": "22439:110:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22468:3:1", + "nodeType": "YulIdentifier", + "src": "22468:3:1" + }, + { + "name": "i", + "nativeSrc": "22473:1:1", + "nodeType": "YulIdentifier", + "src": "22473:1:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22464:3:1", + "nodeType": "YulIdentifier", + "src": "22464:3:1" + }, + "nativeSrc": "22464:11:1", + "nodeType": "YulFunctionCall", + "src": "22464:11:1" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "22483:7:1", + "nodeType": "YulIdentifier", + "src": "22483:7:1" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "22477:5:1", + "nodeType": "YulIdentifier", + "src": "22477:5:1" + }, + "nativeSrc": "22477:14:1", + "nodeType": "YulFunctionCall", + "src": "22477:14:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22457:6:1", + "nodeType": "YulIdentifier", + "src": "22457:6:1" + }, + "nativeSrc": "22457:35:1", + "nodeType": "YulFunctionCall", + "src": "22457:35:1" + }, + "nativeSrc": "22457:35:1", + "nodeType": "YulExpressionStatement", + "src": "22457:35:1" + }, + { + "nativeSrc": "22509:26:1", + "nodeType": "YulAssignment", + "src": "22509:26:1", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "22524:7:1", + "nodeType": "YulIdentifier", + "src": "22524:7:1" + }, + { + "kind": "number", + "nativeSrc": "22533:1:1", + "nodeType": "YulLiteral", + "src": "22533:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22520:3:1", + "nodeType": "YulIdentifier", + "src": "22520:3:1" + }, + "nativeSrc": "22520:15:1", + "nodeType": "YulFunctionCall", + "src": "22520:15:1" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "22509:7:1", + "nodeType": "YulIdentifier", + "src": "22509:7:1" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "22406:1:1", + "nodeType": "YulIdentifier", + "src": "22406:1:1" + }, + { + "name": "length", + "nativeSrc": "22409:6:1", + "nodeType": "YulIdentifier", + "src": "22409:6:1" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22403:2:1", + "nodeType": "YulIdentifier", + "src": "22403:2:1" + }, + "nativeSrc": "22403:13:1", + "nodeType": "YulFunctionCall", + "src": "22403:13:1" + }, + "nativeSrc": "22395:154:1", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "22417:21:1", + "nodeType": "YulBlock", + "src": "22417:21:1", + "statements": [ + { + "nativeSrc": "22419:17:1", + "nodeType": "YulAssignment", + "src": "22419:17:1", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "22428:1:1", + "nodeType": "YulIdentifier", + "src": "22428:1:1" + }, + { + "kind": "number", + "nativeSrc": "22431:4:1", + "nodeType": "YulLiteral", + "src": "22431:4:1", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22424:3:1", + "nodeType": "YulIdentifier", + "src": "22424:3:1" + }, + "nativeSrc": "22424:12:1", + "nodeType": "YulFunctionCall", + "src": "22424:12:1" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "22419:1:1", + "nodeType": "YulIdentifier", + "src": "22419:1:1" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "22399:3:1", + "nodeType": "YulBlock", + "src": "22399:3:1", + "statements": [] + }, + "src": "22395:154:1" + }, + { + "nativeSrc": "22562:23:1", + "nodeType": "YulAssignment", + "src": "22562:23:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22573:3:1", + "nodeType": "YulIdentifier", + "src": "22573:3:1" + }, + { + "name": "length", + "nativeSrc": "22578:6:1", + "nodeType": "YulIdentifier", + "src": "22578:6:1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22569:3:1", + "nodeType": "YulIdentifier", + "src": "22569:3:1" + }, + "nativeSrc": "22569:16:1", + "nodeType": "YulFunctionCall", + "src": "22569:16:1" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "22562:3:1", + "nodeType": "YulIdentifier", + "src": "22562:3:1" + } + ] + } + ] + }, + "nativeSrc": "22255:340:1", + "nodeType": "YulCase", + "src": "22255:340:1", + "value": { + "kind": "number", + "nativeSrc": "22260:1:1", + "nodeType": "YulLiteral", + "src": "22260:1:1", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "22058:9:1", + "nodeType": "YulIdentifier", + "src": "22058:9:1" + }, + { + "kind": "number", + "nativeSrc": "22069:1:1", + "nodeType": "YulLiteral", + "src": "22069:1:1", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22054:3:1", + "nodeType": "YulIdentifier", + "src": "22054:3:1" + }, + "nativeSrc": "22054:17:1", + "nodeType": "YulFunctionCall", + "src": "22054:17:1" + }, + "nativeSrc": "22047:548:1", + "nodeType": "YulSwitch", + "src": "22047:548:1" + } + ] + }, + "name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "21731:870:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "21817:5:1", + "nodeType": "YulTypedName", + "src": "21817:5:1", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "21824:3:1", + "nodeType": "YulTypedName", + "src": "21824:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "21832:3:1", + "nodeType": "YulTypedName", + "src": "21832:3:1", + "type": "" + } + ], + "src": "21731:870:1" + }, + { + "body": { + "nativeSrc": "22738:134:1", + "nodeType": "YulBlock", + "src": "22738:134:1", + "statements": [ + { + "nativeSrc": "22749:97:1", + "nodeType": "YulAssignment", + "src": "22749:97:1", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22833:6:1", + "nodeType": "YulIdentifier", + "src": "22833:6:1" + }, + { + "name": "pos", + "nativeSrc": "22842:3:1", + "nodeType": "YulIdentifier", + "src": "22842:3:1" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "22756:76:1", + "nodeType": "YulIdentifier", + "src": "22756:76:1" + }, + "nativeSrc": "22756:90:1", + "nodeType": "YulFunctionCall", + "src": "22756:90:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "22749:3:1", + "nodeType": "YulIdentifier", + "src": "22749:3:1" + } + ] + }, + { + "nativeSrc": "22856:10:1", + "nodeType": "YulAssignment", + "src": "22856:10:1", + "value": { + "name": "pos", + "nativeSrc": "22863:3:1", + "nodeType": "YulIdentifier", + "src": "22863:3:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "22856:3:1", + "nodeType": "YulIdentifier", + "src": "22856:3:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "22607:265:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "22717:3:1", + "nodeType": "YulTypedName", + "src": "22717:3:1", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "22723:6:1", + "nodeType": "YulTypedName", + "src": "22723:6:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "22734:3:1", + "nodeType": "YulTypedName", + "src": "22734:3:1", + "type": "" + } + ], + "src": "22607:265:1" + }, + { + "body": { + "nativeSrc": "22984:53:1", + "nodeType": "YulBlock", + "src": "22984:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "23006:6:1", + "nodeType": "YulIdentifier", + "src": "23006:6:1" + }, + { + "kind": "number", + "nativeSrc": "23014:1:1", + "nodeType": "YulLiteral", + "src": "23014:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23002:3:1", + "nodeType": "YulIdentifier", + "src": "23002:3:1" + }, + "nativeSrc": "23002:14:1", + "nodeType": "YulFunctionCall", + "src": "23002:14:1" + }, + { + "hexValue": "7478206661696c6564", + "kind": "string", + "nativeSrc": "23018:11:1", + "nodeType": "YulLiteral", + "src": "23018:11:1", + "type": "", + "value": "tx failed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22995:6:1", + "nodeType": "YulIdentifier", + "src": "22995:6:1" + }, + "nativeSrc": "22995:35:1", + "nodeType": "YulFunctionCall", + "src": "22995:35:1" + }, + "nativeSrc": "22995:35:1", + "nodeType": "YulExpressionStatement", + "src": "22995:35:1" + } + ] + }, + "name": "store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2", + "nativeSrc": "22878:159:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "22976:6:1", + "nodeType": "YulTypedName", + "src": "22976:6:1", + "type": "" + } + ], + "src": "22878:159:1" + }, + { + "body": { + "nativeSrc": "23189:219:1", + "nodeType": "YulBlock", + "src": "23189:219:1", + "statements": [ + { + "nativeSrc": "23199:73:1", + "nodeType": "YulAssignment", + "src": "23199:73:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23265:3:1", + "nodeType": "YulIdentifier", + "src": "23265:3:1" + }, + { + "kind": "number", + "nativeSrc": "23270:1:1", + "nodeType": "YulLiteral", + "src": "23270:1:1", + "type": "", + "value": "9" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "23206:58:1", + "nodeType": "YulIdentifier", + "src": "23206:58:1" + }, + "nativeSrc": "23206:66:1", + "nodeType": "YulFunctionCall", + "src": "23206:66:1" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "23199:3:1", + "nodeType": "YulIdentifier", + "src": "23199:3:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23370:3:1", + "nodeType": "YulIdentifier", + "src": "23370:3:1" + } + ], + "functionName": { + "name": "store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2", + "nativeSrc": "23281:88:1", + "nodeType": "YulIdentifier", + "src": "23281:88:1" + }, + "nativeSrc": "23281:93:1", + "nodeType": "YulFunctionCall", + "src": "23281:93:1" + }, + "nativeSrc": "23281:93:1", + "nodeType": "YulExpressionStatement", + "src": "23281:93:1" + }, + { + "nativeSrc": "23383:19:1", + "nodeType": "YulAssignment", + "src": "23383:19:1", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23394:3:1", + "nodeType": "YulIdentifier", + "src": "23394:3:1" + }, + { + "kind": "number", + "nativeSrc": "23399:2:1", + "nodeType": "YulLiteral", + "src": "23399:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23390:3:1", + "nodeType": "YulIdentifier", + "src": "23390:3:1" + }, + "nativeSrc": "23390:12:1", + "nodeType": "YulFunctionCall", + "src": "23390:12:1" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "23383:3:1", + "nodeType": "YulIdentifier", + "src": "23383:3:1" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23043:365:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23177:3:1", + "nodeType": "YulTypedName", + "src": "23177:3:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "23185:3:1", + "nodeType": "YulTypedName", + "src": "23185:3:1", + "type": "" + } + ], + "src": "23043:365:1" + }, + { + "body": { + "nativeSrc": "23585:248:1", + "nodeType": "YulBlock", + "src": "23585:248:1", + "statements": [ + { + "nativeSrc": "23595:26:1", + "nodeType": "YulAssignment", + "src": "23595:26:1", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23607:9:1", + "nodeType": "YulIdentifier", + "src": "23607:9:1" + }, + { + "kind": "number", + "nativeSrc": "23618:2:1", + "nodeType": "YulLiteral", + "src": "23618:2:1", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23603:3:1", + "nodeType": "YulIdentifier", + "src": "23603:3:1" + }, + "nativeSrc": "23603:18:1", + "nodeType": "YulFunctionCall", + "src": "23603:18:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23595:4:1", + "nodeType": "YulIdentifier", + "src": "23595:4:1" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23642:9:1", + "nodeType": "YulIdentifier", + "src": "23642:9:1" + }, + { + "kind": "number", + "nativeSrc": "23653:1:1", + "nodeType": "YulLiteral", + "src": "23653:1:1", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23638:3:1", + "nodeType": "YulIdentifier", + "src": "23638:3:1" + }, + "nativeSrc": "23638:17:1", + "nodeType": "YulFunctionCall", + "src": "23638:17:1" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23661:4:1", + "nodeType": "YulIdentifier", + "src": "23661:4:1" + }, + { + "name": "headStart", + "nativeSrc": "23667:9:1", + "nodeType": "YulIdentifier", + "src": "23667:9:1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23657:3:1", + "nodeType": "YulIdentifier", + "src": "23657:3:1" + }, + "nativeSrc": "23657:20:1", + "nodeType": "YulFunctionCall", + "src": "23657:20:1" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23631:6:1", + "nodeType": "YulIdentifier", + "src": "23631:6:1" + }, + "nativeSrc": "23631:47:1", + "nodeType": "YulFunctionCall", + "src": "23631:47:1" + }, + "nativeSrc": "23631:47:1", + "nodeType": "YulExpressionStatement", + "src": "23631:47:1" + }, + { + "nativeSrc": "23687:139:1", + "nodeType": "YulAssignment", + "src": "23687:139:1", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23821:4:1", + "nodeType": "YulIdentifier", + "src": "23821:4:1" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23695:124:1", + "nodeType": "YulIdentifier", + "src": "23695:124:1" + }, + "nativeSrc": "23695:131:1", + "nodeType": "YulFunctionCall", + "src": "23695:131:1" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23687:4:1", + "nodeType": "YulIdentifier", + "src": "23687:4:1" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "23414:419:1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23565:9:1", + "nodeType": "YulTypedName", + "src": "23565:9:1", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23580:4:1", + "nodeType": "YulTypedName", + "src": "23580:4:1", + "type": "" + } + ], + "src": "23414:419:1" + } + ] + }, + "contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_bool_to_t_bool_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e(memPtr) {\n\n mstore(add(memPtr, 0), \"not owner\")\n\n }\n\n function abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 9)\n store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251(memPtr) {\n\n mstore(add(memPtr, 0), \"tx does not exist\")\n\n }\n\n function abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626(memPtr) {\n\n mstore(add(memPtr, 0), \"tx already confirmed\")\n\n }\n\n function abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae(memPtr) {\n\n mstore(add(memPtr, 0), \"tx not confirmed\")\n\n }\n\n function abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function array_dataslot_t_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_bytes_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n let newLen := array_length_t_bytes_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_bytes_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513(memPtr) {\n\n mstore(add(memPtr, 0), \"cannot execute tx\")\n\n }\n\n function abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_bytes_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, length)\n }\n }\n\n function abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2(memPtr) {\n\n mstore(add(memPtr, 0), \"tx failed\")\n\n }\n\n function abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 9)\n store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 1, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9ACE38C2 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x9ACE38C2 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xA0E67E2B EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0xC01A8C84 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0xC6427474 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xD0549B85 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0xEE22610B EQ PUSH2 0x33C JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH4 0x25E7C27 EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x20EA8D86 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x2E7700F0 EQ PUSH2 0x16D JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x33EA3DC8 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x80F59A65 EQ PUSH2 0x216 JUMPI PUSH2 0x102 JUMP JUMPDEST CALLDATASIZE PUSH2 0x102 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 CALLVALUE SELFBALANCE PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP3 SWAP2 SWAP1 PUSH2 0x116D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x113 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x365 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13B SWAP2 SWAP1 PUSH2 0x1244 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x166 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH2 0x67E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x125F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CC SWAP2 SWAP1 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x6AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x13F3 JUMP JUMPDEST PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A9 PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B6 SWAP2 SWAP1 PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x976 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x1648 JUMP JUMPDEST PUSH2 0xC53 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x326 PUSH2 0xE56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x125F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x363 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35E SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0xE5C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x375 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x427 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x478 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46F SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x48D JUMPI PUSH2 0x48C PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E3 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x502 JUMPI PUSH2 0x501 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A6 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x5C4 SWAP2 SWAP1 PUSH2 0x18D6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0DCA620E2E81F7841D07BCC105E1704FB01475B278A9D4C236E1C62945EDD55 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x4 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x6C9 JUMPI PUSH2 0x6C8 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 ADD SLOAD DUP3 PUSH1 0x2 ADD DUP4 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP5 PUSH1 0x4 ADD SLOAD DUP3 DUP1 SLOAD PUSH2 0x72A SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x756 SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x778 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7A3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x786 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP3 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x7FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x84C SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x878 SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x89A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8A8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x96C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x922 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0xA4A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA41 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA5F JUMPI PUSH2 0xA5E PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xABE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAB5 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x3 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xB5D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB54 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xB73 JUMPI PUSH2 0xB72 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x4 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB98 SWAP2 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5CBE105E36805F7820E291F799D5794FF948AF2A5F664E580382DEFB63390041 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xCDF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCD6 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP1 SLOAD SWAP1 POP SWAP1 POP PUSH1 0x4 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xDBB SWAP2 SWAP1 PUSH2 0x1B4A JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE POP POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xD5A05BF70715AD82A09A756320284A1B54C9FF74CD0F8CCE6219E79B563FE59D DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xE48 SWAP3 SWAP2 SWAP1 PUSH2 0x1C1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xEE8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEDF SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0xF30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF27 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xF45 JUMPI PUSH2 0xF44 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFA4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF9B SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xFBA JUMPI PUSH2 0xFB9 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x2 SLOAD DUP2 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0x1013 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x100A SWAP1 PUSH2 0x1C98 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x2 ADD PUSH1 0x40 MLOAD PUSH2 0x1083 SWAP2 SWAP1 PUSH2 0x1D46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x10C0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x10C5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x1DA9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5445F318F4F5FCFB66592E68E0CC5822AA15664039BD5F0FFDE24C5A8142B1AC PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x1154 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1182 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x115E JUMP JUMPDEST PUSH2 0x118F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11B3 DUP2 PUSH2 0x1154 JUMP JUMPDEST DUP2 EQ PUSH2 0x11BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11D0 DUP2 PUSH2 0x11AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11EC JUMPI PUSH2 0x11EB PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11FA DUP5 DUP3 DUP6 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122E DUP3 PUSH2 0x1203 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x123E DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1259 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1235 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1274 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1283 DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP2 EQ PUSH2 0x128E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12A0 DUP2 PUSH2 0x127A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12BC JUMPI PUSH2 0x12BB PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12CA DUP5 DUP3 DUP6 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E8 DUP2 PUSH2 0x12D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1303 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x12DF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1343 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1328 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x136B DUP3 PUSH2 0x1309 JUMP JUMPDEST PUSH2 0x1375 DUP2 DUP6 PUSH2 0x1314 JUMP JUMPDEST SWAP4 POP PUSH2 0x1385 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1325 JUMP JUMPDEST PUSH2 0x138E DUP2 PUSH2 0x134F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x13AE PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1235 JUMP JUMPDEST PUSH2 0x13BB PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x115E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x13CD DUP2 DUP7 PUSH2 0x1360 JUMP JUMPDEST SWAP1 POP PUSH2 0x13DC PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x12DF JUMP JUMPDEST PUSH2 0x13E9 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x140A JUMPI PUSH2 0x1409 PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1418 DUP6 DUP3 DUP7 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1429 DUP6 DUP3 DUP7 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1468 DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x147A DUP4 DUP4 PUSH2 0x145F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x149E DUP3 PUSH2 0x1433 JUMP JUMPDEST PUSH2 0x14A8 DUP2 DUP6 PUSH2 0x143E JUMP JUMPDEST SWAP4 POP PUSH2 0x14B3 DUP4 PUSH2 0x144F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14E4 JUMPI DUP2 MLOAD PUSH2 0x14CB DUP9 DUP3 PUSH2 0x146E JUMP JUMPDEST SWAP8 POP PUSH2 0x14D6 DUP4 PUSH2 0x1486 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x14B7 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x150B DUP2 DUP5 PUSH2 0x1493 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1555 DUP3 PUSH2 0x134F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1574 JUMPI PUSH2 0x1573 PUSH2 0x151D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1587 PUSH2 0x1196 JUMP JUMPDEST SWAP1 POP PUSH2 0x1593 DUP3 DUP3 PUSH2 0x154C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x15B3 JUMPI PUSH2 0x15B2 PUSH2 0x151D JUMP JUMPDEST JUMPDEST PUSH2 0x15BC DUP3 PUSH2 0x134F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15EB PUSH2 0x15E6 DUP5 PUSH2 0x1598 JUMP JUMPDEST PUSH2 0x157D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1607 JUMPI PUSH2 0x1606 PUSH2 0x1518 JUMP JUMPDEST JUMPDEST PUSH2 0x1612 DUP5 DUP3 DUP6 PUSH2 0x15C9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x162F JUMPI PUSH2 0x162E PUSH2 0x1513 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x163F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x15D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1661 JUMPI PUSH2 0x1660 PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166F DUP7 DUP3 DUP8 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1680 DUP7 DUP3 DUP8 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16A1 JUMPI PUSH2 0x16A0 PUSH2 0x11A5 JUMP JUMPDEST JUMPDEST PUSH2 0x16AD DUP7 DUP3 DUP8 ADD PUSH2 0x161A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6E6F74206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16FE PUSH1 0x9 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1709 DUP3 PUSH2 0x16C8 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x172D DUP2 PUSH2 0x16F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x747820646F6573206E6F74206578697374000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x176A PUSH1 0x11 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1775 DUP3 PUSH2 0x1734 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1799 DUP2 PUSH2 0x175D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x747820616C726561647920636F6E6669726D6564000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1805 PUSH1 0x14 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1810 DUP3 PUSH2 0x17CF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1834 DUP2 PUSH2 0x17F8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7478206E6F7420636F6E6669726D656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1871 PUSH1 0x10 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x187C DUP3 PUSH2 0x183B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x18A0 DUP2 PUSH2 0x1864 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18E1 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP2 POP PUSH2 0x18EC DUP4 PUSH2 0x1154 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1904 JUMPI PUSH2 0x1903 PUSH2 0x18A7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1951 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1964 JUMPI PUSH2 0x1963 PUSH2 0x190A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1975 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP2 POP PUSH2 0x1980 DUP4 PUSH2 0x1154 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1998 JUMPI PUSH2 0x1997 PUSH2 0x18A7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x1A00 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x19C3 JUMP JUMPDEST PUSH2 0x1A0A DUP7 DUP4 PUSH2 0x19C3 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A47 PUSH2 0x1A42 PUSH2 0x1A3D DUP5 PUSH2 0x1154 JUMP JUMPDEST PUSH2 0x1A22 JUMP JUMPDEST PUSH2 0x1154 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A61 DUP4 PUSH2 0x1A2C JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A6D DUP3 PUSH2 0x1A4E JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x19D0 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x1A8A PUSH2 0x1A7D JUMP JUMPDEST PUSH2 0x1A95 DUP2 DUP5 DUP5 PUSH2 0x1A58 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1AB9 JUMPI PUSH2 0x1AAE PUSH1 0x0 DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1A9B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1AFE JUMPI PUSH2 0x1ACF DUP2 PUSH2 0x199E JUMP JUMPDEST PUSH2 0x1AD8 DUP5 PUSH2 0x19B3 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1AE7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1AFB PUSH2 0x1AF3 DUP6 PUSH2 0x19B3 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1A9A JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B21 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1B03 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B3A DUP4 DUP4 PUSH2 0x1B10 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B53 DUP3 PUSH2 0x1309 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6C JUMPI PUSH2 0x1B6B PUSH2 0x151D JUMP JUMPDEST JUMPDEST PUSH2 0x1B76 DUP3 SLOAD PUSH2 0x1939 JUMP JUMPDEST PUSH2 0x1B81 DUP3 DUP3 DUP6 PUSH2 0x1ABD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1BA2 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1BAC DUP6 DUP3 PUSH2 0x1B2E JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1C14 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1BC2 DUP7 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BEA JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BC5 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1C07 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1C03 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1B10 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C31 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x115E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1C43 DUP2 DUP5 PUSH2 0x1360 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x63616E6E6F742065786563757465207478000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C82 PUSH1 0x11 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C8D DUP3 PUSH2 0x1C4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1CB1 DUP2 PUSH2 0x1C75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x1CD0 DUP2 PUSH2 0x1939 JUMP JUMPDEST PUSH2 0x1CDA DUP2 DUP7 PUSH2 0x1CB8 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x1CF5 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x1D0A JUMPI PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x1D3D JUMP JUMPDEST PUSH2 0x1D13 DUP6 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D35 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1D16 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D52 DUP3 DUP5 PUSH2 0x1CC3 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x7478206661696C65640000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D93 PUSH1 0x9 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D9E DUP3 PUSH2 0x1D5D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1DC2 DUP2 PUSH2 0x1D86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0xA8 SLOAD 0xF MSIZE SWAP1 CODESIZE 0xE4 PUSH21 0x56A3383A941318CFDEBBDCE2F2C455DC79E7B7EC9A 0xE6 0xF8 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "235:4744:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2321:10;2313:53;;;2333:9;2344:21;2313:53;;;;;;;:::i;:::-;;;;;;;;235:4744;;;;;727:23;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3840:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4352:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;757:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4459:518;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;992:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1059:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;4256:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2862:403;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2379:477;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;803:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3271:563;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;727:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3840:410::-;1138:7;:19;1146:10;1138:19;;;;;;;;;;;;;;;;;;;;;;;;;1130:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;3923:8:::1;1257:12;:19;;;;1246:8;:30;1238:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3945:8:::2;1515:12;1528:8;1515:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:31;;;;;;;;;;;;1514:32;1506:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3965:31:::3;3999:12;4012:8;3999:22;;;;;;;;:::i;:::-;;;;;;;;;;;;3965:56;;4039:11;:21;4051:8;4039:21;;;;;;;;;;;:33;4061:10;4039:33;;;;;;;;;;;;;;;;;;;;;;;;;4031:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;4135:1;4103:11;:28;;;:33;;;;;;;:::i;:::-;;;;;;;;4182:5;4146:11;:21;4158:8;4146:21;;;;;;;;;;;:33;4168:10;4146:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;4234:8;4222:10;4203:40;;;;;;;;;;;;3955:295;1308:1:::2;1181::::1;3840:410:::0;:::o;4352:101::-;4404:4;4427:12;:19;;;;4420:26;;4352:101;:::o;757:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;4459:518::-;4570:10;4594;4618:17;4649:13;4676:21;4722:31;4756:12;4769:8;4756:22;;;;;;;;:::i;:::-;;;;;;;;;;;;4722:56;;4809:11;:14;;;;;;;;;;;;4837:11;:17;;;4868:11;:16;;4898:11;:20;;;;;;;;;;;;4932:11;:28;;;4788:182;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4459:518;;;;;;;:::o;992:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1059:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4256:90::-;4298:16;4333:6;4326:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4256:90;:::o;2862:403::-;1138:7;:19;1146:10;1138:19;;;;;;;;;;;;;;;;;;;;;;;;;1130:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2969:8:::1;1257:12;:19;;;;1246:8;:30;1238:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2999:8:::2;1515:12;1528:8;1515:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:31;;;;;;;;;;;;1514:32;1506:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3030:8:::3;1378:11;:21;1390:8;1378:21;;;;;;;;;;;:33;1400:10;1378:33;;;;;;;;;;;;;;;;;;;;;;;;;1377:34;1369:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3054:31:::4;3088:12;3101:8;3088:22;;;;;;;;:::i;:::-;;;;;;;;;;;;3054:56;;3152:1;3120:11;:28;;;:33;;;;;;;:::i;:::-;;;;;;;;3199:4;3163:11;:21;3175:8;3163:21;;;;;;;;;;;:33;3185:10;3163:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;3249:8;3237:10;3218:40;;;;;;;;;;;;3044:221;1581:1:::3;1308::::2;1181::::1;2862:403:::0;:::o;2379:477::-;1138:7;:19;1146:10;1138:19;;;;;;;;;;;;;;;;;;;;;;;;;1130:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2509:12:::1;2524;:19;;;;2509:34;;2553:12;2584:182;;;;;;;;2618:3;2584:182;;;;;;2646:6;2584:182;;;;2676:5;2584:182;;;;2709:5;2584:182;;;;;;2750:1;2584:182;;::::0;2553:223:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2830:3;2791:58;;2821:7;2809:10;2791:58;;;2835:6;2843:5;2791:58;;;;;;;:::i;:::-;;;;;;;;2499:357;2379:477:::0;;;:::o;803:36::-;;;;:::o;3271:563::-;1138:7;:19;1146:10;1138:19;;;;;;;;;;;;;;;;;;;;;;;;;1130:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;3354:8:::1;1257:12;:19;;;;1246:8;:30;1238:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3376:8:::2;1515:12;1528:8;1515:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:31;;;;;;;;;;;;1514:32;1506:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3396:31:::3;3430:12;3443:8;3430:22;;;;;;;;:::i;:::-;;;;;;;;;;;;3396:56;;3515:24;;3483:11;:28;;;:56;;3462:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3615:4;3592:11;:20;;;:27;;;;;;;;;;;;;;;;;;3630:12;3648:11;:14;;;;;;;;;;;;:19;;3675:11;:17;;;3707:11;:16;;3648:85;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3629:104;;;3751:7;3743:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;3818:8;3806:10;3787:40;;;;;;;;;;;;3386:448;;1308:1:::2;1181::::1;3271:563:::0;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:332::-;335:4;373:2;362:9;358:18;350:26;;386:71;454:1;443:9;439:17;430:6;386:71;:::i;:::-;467:72;535:2;524:9;520:18;511:6;467:72;:::i;:::-;214:332;;;;;:::o;552:75::-;585:6;618:2;612:9;602:19;;552:75;:::o;633:117::-;742:1;739;732:12;756:117;865:1;862;855:12;879:122;952:24;970:5;952:24;:::i;:::-;945:5;942:35;932:63;;991:1;988;981:12;932:63;879:122;:::o;1007:139::-;1053:5;1091:6;1078:20;1069:29;;1107:33;1134:5;1107:33;:::i;:::-;1007:139;;;;:::o;1152:329::-;1211:6;1260:2;1248:9;1239:7;1235:23;1231:32;1228:119;;;1266:79;;:::i;:::-;1228:119;1386:1;1411:53;1456:7;1447:6;1436:9;1432:22;1411:53;:::i;:::-;1401:63;;1357:117;1152:329;;;;:::o;1487:126::-;1524:7;1564:42;1557:5;1553:54;1542:65;;1487:126;;;:::o;1619:96::-;1656:7;1685:24;1703:5;1685:24;:::i;:::-;1674:35;;1619:96;;;:::o;1721:118::-;1808:24;1826:5;1808:24;:::i;:::-;1803:3;1796:37;1721:118;;:::o;1845:222::-;1938:4;1976:2;1965:9;1961:18;1953:26;;1989:71;2057:1;2046:9;2042:17;2033:6;1989:71;:::i;:::-;1845:222;;;;:::o;2073:::-;2166:4;2204:2;2193:9;2189:18;2181:26;;2217:71;2285:1;2274:9;2270:17;2261:6;2217:71;:::i;:::-;2073:222;;;;:::o;2301:122::-;2374:24;2392:5;2374:24;:::i;:::-;2367:5;2364:35;2354:63;;2413:1;2410;2403:12;2354:63;2301:122;:::o;2429:139::-;2475:5;2513:6;2500:20;2491:29;;2529:33;2556:5;2529:33;:::i;:::-;2429:139;;;;:::o;2574:329::-;2633:6;2682:2;2670:9;2661:7;2657:23;2653:32;2650:119;;;2688:79;;:::i;:::-;2650:119;2808:1;2833:53;2878:7;2869:6;2858:9;2854:22;2833:53;:::i;:::-;2823:63;;2779:117;2574:329;;;;:::o;2909:90::-;2943:7;2986:5;2979:13;2972:21;2961:32;;2909:90;;;:::o;3005:109::-;3086:21;3101:5;3086:21;:::i;:::-;3081:3;3074:34;3005:109;;:::o;3120:210::-;3207:4;3245:2;3234:9;3230:18;3222:26;;3258:65;3320:1;3309:9;3305:17;3296:6;3258:65;:::i;:::-;3120:210;;;;:::o;3336:98::-;3387:6;3421:5;3415:12;3405:22;;3336:98;;;:::o;3440:168::-;3523:11;3557:6;3552:3;3545:19;3597:4;3592:3;3588:14;3573:29;;3440:168;;;;:::o;3614:246::-;3695:1;3705:113;3719:6;3716:1;3713:13;3705:113;;;3804:1;3799:3;3795:11;3789:18;3785:1;3780:3;3776:11;3769:39;3741:2;3738:1;3734:10;3729:15;;3705:113;;;3852:1;3843:6;3838:3;3834:16;3827:27;3676:184;3614:246;;;:::o;3866:102::-;3907:6;3958:2;3954:7;3949:2;3942:5;3938:14;3934:28;3924:38;;3866:102;;;:::o;3974:373::-;4060:3;4088:38;4120:5;4088:38;:::i;:::-;4142:70;4205:6;4200:3;4142:70;:::i;:::-;4135:77;;4221:65;4279:6;4274:3;4267:4;4260:5;4256:16;4221:65;:::i;:::-;4311:29;4333:6;4311:29;:::i;:::-;4306:3;4302:39;4295:46;;4064:283;3974:373;;;;:::o;4353:739::-;4570:4;4608:3;4597:9;4593:19;4585:27;;4622:71;4690:1;4679:9;4675:17;4666:6;4622:71;:::i;:::-;4703:72;4771:2;4760:9;4756:18;4747:6;4703:72;:::i;:::-;4822:9;4816:4;4812:20;4807:2;4796:9;4792:18;4785:48;4850:76;4921:4;4912:6;4850:76;:::i;:::-;4842:84;;4936:66;4998:2;4987:9;4983:18;4974:6;4936:66;:::i;:::-;5012:73;5080:3;5069:9;5065:19;5056:6;5012:73;:::i;:::-;4353:739;;;;;;;;:::o;5098:474::-;5166:6;5174;5223:2;5211:9;5202:7;5198:23;5194:32;5191:119;;;5229:79;;:::i;:::-;5191:119;5349:1;5374:53;5419:7;5410:6;5399:9;5395:22;5374:53;:::i;:::-;5364:63;;5320:117;5476:2;5502:53;5547:7;5538:6;5527:9;5523:22;5502:53;:::i;:::-;5492:63;;5447:118;5098:474;;;;;:::o;5578:114::-;5645:6;5679:5;5673:12;5663:22;;5578:114;;;:::o;5698:184::-;5797:11;5831:6;5826:3;5819:19;5871:4;5866:3;5862:14;5847:29;;5698:184;;;;:::o;5888:132::-;5955:4;5978:3;5970:11;;6008:4;6003:3;5999:14;5991:22;;5888:132;;;:::o;6026:108::-;6103:24;6121:5;6103:24;:::i;:::-;6098:3;6091:37;6026:108;;:::o;6140:179::-;6209:10;6230:46;6272:3;6264:6;6230:46;:::i;:::-;6308:4;6303:3;6299:14;6285:28;;6140:179;;;;:::o;6325:113::-;6395:4;6427;6422:3;6418:14;6410:22;;6325:113;;;:::o;6474:732::-;6593:3;6622:54;6670:5;6622:54;:::i;:::-;6692:86;6771:6;6766:3;6692:86;:::i;:::-;6685:93;;6802:56;6852:5;6802:56;:::i;:::-;6881:7;6912:1;6897:284;6922:6;6919:1;6916:13;6897:284;;;6998:6;6992:13;7025:63;7084:3;7069:13;7025:63;:::i;:::-;7018:70;;7111:60;7164:6;7111:60;:::i;:::-;7101:70;;6957:224;6944:1;6941;6937:9;6932:14;;6897:284;;;6901:14;7197:3;7190:10;;6598:608;;;6474:732;;;;:::o;7212:373::-;7355:4;7393:2;7382:9;7378:18;7370:26;;7442:9;7436:4;7432:20;7428:1;7417:9;7413:17;7406:47;7470:108;7573:4;7564:6;7470:108;:::i;:::-;7462:116;;7212:373;;;;:::o;7591:117::-;7700:1;7697;7690:12;7714:117;7823:1;7820;7813:12;7837:180;7885:77;7882:1;7875:88;7982:4;7979:1;7972:15;8006:4;8003:1;7996:15;8023:281;8106:27;8128:4;8106:27;:::i;:::-;8098:6;8094:40;8236:6;8224:10;8221:22;8200:18;8188:10;8185:34;8182:62;8179:88;;;8247:18;;:::i;:::-;8179:88;8287:10;8283:2;8276:22;8066:238;8023:281;;:::o;8310:129::-;8344:6;8371:20;;:::i;:::-;8361:30;;8400:33;8428:4;8420:6;8400:33;:::i;:::-;8310:129;;;:::o;8445:307::-;8506:4;8596:18;8588:6;8585:30;8582:56;;;8618:18;;:::i;:::-;8582:56;8656:29;8678:6;8656:29;:::i;:::-;8648:37;;8740:4;8734;8730:15;8722:23;;8445:307;;;:::o;8758:146::-;8855:6;8850:3;8845;8832:30;8896:1;8887:6;8882:3;8878:16;8871:27;8758:146;;;:::o;8910:423::-;8987:5;9012:65;9028:48;9069:6;9028:48;:::i;:::-;9012:65;:::i;:::-;9003:74;;9100:6;9093:5;9086:21;9138:4;9131:5;9127:16;9176:3;9167:6;9162:3;9158:16;9155:25;9152:112;;;9183:79;;:::i;:::-;9152:112;9273:54;9320:6;9315:3;9310;9273:54;:::i;:::-;8993:340;8910:423;;;;;:::o;9352:338::-;9407:5;9456:3;9449:4;9441:6;9437:17;9433:27;9423:122;;9464:79;;:::i;:::-;9423:122;9581:6;9568:20;9606:78;9680:3;9672:6;9665:4;9657:6;9653:17;9606:78;:::i;:::-;9597:87;;9413:277;9352:338;;;;:::o;9696:797::-;9782:6;9790;9798;9847:2;9835:9;9826:7;9822:23;9818:32;9815:119;;;9853:79;;:::i;:::-;9815:119;9973:1;9998:53;10043:7;10034:6;10023:9;10019:22;9998:53;:::i;:::-;9988:63;;9944:117;10100:2;10126:53;10171:7;10162:6;10151:9;10147:22;10126:53;:::i;:::-;10116:63;;10071:118;10256:2;10245:9;10241:18;10228:32;10287:18;10279:6;10276:30;10273:117;;;10309:79;;:::i;:::-;10273:117;10414:62;10468:7;10459:6;10448:9;10444:22;10414:62;:::i;:::-;10404:72;;10199:287;9696:797;;;;;:::o;10499:169::-;10583:11;10617:6;10612:3;10605:19;10657:4;10652:3;10648:14;10633:29;;10499:169;;;;:::o;10674:159::-;10814:11;10810:1;10802:6;10798:14;10791:35;10674:159;:::o;10839:365::-;10981:3;11002:66;11066:1;11061:3;11002:66;:::i;:::-;10995:73;;11077:93;11166:3;11077:93;:::i;:::-;11195:2;11190:3;11186:12;11179:19;;10839:365;;;:::o;11210:419::-;11376:4;11414:2;11403:9;11399:18;11391:26;;11463:9;11457:4;11453:20;11449:1;11438:9;11434:17;11427:47;11491:131;11617:4;11491:131;:::i;:::-;11483:139;;11210:419;;;:::o;11635:167::-;11775:19;11771:1;11763:6;11759:14;11752:43;11635:167;:::o;11808:366::-;11950:3;11971:67;12035:2;12030:3;11971:67;:::i;:::-;11964:74;;12047:93;12136:3;12047:93;:::i;:::-;12165:2;12160:3;12156:12;12149:19;;11808:366;;;:::o;12180:419::-;12346:4;12384:2;12373:9;12369:18;12361:26;;12433:9;12427:4;12423:20;12419:1;12408:9;12404:17;12397:47;12461:131;12587:4;12461:131;:::i;:::-;12453:139;;12180:419;;;:::o;12605:180::-;12653:77;12650:1;12643:88;12750:4;12747:1;12740:15;12774:4;12771:1;12764:15;12791:170;12931:22;12927:1;12919:6;12915:14;12908:46;12791:170;:::o;12967:366::-;13109:3;13130:67;13194:2;13189:3;13130:67;:::i;:::-;13123:74;;13206:93;13295:3;13206:93;:::i;:::-;13324:2;13319:3;13315:12;13308:19;;12967:366;;;:::o;13339:419::-;13505:4;13543:2;13532:9;13528:18;13520:26;;13592:9;13586:4;13582:20;13578:1;13567:9;13563:17;13556:47;13620:131;13746:4;13620:131;:::i;:::-;13612:139;;13339:419;;;:::o;13764:166::-;13904:18;13900:1;13892:6;13888:14;13881:42;13764:166;:::o;13936:366::-;14078:3;14099:67;14163:2;14158:3;14099:67;:::i;:::-;14092:74;;14175:93;14264:3;14175:93;:::i;:::-;14293:2;14288:3;14284:12;14277:19;;13936:366;;;:::o;14308:419::-;14474:4;14512:2;14501:9;14497:18;14489:26;;14561:9;14555:4;14551:20;14547:1;14536:9;14532:17;14525:47;14589:131;14715:4;14589:131;:::i;:::-;14581:139;;14308:419;;;:::o;14733:180::-;14781:77;14778:1;14771:88;14878:4;14875:1;14868:15;14902:4;14899:1;14892:15;14919:194;14959:4;14979:20;14997:1;14979:20;:::i;:::-;14974:25;;15013:20;15031:1;15013:20;:::i;:::-;15008:25;;15057:1;15054;15050:9;15042:17;;15081:1;15075:4;15072:11;15069:37;;;15086:18;;:::i;:::-;15069:37;14919:194;;;;:::o;15119:180::-;15167:77;15164:1;15157:88;15264:4;15261:1;15254:15;15288:4;15285:1;15278:15;15305:320;15349:6;15386:1;15380:4;15376:12;15366:22;;15433:1;15427:4;15423:12;15454:18;15444:81;;15510:4;15502:6;15498:17;15488:27;;15444:81;15572:2;15564:6;15561:14;15541:18;15538:38;15535:84;;15591:18;;:::i;:::-;15535:84;15356:269;15305:320;;;:::o;15631:191::-;15671:3;15690:20;15708:1;15690:20;:::i;:::-;15685:25;;15724:20;15742:1;15724:20;:::i;:::-;15719:25;;15767:1;15764;15760:9;15753:16;;15788:3;15785:1;15782:10;15779:36;;;15795:18;;:::i;:::-;15779:36;15631:191;;;;:::o;15828:140::-;15876:4;15899:3;15891:11;;15922:3;15919:1;15912:14;15956:4;15953:1;15943:18;15935:26;;15828:140;;;:::o;15974:93::-;16011:6;16058:2;16053;16046:5;16042:14;16038:23;16028:33;;15974:93;;;:::o;16073:107::-;16117:8;16167:5;16161:4;16157:16;16136:37;;16073:107;;;;:::o;16186:393::-;16255:6;16305:1;16293:10;16289:18;16328:97;16358:66;16347:9;16328:97;:::i;:::-;16446:39;16476:8;16465:9;16446:39;:::i;:::-;16434:51;;16518:4;16514:9;16507:5;16503:21;16494:30;;16567:4;16557:8;16553:19;16546:5;16543:30;16533:40;;16262:317;;16186:393;;;;;:::o;16585:60::-;16613:3;16634:5;16627:12;;16585:60;;;:::o;16651:142::-;16701:9;16734:53;16752:34;16761:24;16779:5;16761:24;:::i;:::-;16752:34;:::i;:::-;16734:53;:::i;:::-;16721:66;;16651:142;;;:::o;16799:75::-;16842:3;16863:5;16856:12;;16799:75;;;:::o;16880:269::-;16990:39;17021:7;16990:39;:::i;:::-;17051:91;17100:41;17124:16;17100:41;:::i;:::-;17092:6;17085:4;17079:11;17051:91;:::i;:::-;17045:4;17038:105;16956:193;16880:269;;;:::o;17155:73::-;17200:3;17155:73;:::o;17234:189::-;17311:32;;:::i;:::-;17352:65;17410:6;17402;17396:4;17352:65;:::i;:::-;17287:136;17234:189;;:::o;17429:186::-;17489:120;17506:3;17499:5;17496:14;17489:120;;;17560:39;17597:1;17590:5;17560:39;:::i;:::-;17533:1;17526:5;17522:13;17513:22;;17489:120;;;17429:186;;:::o;17621:541::-;17721:2;17716:3;17713:11;17710:445;;;17755:37;17786:5;17755:37;:::i;:::-;17838:29;17856:10;17838:29;:::i;:::-;17828:8;17824:44;18021:2;18009:10;18006:18;18003:49;;;18042:8;18027:23;;18003:49;18065:80;18121:22;18139:3;18121:22;:::i;:::-;18111:8;18107:37;18094:11;18065:80;:::i;:::-;17725:430;;17710:445;17621:541;;;:::o;18168:117::-;18222:8;18272:5;18266:4;18262:16;18241:37;;18168:117;;;;:::o;18291:169::-;18335:6;18368:51;18416:1;18412:6;18404:5;18401:1;18397:13;18368:51;:::i;:::-;18364:56;18449:4;18443;18439:15;18429:25;;18342:118;18291:169;;;;:::o;18465:295::-;18541:4;18687:29;18712:3;18706:4;18687:29;:::i;:::-;18679:37;;18749:3;18746:1;18742:11;18736:4;18733:21;18725:29;;18465:295;;;;:::o;18765:1390::-;18880:36;18912:3;18880:36;:::i;:::-;18981:18;18973:6;18970:30;18967:56;;;19003:18;;:::i;:::-;18967:56;19047:38;19079:4;19073:11;19047:38;:::i;:::-;19132:66;19191:6;19183;19177:4;19132:66;:::i;:::-;19225:1;19249:4;19236:17;;19281:2;19273:6;19270:14;19298:1;19293:617;;;;19954:1;19971:6;19968:77;;;20020:9;20015:3;20011:19;20005:26;19996:35;;19968:77;20071:67;20131:6;20124:5;20071:67;:::i;:::-;20065:4;20058:81;19927:222;19263:886;;19293:617;19345:4;19341:9;19333:6;19329:22;19379:36;19410:4;19379:36;:::i;:::-;19437:1;19451:208;19465:7;19462:1;19459:14;19451:208;;;19544:9;19539:3;19535:19;19529:26;19521:6;19514:42;19595:1;19587:6;19583:14;19573:24;;19642:2;19631:9;19627:18;19614:31;;19488:4;19485:1;19481:12;19476:17;;19451:208;;;19687:6;19678:7;19675:19;19672:179;;;19745:9;19740:3;19736:19;19730:26;19788:48;19830:4;19822:6;19818:17;19807:9;19788:48;:::i;:::-;19780:6;19773:64;19695:156;19672:179;19897:1;19893;19885:6;19881:14;19877:22;19871:4;19864:36;19300:610;;;19263:886;;18855:1300;;;18765:1390;;:::o;20161:419::-;20300:4;20338:2;20327:9;20323:18;20315:26;;20351:71;20419:1;20408:9;20404:17;20395:6;20351:71;:::i;:::-;20469:9;20463:4;20459:20;20454:2;20443:9;20439:18;20432:48;20497:76;20568:4;20559:6;20497:76;:::i;:::-;20489:84;;20161:419;;;;;:::o;20586:167::-;20726:19;20722:1;20714:6;20710:14;20703:43;20586:167;:::o;20759:366::-;20901:3;20922:67;20986:2;20981:3;20922:67;:::i;:::-;20915:74;;20998:93;21087:3;20998:93;:::i;:::-;21116:2;21111:3;21107:12;21100:19;;20759:366;;;:::o;21131:419::-;21297:4;21335:2;21324:9;21320:18;21312:26;;21384:9;21378:4;21374:20;21370:1;21359:9;21355:17;21348:47;21412:131;21538:4;21412:131;:::i;:::-;21404:139;;21131:419;;;:::o;21556:147::-;21657:11;21694:3;21679:18;;21556:147;;;;:::o;21731:870::-;21832:3;21869:5;21863:12;21898:36;21924:9;21898:36;:::i;:::-;21950:88;22031:6;22026:3;21950:88;:::i;:::-;21943:95;;22069:1;22058:9;22054:17;22085:1;22080:166;;;;22260:1;22255:340;;;;22047:548;;22080:166;22164:4;22160:9;22149;22145:25;22140:3;22133:38;22226:6;22219:14;22212:22;22204:6;22200:35;22195:3;22191:45;22184:52;;22080:166;;22255:340;22322:37;22353:5;22322:37;:::i;:::-;22381:1;22395:154;22409:6;22406:1;22403:13;22395:154;;;22483:7;22477:14;22473:1;22468:3;22464:11;22457:35;22533:1;22524:7;22520:15;22509:26;;22431:4;22428:1;22424:12;22419:17;;22395:154;;;22578:6;22573:3;22569:16;22562:23;;22262:333;;22047:548;;21836:765;;21731:870;;;;:::o;22607:265::-;22734:3;22756:90;22842:3;22833:6;22756:90;:::i;:::-;22749:97;;22863:3;22856:10;;22607:265;;;;:::o;22878:159::-;23018:11;23014:1;23006:6;23002:14;22995:35;22878:159;:::o;23043:365::-;23185:3;23206:66;23270:1;23265:3;23206:66;:::i;:::-;23199:73;;23281:93;23370:3;23281:93;:::i;:::-;23399:2;23394:3;23390:12;23383:19;;23043:365;;;:::o;23414:419::-;23580:4;23618:2;23607:9;23603:18;23595:26;;23667:9;23661:4;23657:20;23653:1;23642:9;23638:17;23631:47;23695:131;23821:4;23695:131;:::i;:::-;23687:139;;23414:419;;;:::o" + }, + "methodIdentifiers": { + "confirmTransaction(uint256)": "c01a8c84", + "executeTransaction(uint256)": "ee22610b", + "getOwners()": "a0e67e2b", + "getTransaction(uint256)": "33ea3dc8", + "getTransactionCount()": "2e7700f0", + "isConfirmed(uint256,address)": "80f59a65", + "isOwner(address)": "2f54bf6e", + "numConfirmationsRequired()": "d0549b85", + "owners(uint256)": "025e7c27", + "revokeConfirmation(uint256)": "20ea8d86", + "submitTransaction(address,uint256,bytes)": "c6427474", + "transactions(uint256)": "9ace38c2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_numConfirmationsRequired\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"txIndex\",\"type\":\"uint256\"}],\"name\":\"ConfirmTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"txIndex\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"txIndex\",\"type\":\"uint256\"}],\"name\":\"RevokeConfirmation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owener\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"txIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SubmitTransaction\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_txIndex\",\"type\":\"uint256\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_txIndex\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_txIndex\",\"type\":\"uint256\"}],\"name\":\"getTransaction\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"numConfirmations\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTransactionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isConfirmed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numConfirmationsRequired\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_txIndex\",\"type\":\"uint256\"}],\"name\":\"revokeConfirmation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"submitTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transactions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"numConfirmations\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MultiSigWallet.sol\":\"MultiSigWallet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/MultiSigWallet.sol\":{\"keccak256\":\"0x31b5a0b5d6ed9cfc087631dae354d286a48459d9a5da00c844e6eb1ea6a85643\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d392db6a949ec88855d23451b79deb94c0ecdbb8c02320dd1a9ae33518aebe7\",\"dweb:/ipfs/Qmb6Y2JiHeZT5hvDpSWCpq2ZCvByp3KgEpnXnkkfz494vK\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/contract/ignition/deployments/chain-80002/deployed_addresses.json b/contract/ignition/deployments/chain-80002/deployed_addresses.json new file mode 100644 index 0000000..f323cbc --- /dev/null +++ b/contract/ignition/deployments/chain-80002/deployed_addresses.json @@ -0,0 +1,3 @@ +{ + "MultiSigWallet#MultiSigWallet": "0x375A5bbF574Cd10EaDCd9B632369Ce3644AcaE15" +} diff --git a/contract/ignition/deployments/chain-80002/journal.jsonl b/contract/ignition/deployments/chain-80002/journal.jsonl new file mode 100644 index 0000000..d3ff34c --- /dev/null +++ b/contract/ignition/deployments/chain-80002/journal.jsonl @@ -0,0 +1,7 @@ + +{"chainId":80002,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"MultiSigWallet#MultiSigWallet","constructorArgs":[["0xfE87F7EF2a58a1f363a444332df6c131C683e35f"],1],"contractName":"MultiSigWallet","dependencies":[],"from":"0xfe87f7ef2a58a1f363a444332df6c131c683e35f","futureId":"MultiSigWallet#MultiSigWallet","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"MultiSigWallet#MultiSigWallet","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b50604051620025a8380380620025a8833981810160405281019062000037919062000505565b60008251116200007e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007590620005cc565b60405180910390fd5b60008111801562000090575081518111155b620000d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c99062000664565b60405180910390fd5b60005b8251811015620002cc576000838281518110620000f757620000f662000686565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200016a9062000705565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000203576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001fa9062000777565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050620000d5565b5080600281905550505062000799565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034082620002f5565b810181811067ffffffffffffffff8211171562000362576200036162000306565b5b80604052505050565b600062000377620002dc565b905062000385828262000335565b919050565b600067ffffffffffffffff821115620003a857620003a762000306565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003eb82620003be565b9050919050565b620003fd81620003de565b81146200040957600080fd5b50565b6000815190506200041d81620003f2565b92915050565b60006200043a62000434846200038a565b6200036b565b9050808382526020820190506020840283018581111562000460576200045f620003b9565b5b835b818110156200048d57806200047888826200040c565b84526020840193505060208101905062000462565b5050509392505050565b600082601f830112620004af57620004ae620002f0565b5b8151620004c184826020860162000423565b91505092915050565b6000819050919050565b620004df81620004ca565b8114620004eb57600080fd5b50565b600081519050620004ff81620004d4565b92915050565b600080604083850312156200051f576200051e620002e6565b5b600083015167ffffffffffffffff81111562000540576200053f620002eb565b5b6200054e8582860162000497565b92505060206200056185828601620004ee565b9150509250929050565b600082825260208201905092915050565b7f6f776e6572732072657175697265640000000000000000000000000000000000600082015250565b6000620005b4600f836200056b565b9150620005c1826200057c565b602082019050919050565b60006020820190508181036000830152620005e781620005a5565b9050919050565b7f696e76616c6964206e756d626572206f6620726571756972656420636f6e666960008201527f726d6174696f6e73000000000000000000000000000000000000000000000000602082015250565b60006200064c6028836200056b565b91506200065982620005ee565b604082019050919050565b600060208201905081810360008301526200067f816200063d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f696e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000620006ed600d836200056b565b9150620006fa82620006b5565b602082019050919050565b600060208201905081810360008301526200072081620006de565b9050919050565b7f6f776e6572206e6f7420756e6971756500000000000000000000000000000000600082015250565b60006200075f6010836200056b565b91506200076c8262000727565b602082019050919050565b60006020820190508181036000830152620007928162000750565b9050919050565b611dff80620007a96000396000f3fe6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000fe87f7ef2a58a1f363a444332df6c131c683e35f","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"MultiSigWallet#MultiSigWallet","networkInteractionId":1,"nonce":0,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000000030"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000000"}},"hash":"0xd4dc229a0bf62662a2eb7b9d694a6ff854384b882fb2d1189fb83b6716f86ad1"},"type":"TRANSACTION_SEND"} +{"futureId":"MultiSigWallet#MultiSigWallet","hash":"0xd4dc229a0bf62662a2eb7b9d694a6ff854384b882fb2d1189fb83b6716f86ad1","networkInteractionId":1,"receipt":{"blockHash":"0x6f0664bbe1deab735065e919dc9ae82b486cd5ab63b8acfcd590acbd37f846c4","blockNumber":6731326,"contractAddress":"0x375A5bbF574Cd10EaDCd9B632369Ce3644AcaE15","logs":[{"address":"0x0000000000000000000000000000000000001010","data":"0x000000000000000000000000000000000000000000000000000678305e88060000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000004eb13811938060cb7800000000000000000000000000000000000000000000000002c012c05c8bfa0000000000000000000000000000000000000000000000004eb13e89c3dee8d178","logIndex":8,"topics":["0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63","0x0000000000000000000000000000000000000000000000000000000000001010","0x000000000000000000000000fe87f7ef2a58a1f363a444332df6c131c683e35f","0x00000000000000000000000022b64229c41429a023549fdab3385893b579327a"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"MultiSigWallet#MultiSigWallet","result":{"address":"0x375A5bbF574Cd10EaDCd9B632369Ce3644AcaE15","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/contract/ignition/modules/MultiSigWallet.ts b/contract/ignition/modules/MultiSigWallet.ts new file mode 100644 index 0000000..77ddc51 --- /dev/null +++ b/contract/ignition/modules/MultiSigWallet.ts @@ -0,0 +1,17 @@ +import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; + +const JAN_1ST_2030 = 1893456000; +const ONE_GWEI: bigint = 1_000_000_000n; + +const owners = ["0xfE87F7EF2a58a1f363a444332df6c131C683e35f"]; + +const MultiSigModule = buildModule("MultiSigWallet", (m) => { + const ownerP = m.getParameter("owners", owners); + const confirmationsP = m.getParameter("_numConfirmationsRequired", 1); + + const deploy = m.contract("MultiSigWallet", [ownerP, confirmationsP]); + + return { deploy }; +}); + +export default MultiSigModule; diff --git a/contract/package-lock.json b/contract/package-lock.json index 04deffc..a10a71b 100644 --- a/contract/package-lock.json +++ b/contract/package-lock.json @@ -1,9 +1,12 @@ { - "name": "block-accounting", + "name": "contract", "lockfileVersion": 3, "requires": true, "packages": { "": { + "dependencies": { + "dotenv": "^16.4.5" + }, "devDependencies": { "@nomicfoundation/hardhat-toolbox": "^5.0.0", "@types/chai": "^4.3.14", @@ -3301,6 +3304,17 @@ "node": ">=8" } }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", diff --git a/contract/package.json b/contract/package.json index 96582ea..24fb9ce 100644 --- a/contract/package.json +++ b/contract/package.json @@ -8,5 +8,8 @@ "hardhat": "^2.22.3", "ts-node": "^10.9.2", "typescript": "^5.4.5" + }, + "dependencies": { + "dotenv": "^16.4.5" } } From 5d5443b8ace0936053b81f74770dff8982cc1c5d Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Wed, 8 May 2024 00:28:55 +0300 Subject: [PATCH 05/17] hardhat init --- chain-api/.eslintrc.js | 25 + {contract => chain-api}/.gitignore | 2 + chain-api/.prettierrc | 4 + chain-api/README.md | 73 + chain-api/hardhat.config.ts | 22 + chain-api/nest-cli.json | 8 + chain-api/package-lock.json | 16648 ++++++++++ chain-api/package.json | 77 + chain-api/src/app.controller.spec.ts | 22 + chain-api/src/app.controller.ts | 12 + chain-api/src/app.module.ts | 12 + chain-api/src/app.service.ts | 8 + .../contract-factory.controller.spec.ts | 20 + .../contract-factory.controller.ts | 25 + .../contract-factory.module.ts | 11 + .../contract-factory.service.spec.ts | 18 + .../contract-factory.service.ts | 11 + .../dto/create-contract-factory.dto.ts | 12 + .../dto/update-contract-factory.dto.ts | 4 + .../contract-interact.controller.spec.ts | 20 + .../contract-interact.controller.ts | 49 + .../contract-interact.module.ts | 9 + .../contract-interact.service.spec.ts | 18 + .../contract-interact.service.ts | 26 + .../dto/create-contract-interact.dto.ts | 8 + .../dto/update-contract-interact.dto.ts | 4 + chain-api/src/hardhat/.gitignore | 18 + .../src/hardhat}/contracts/Lock.sol | 0 .../src/hardhat}/contracts/MultiSigWallet.sol | 0 chain-api/src/hardhat/contracts/Salaries.sol | 34 + .../src/hardhat}/ignition/modules/Lock.ts | 0 .../ignition/modules/MultiSigWallet.ts | 0 .../src/hardhat/ignition/modules/Salaries.ts | 11 + .../src/hardhat/module/hardhat.module.ts | 10 + .../src/hardhat/module/hardhat.service.ts | 31 + chain-api/src/main.ts | 17 + chain-api/test/app.e2e-spec.ts | 24 + chain-api/test/jest-e2e.json | 9 + chain-api/tsconfig.build.json | 4 + chain-api/tsconfig.json | 21 + contract/hardhat.config.ts | 15 - .../MultiSigWallet#MultiSigWallet.dbg.json | 4 - .../MultiSigWallet#MultiSigWallet.json | 391 - .../61afe259f874fc3da9eb2666746c2273.json | 25443 ---------------- .../chain-80002/deployed_addresses.json | 3 - .../deployments/chain-80002/journal.jsonl | 7 - contract/package-lock.json | 7360 ----- contract/package.json | 15 - contract/test/Lock.ts | 127 - contract/tsconfig.json | 11 - docs.md | 4 + 51 files changed, 17331 insertions(+), 33376 deletions(-) create mode 100644 chain-api/.eslintrc.js rename {contract => chain-api}/.gitignore (98%) create mode 100644 chain-api/.prettierrc create mode 100644 chain-api/README.md create mode 100644 chain-api/hardhat.config.ts create mode 100644 chain-api/nest-cli.json create mode 100644 chain-api/package-lock.json create mode 100644 chain-api/package.json create mode 100644 chain-api/src/app.controller.spec.ts create mode 100644 chain-api/src/app.controller.ts create mode 100644 chain-api/src/app.module.ts create mode 100644 chain-api/src/app.service.ts create mode 100644 chain-api/src/contract-factory/contract-factory.controller.spec.ts create mode 100644 chain-api/src/contract-factory/contract-factory.controller.ts create mode 100644 chain-api/src/contract-factory/contract-factory.module.ts create mode 100644 chain-api/src/contract-factory/contract-factory.service.spec.ts create mode 100644 chain-api/src/contract-factory/contract-factory.service.ts create mode 100644 chain-api/src/contract-factory/dto/create-contract-factory.dto.ts create mode 100644 chain-api/src/contract-factory/dto/update-contract-factory.dto.ts create mode 100644 chain-api/src/contract-interact/contract-interact.controller.spec.ts create mode 100644 chain-api/src/contract-interact/contract-interact.controller.ts create mode 100644 chain-api/src/contract-interact/contract-interact.module.ts create mode 100644 chain-api/src/contract-interact/contract-interact.service.spec.ts create mode 100644 chain-api/src/contract-interact/contract-interact.service.ts create mode 100644 chain-api/src/contract-interact/dto/create-contract-interact.dto.ts create mode 100644 chain-api/src/contract-interact/dto/update-contract-interact.dto.ts create mode 100644 chain-api/src/hardhat/.gitignore rename {contract => chain-api/src/hardhat}/contracts/Lock.sol (100%) rename {contract => chain-api/src/hardhat}/contracts/MultiSigWallet.sol (100%) create mode 100644 chain-api/src/hardhat/contracts/Salaries.sol rename {contract => chain-api/src/hardhat}/ignition/modules/Lock.ts (100%) rename {contract => chain-api/src/hardhat}/ignition/modules/MultiSigWallet.ts (100%) create mode 100644 chain-api/src/hardhat/ignition/modules/Salaries.ts create mode 100644 chain-api/src/hardhat/module/hardhat.module.ts create mode 100644 chain-api/src/hardhat/module/hardhat.service.ts create mode 100644 chain-api/src/main.ts create mode 100644 chain-api/test/app.e2e-spec.ts create mode 100644 chain-api/test/jest-e2e.json create mode 100644 chain-api/tsconfig.build.json create mode 100644 chain-api/tsconfig.json delete mode 100644 contract/hardhat.config.ts delete mode 100644 contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.dbg.json delete mode 100644 contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.json delete mode 100644 contract/ignition/deployments/chain-80002/build-info/61afe259f874fc3da9eb2666746c2273.json delete mode 100644 contract/ignition/deployments/chain-80002/deployed_addresses.json delete mode 100644 contract/ignition/deployments/chain-80002/journal.jsonl delete mode 100644 contract/package-lock.json delete mode 100644 contract/package.json delete mode 100644 contract/test/Lock.ts delete mode 100644 contract/tsconfig.json create mode 100644 docs.md diff --git a/chain-api/.eslintrc.js b/chain-api/.eslintrc.js new file mode 100644 index 0000000..259de13 --- /dev/null +++ b/chain-api/.eslintrc.js @@ -0,0 +1,25 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + tsconfigRootDir: __dirname, + sourceType: 'module', + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + root: true, + env: { + node: true, + jest: true, + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, +}; diff --git a/contract/.gitignore b/chain-api/.gitignore similarity index 98% rename from contract/.gitignore rename to chain-api/.gitignore index e8c12ff..bbdee3b 100644 --- a/contract/.gitignore +++ b/chain-api/.gitignore @@ -15,3 +15,5 @@ node_modules # Hardhat Ignition default folder for deployments against a local node ignition/deployments/chain-31337 + +dist \ No newline at end of file diff --git a/chain-api/.prettierrc b/chain-api/.prettierrc new file mode 100644 index 0000000..dcb7279 --- /dev/null +++ b/chain-api/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "trailingComma": "all" +} \ No newline at end of file diff --git a/chain-api/README.md b/chain-api/README.md new file mode 100644 index 0000000..00a13b1 --- /dev/null +++ b/chain-api/README.md @@ -0,0 +1,73 @@ + + +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Node.js framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Coverage +Discord +Backers on Open Collective +Sponsors on Open Collective + + Support us + +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. + +## Installation + +```bash +$ npm install +``` + +## Running the app + +```bash +# development +$ npm run start + +# watch mode +$ npm run start:dev + +# production mode +$ npm run start:prod +``` + +## Test + +```bash +# unit tests +$ npm run test + +# e2e tests +$ npm run test:e2e + +# test coverage +$ npm run test:cov +``` + +## Support + +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). + +## Stay in touch + +- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) + +## License + +Nest is [MIT licensed](LICENSE). diff --git a/chain-api/hardhat.config.ts b/chain-api/hardhat.config.ts new file mode 100644 index 0000000..7979d1c --- /dev/null +++ b/chain-api/hardhat.config.ts @@ -0,0 +1,22 @@ +require('@nomicfoundation/hardhat-toolbox'); +require('@nomicfoundation/hardhat-ethers'); +const dotenv = require('dotenv'); +dotenv.config(); + +const config = { + solidity: '0.8.24', + networks: { + amoy: { + url: `https://polygon-amoy.g.alchemy.com/v2/pEtFFy_Qr_NrM1vMnlzSXmYXkozVNzLy`, + accounts: [process.env.POLYGON_PK || ''], + }, + }, + paths: { + sources: './src/hardhat/contracts', + // tests: './src/hardhat/test', + cache: './src/hardhat/cache', + artifacts: './src/hardhat/artifacts', + }, +}; + +module.exports = config; diff --git a/chain-api/nest-cli.json b/chain-api/nest-cli.json new file mode 100644 index 0000000..f9aa683 --- /dev/null +++ b/chain-api/nest-cli.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src", + "compilerOptions": { + "deleteOutDir": true + } +} diff --git a/chain-api/package-lock.json b/chain-api/package-lock.json new file mode 100644 index 0000000..59d150d --- /dev/null +++ b/chain-api/package-lock.json @@ -0,0 +1,16648 @@ +{ + "name": "accounter-api", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "accounter-api", + "version": "0.0.1", + "license": "UNLICENSED", + "dependencies": { + "@chainlink/contracts": "^1.1.0", + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0", + "@nestjs/mapped-types": "*", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/swagger": "^7.3.1", + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "dotenv": "^16.4.5", + "reflect-metadata": "^0.1.13", + "rxjs": "^7.8.1" + }, + "devDependencies": { + "@nestjs/cli": "^10.0.0", + "@nestjs/schematics": "^10.0.0", + "@nestjs/testing": "^10.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.5", + "@types/express": "^4.17.17", + "@types/jest": "^29.5.2", + "@types/node": "^20.3.1", + "@types/supertest": "^2.0.12", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "eslint": "^8.42.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", + "ethers": "^6.12.1", + "hardhat": "^2.22.3", + "jest": "^29.5.0", + "prettier": "^3.0.0", + "source-map-support": "^0.5.21", + "supertest": "^6.3.3", + "ts-jest": "^29.1.0", + "ts-loader": "^9.4.3", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.1.3" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.2.tgz", + "integrity": "sha512-ku+/W/HMCBacSWFppenr9y6Lx8mDuTuQvn1IkTyBLiJOpWnzgVbx9kHDeaDchGa1PwLlJUBBrv27t3qgJOIDPw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "3.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.2.tgz", + "integrity": "sha512-8S9RuM8olFN/gwN+mjbuF1CwHX61f0i59EGXz9tXLnKRUTjsRR+8vVMTAmX0dvVAT5fJTG/T69X+HX7FeumdqA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.5", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-17.1.2.tgz", + "integrity": "sha512-bvXykYzSST05qFdlgIzUguNOb3z0hCa8HaTwtqdmQo9aFPf+P+/AC56I64t1iTchMjQtf3JrBQhYM25gUdcGbg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "ansi-colors": "4.1.3", + "inquirer": "9.2.12", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "bin": { + "schematics": "bin/schematics.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/inquirer": { + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", + "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "dev": true, + "dependencies": { + "@ljharb/through": "^2.3.11", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", + "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-simple-access": "^7.24.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/helper-validator-identifier": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", + "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@chainlink/contracts": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-1.1.0.tgz", + "integrity": "sha512-J+gDUCnEOJ2ofCvy5L2VLrQ7DVs0NXK31w8MQrW6U1GpjzU1j+it7FOJHZMxZKGg7wDdWI06aWmCgFeiD1H+bA==", + "dependencies": { + "@changesets/changelog-github": "^0.4.8", + "@changesets/cli": "~2.26.2", + "@eth-optimism/contracts": "0.6.0", + "@openzeppelin/contracts": "4.9.3", + "@openzeppelin/contracts-upgradeable": "4.9.3", + "@scroll-tech/contracts": "0.1.0", + "semver": "^7.6.0" + } + }, + "node_modules/@chainlink/contracts/node_modules/@eth-optimism/contracts": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eth-optimism/contracts/-/contracts-0.6.0.tgz", + "integrity": "sha512-vQ04wfG9kMf1Fwy3FEMqH2QZbgS0gldKhcBeBUPfO8zu68L61VI97UDXmsMQXzTsEAxK8HnokW3/gosl4/NW3w==", + "dependencies": { + "@eth-optimism/core-utils": "0.12.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0" + }, + "peerDependencies": { + "ethers": "^5" + } + }, + "node_modules/@chainlink/contracts/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/@changesets/apply-release-plan": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-6.1.4.tgz", + "integrity": "sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/config": "^2.3.1", + "@changesets/get-version-range-type": "^0.3.2", + "@changesets/git": "^2.0.0", + "@changesets/types": "^5.2.1", + "@manypkg/get-packages": "^1.1.3", + "detect-indent": "^6.0.0", + "fs-extra": "^7.0.1", + "lodash.startcase": "^4.4.0", + "outdent": "^0.5.0", + "prettier": "^2.7.1", + "resolve-from": "^5.0.0", + "semver": "^7.5.3" + } + }, + "node_modules/@changesets/apply-release-plan/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@changesets/apply-release-plan/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@changesets/apply-release-plan/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@changesets/apply-release-plan/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@changesets/apply-release-plan/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@changesets/assemble-release-plan": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-5.2.4.tgz", + "integrity": "sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.1.4", + "@changesets/get-dependents-graph": "^1.3.6", + "@changesets/types": "^5.2.1", + "@manypkg/get-packages": "^1.1.3", + "semver": "^7.5.3" + } + }, + "node_modules/@changesets/changelog-git": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.1.14.tgz", + "integrity": "sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==", + "dependencies": { + "@changesets/types": "^5.2.1" + } + }, + "node_modules/@changesets/changelog-github": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/@changesets/changelog-github/-/changelog-github-0.4.8.tgz", + "integrity": "sha512-jR1DHibkMAb5v/8ym77E4AMNWZKB5NPzw5a5Wtqm1JepAuIF+hrKp2u04NKM14oBZhHglkCfrla9uq8ORnK/dw==", + "dependencies": { + "@changesets/get-github-info": "^0.5.2", + "@changesets/types": "^5.2.1", + "dotenv": "^8.1.0" + } + }, + "node_modules/@changesets/changelog-github/node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@changesets/cli": { + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.26.2.tgz", + "integrity": "sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/apply-release-plan": "^6.1.4", + "@changesets/assemble-release-plan": "^5.2.4", + "@changesets/changelog-git": "^0.1.14", + "@changesets/config": "^2.3.1", + "@changesets/errors": "^0.1.4", + "@changesets/get-dependents-graph": "^1.3.6", + "@changesets/get-release-plan": "^3.0.17", + "@changesets/git": "^2.0.0", + "@changesets/logger": "^0.0.5", + "@changesets/pre": "^1.0.14", + "@changesets/read": "^0.5.9", + "@changesets/types": "^5.2.1", + "@changesets/write": "^0.2.3", + "@manypkg/get-packages": "^1.1.3", + "@types/is-ci": "^3.0.0", + "@types/semver": "^7.5.0", + "ansi-colors": "^4.1.3", + "chalk": "^2.1.0", + "enquirer": "^2.3.0", + "external-editor": "^3.1.0", + "fs-extra": "^7.0.1", + "human-id": "^1.0.2", + "is-ci": "^3.0.1", + "meow": "^6.0.0", + "outdent": "^0.5.0", + "p-limit": "^2.2.0", + "preferred-pm": "^3.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.5.3", + "spawndamnit": "^2.0.0", + "term-size": "^2.1.0", + "tty-table": "^4.1.5" + }, + "bin": { + "changeset": "bin.js" + } + }, + "node_modules/@changesets/cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/cli/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@changesets/cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@changesets/cli/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@changesets/cli/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@changesets/cli/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/cli/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@changesets/cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@changesets/cli/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@changesets/cli/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/cli/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@changesets/config": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@changesets/config/-/config-2.3.1.tgz", + "integrity": "sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==", + "dependencies": { + "@changesets/errors": "^0.1.4", + "@changesets/get-dependents-graph": "^1.3.6", + "@changesets/logger": "^0.0.5", + "@changesets/types": "^5.2.1", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1", + "micromatch": "^4.0.2" + } + }, + "node_modules/@changesets/config/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@changesets/config/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@changesets/config/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@changesets/errors": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.1.4.tgz", + "integrity": "sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==", + "dependencies": { + "extendable-error": "^0.1.5" + } + }, + "node_modules/@changesets/get-dependents-graph": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-1.3.6.tgz", + "integrity": "sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==", + "dependencies": { + "@changesets/types": "^5.2.1", + "@manypkg/get-packages": "^1.1.3", + "chalk": "^2.1.0", + "fs-extra": "^7.0.1", + "semver": "^7.5.3" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@changesets/get-dependents-graph/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@changesets/get-github-info": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@changesets/get-github-info/-/get-github-info-0.5.2.tgz", + "integrity": "sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==", + "dependencies": { + "dataloader": "^1.4.0", + "node-fetch": "^2.5.0" + } + }, + "node_modules/@changesets/get-release-plan": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-3.0.17.tgz", + "integrity": "sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/assemble-release-plan": "^5.2.4", + "@changesets/config": "^2.3.1", + "@changesets/pre": "^1.0.14", + "@changesets/read": "^0.5.9", + "@changesets/types": "^5.2.1", + "@manypkg/get-packages": "^1.1.3" + } + }, + "node_modules/@changesets/get-version-range-type": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz", + "integrity": "sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==" + }, + "node_modules/@changesets/git": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@changesets/git/-/git-2.0.0.tgz", + "integrity": "sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.1.4", + "@changesets/types": "^5.2.1", + "@manypkg/get-packages": "^1.1.3", + "is-subdir": "^1.1.1", + "micromatch": "^4.0.2", + "spawndamnit": "^2.0.0" + } + }, + "node_modules/@changesets/logger": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.0.5.tgz", + "integrity": "sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==", + "dependencies": { + "chalk": "^2.1.0" + } + }, + "node_modules/@changesets/logger/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/logger/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/logger/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@changesets/logger/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@changesets/logger/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@changesets/logger/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/logger/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/parse": { + "version": "0.3.16", + "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.3.16.tgz", + "integrity": "sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==", + "dependencies": { + "@changesets/types": "^5.2.1", + "js-yaml": "^3.13.1" + } + }, + "node_modules/@changesets/parse/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@changesets/parse/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@changesets/pre": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-1.0.14.tgz", + "integrity": "sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.1.4", + "@changesets/types": "^5.2.1", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1" + } + }, + "node_modules/@changesets/pre/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@changesets/pre/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@changesets/pre/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@changesets/read": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.5.9.tgz", + "integrity": "sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/git": "^2.0.0", + "@changesets/logger": "^0.0.5", + "@changesets/parse": "^0.3.16", + "@changesets/types": "^5.2.1", + "chalk": "^2.1.0", + "fs-extra": "^7.0.1", + "p-filter": "^2.1.0" + } + }, + "node_modules/@changesets/read/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/read/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/read/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@changesets/read/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@changesets/read/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@changesets/read/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@changesets/read/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/read/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@changesets/read/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/read/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@changesets/types": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-5.2.1.tgz", + "integrity": "sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==" + }, + "node_modules/@changesets/write": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.2.3.tgz", + "integrity": "sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/types": "^5.2.1", + "fs-extra": "^7.0.1", + "human-id": "^1.0.2", + "prettier": "^2.7.1" + } + }, + "node_modules/@changesets/write/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@changesets/write/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@changesets/write/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@changesets/write/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eth-optimism/core-utils": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eth-optimism/core-utils/-/core-utils-0.12.0.tgz", + "integrity": "sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw==", + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/contracts": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/providers": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bufio": "^1.0.7", + "chai": "^4.3.4" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "peer": true, + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "peer": true, + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/curves": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "peer": true, + "dependencies": { + "@noble/hashes": "1.3.3" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@scure/bip32": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", + "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", + "peer": true, + "dependencies": { + "@noble/curves": "~1.3.0", + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@scure/bip39": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", + "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", + "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "peer": true, + "dependencies": { + "@noble/curves": "1.3.0", + "@noble/hashes": "1.3.3", + "@scure/bip32": "1.3.3", + "@scure/bip39": "1.2.2" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "peer": true + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@ljharb/through": { + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", + "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@manypkg/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "@types/node": "^12.7.1", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" + } + }, + "node_modules/@manypkg/find-root/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "node_modules/@manypkg/find-root/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@manypkg/find-root/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@manypkg/find-root/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@manypkg/find-root/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@manypkg/find-root/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@manypkg/find-root/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@manypkg/find-root/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@manypkg/get-packages": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.3.tgz", + "integrity": "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "@changesets/types": "^4.0.1", + "@manypkg/find-root": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "^11.0.0", + "read-yaml-file": "^1.1.0" + } + }, + "node_modules/@manypkg/get-packages/node_modules/@changesets/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.1.0.tgz", + "integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==" + }, + "node_modules/@manypkg/get-packages/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@manypkg/get-packages/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@manypkg/get-packages/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==" + }, + "node_modules/@nestjs/cli": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-10.3.2.tgz", + "integrity": "sha512-aWmD1GLluWrbuC4a1Iz/XBk5p74Uj6nIVZj6Ov03JbTfgtWqGFLtXuMetvzMiHxfrHehx/myt2iKAPRhKdZvTg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "@angular-devkit/schematics-cli": "17.1.2", + "@nestjs/schematics": "^10.0.1", + "chalk": "4.1.2", + "chokidar": "3.6.0", + "cli-table3": "0.6.3", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "9.0.2", + "glob": "10.3.10", + "inquirer": "8.2.6", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "rimraf": "4.4.1", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.2.0", + "tsconfig-paths-webpack-plugin": "4.1.0", + "typescript": "5.3.3", + "webpack": "5.90.1", + "webpack-node-externals": "3.0.0" + }, + "bin": { + "nest": "bin/nest.js" + }, + "engines": { + "node": ">= 16.14" + }, + "peerDependencies": { + "@swc/cli": "^0.1.62 || ^0.3.0", + "@swc/core": "^1.3.62" + }, + "peerDependenciesMeta": { + "@swc/cli": { + "optional": true + }, + "@swc/core": { + "optional": true + } + } + }, + "node_modules/@nestjs/cli/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nestjs/cli/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nestjs/cli/node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@nestjs/cli/node_modules/webpack": { + "version": "5.90.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", + "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@nestjs/common": { + "version": "10.3.8", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.8.tgz", + "integrity": "sha512-P+vPEIvqx2e+fonsYVlFXKvoChyJ8Tq+lfpqdVFqblovHbFr3kZ/nYX0cPs+XuW6bnRT8tz0SSR9XBGU43kJhw==", + "dependencies": { + "iterare": "1.2.1", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/core": { + "version": "10.3.8", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.8.tgz", + "integrity": "sha512-AxF4tpYLDNn5Wfb3C4bNaaHJ4pREH5FJrSisR2A5zkYpQFORFs0Tc36lOFPMwBTy8Iv2wUwWLUVc5ftBnxEv4w==", + "hasInstallScript": true, + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "path-to-regexp": "3.2.0", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/websockets": "^10.0.0", + "reflect-metadata": "^0.1.12 || ^0.2.0", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/@nestjs/mapped-types": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.5.tgz", + "integrity": "sha512-bSJv4pd6EY99NX9CjBIyn4TVDoSit82DUZlL4I3bqNfy5Gt+gXTa86i3I/i0iIV9P4hntcGM5GyO+FhZAhxtyg==", + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "class-transformer": "^0.4.0 || ^0.5.0", + "class-validator": "^0.13.0 || ^0.14.0", + "reflect-metadata": "^0.1.12 || ^0.2.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/platform-express": { + "version": "10.3.8", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.3.8.tgz", + "integrity": "sha512-sifLoxgEJvAgbim1UuW6wyScMfkS9SVQRH+lN33N/9ZvZSjO6NSDLOe+wxqsnZkia+QrjFC0qy0ITRAsggfqbg==", + "dependencies": { + "body-parser": "1.20.2", + "cors": "2.8.5", + "express": "4.19.2", + "multer": "1.4.4-lts.1", + "tslib": "2.6.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0" + } + }, + "node_modules/@nestjs/schematics": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-10.1.1.tgz", + "integrity": "sha512-o4lfCnEeIkfJhGBbLZxTuVWcGuqDCFwg5OrvpgRUBM7vI/vONvKKiB5riVNpO+JqXoH0I42NNeDb0m4V5RREig==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "comment-json": "4.2.3", + "jsonc-parser": "3.2.1", + "pluralize": "8.0.0" + }, + "peerDependencies": { + "typescript": ">=4.8.2" + } + }, + "node_modules/@nestjs/schematics/node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/@nestjs/swagger": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-7.3.1.tgz", + "integrity": "sha512-LUC4mr+5oAleEC/a2j8pNRh1S5xhKXJ1Gal5ZdRjt9XebQgbngXCdW7JTA9WOEcwGtFZN9EnKYdquzH971LZfw==", + "dependencies": { + "@microsoft/tsdoc": "^0.14.2", + "@nestjs/mapped-types": "2.0.5", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "path-to-regexp": "3.2.0", + "swagger-ui-dist": "5.11.2" + }, + "peerDependencies": { + "@fastify/static": "^6.0.0 || ^7.0.0", + "@nestjs/common": "^9.0.0 || ^10.0.0", + "@nestjs/core": "^9.0.0 || ^10.0.0", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12 || ^0.2.0" + }, + "peerDependenciesMeta": { + "@fastify/static": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/testing": { + "version": "10.3.8", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.3.8.tgz", + "integrity": "sha512-hpX9das2TdFTKQ4/2ojhjI6YgXtCfXRKui3A4Qaj54VVzc5+mtK502Jj18Vzji98o9MVS6skmYu+S/UvW3U6Fw==", + "dev": true, + "dependencies": { + "tslib": "2.6.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + } + } + }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nomicfoundation/edr": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.3.7.tgz", + "integrity": "sha512-v2JFWnFKRsnOa6PDUrD+sr8amcdhxnG/YbL7LzmgRGU1odWEyOF4/EwNeUajQr4ZNKVWrYnJ6XjydXtUge5OBQ==", + "engines": { + "node": ">= 18" + }, + "optionalDependencies": { + "@nomicfoundation/edr-darwin-arm64": "0.3.7", + "@nomicfoundation/edr-darwin-x64": "0.3.7", + "@nomicfoundation/edr-linux-arm64-gnu": "0.3.7", + "@nomicfoundation/edr-linux-arm64-musl": "0.3.7", + "@nomicfoundation/edr-linux-x64-gnu": "0.3.7", + "@nomicfoundation/edr-linux-x64-musl": "0.3.7", + "@nomicfoundation/edr-win32-x64-msvc": "0.3.7" + } + }, + "node_modules/@nomicfoundation/edr-darwin-arm64": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.3.7.tgz", + "integrity": "sha512-6tK9Lv/lSfyBvpEQ4nsTfgxyDT1y1Uv/x8Wa+aB+E8qGo3ToexQ1BMVjxJk6PChXCDOWxB3B4KhqaZFjdhl3Ow==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-darwin-x64": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.3.7.tgz", + "integrity": "sha512-1RrQ/1JPwxrYO69e0tglFv5H+ggour5Ii3bb727+yBpBShrxtOTQ7fZyfxA5h62LCN+0Z9wYOPeQ7XFcVurMaQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.3.7.tgz", + "integrity": "sha512-ds/CKlBoVXIihjhflhgPn13EdKWed6r5bgvMs/YwRqT5wldQAQJZWAfA2+nYm0Yi2gMGh1RUpBcfkyl4pq7G+g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-arm64-musl": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.3.7.tgz", + "integrity": "sha512-e29udiRaPujhLkM3+R6ju7QISrcyOqpcaxb2FsDWBkuD7H8uU9JPZEyyUIpEp5uIY0Jh1eEJPKZKIXQmQAEAuw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-gnu": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.3.7.tgz", + "integrity": "sha512-/xkjmTyv+bbJ4akBCW0qzFKxPOV4AqLOmqurov+s9umHb16oOv72osSa3SdzJED2gHDaKmpMITT4crxbar4Axg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-linux-x64-musl": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.3.7.tgz", + "integrity": "sha512-QwBP9xlmsbf/ldZDGLcE4QiAb8Zt46E/+WLpxHBATFhGa7MrpJh6Zse+h2VlrT/SYLPbh2cpHgSmoSlqVxWG9g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/edr-win32-x64-msvc": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.3.7.tgz", + "integrity": "sha512-j/80DEnkxrF2ewdbk/gQ2EOPvgF0XSsg8D0o4+6cKhUVAW6XwtWKzIphNL6dyD2YaWEPgIrNvqiJK/aln0ww4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", + "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", + "dependencies": { + "@nomicfoundation/ethereumjs-util": "9.0.4" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", + "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", + "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", + "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "5.0.4", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "c-kzg": "^2.1.2" + }, + "peerDependenciesMeta": { + "c-kzg": { + "optional": true + } + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/hardhat-chai-matchers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.6.tgz", + "integrity": "sha512-Te1Uyo9oJcTCF0Jy9dztaLpshmlpjLf2yPtWXlXuLjMt3RRSmJLm/+rKVTW6gfadAEs12U/it6D0ZRnnRGiICQ==", + "peer": true, + "dependencies": { + "@types/chai-as-promised": "^7.1.3", + "chai-as-promised": "^7.1.1", + "deep-eql": "^4.0.1", + "ordinal": "^1.0.3" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "chai": "^4.2.0", + "ethers": "^6.1.0", + "hardhat": "^2.9.4" + } + }, + "node_modules/@nomicfoundation/hardhat-ethers": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz", + "integrity": "sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==", + "dependencies": { + "debug": "^4.1.1", + "lodash.isequal": "^4.5.0" + }, + "peerDependencies": { + "ethers": "^6.1.0", + "hardhat": "^2.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.2.tgz", + "integrity": "sha512-tdI+D+GwP8qBt3/sq0hGKk46lAfKnNj3ZtqxrNinOnQUfc3f9qXgZDFqWT2JudsmuQcuHFbn1FQ1zoDvjUVjRA==", + "peer": true, + "dependencies": { + "@nomicfoundation/ignition-core": "^0.15.2", + "@nomicfoundation/ignition-ui": "^0.15.2", + "chalk": "^4.0.0", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "prompts": "^2.4.2" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-verify": "^2.0.1", + "hardhat": "^2.18.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition-ethers": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.2.tgz", + "integrity": "sha512-rXkEpzl4ZNGfrht6ZFO+37dQvL+byrJaX7pNeSFzdKKqhEe4oboRwDWaBohQO+pCn837Qh/86xwwOFoGEv2+hg==", + "peer": true, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.4", + "@nomicfoundation/hardhat-ignition": "^0.15.2", + "@nomicfoundation/ignition-core": "^0.15.2", + "ethers": "^6.7.0", + "hardhat": "^2.18.0" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz", + "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==", + "peer": true, + "dependencies": { + "ethereumjs-util": "^7.1.4" + }, + "peerDependencies": { + "hardhat": "^2.9.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "peer": true, + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-toolbox": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz", + "integrity": "sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==", + "peerDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "@typechain/ethers-v6": "^0.5.0", + "@typechain/hardhat": "^9.0.0", + "@types/chai": "^4.2.0", + "@types/mocha": ">=9.1.0", + "@types/node": ">=18.0.0", + "chai": "^4.2.0", + "ethers": "^6.4.0", + "hardhat": "^2.11.0", + "hardhat-gas-reporter": "^1.0.8", + "solidity-coverage": "^0.8.1", + "ts-node": ">=8.0.0", + "typechain": "^8.3.0", + "typescript": ">=4.5.0" + } + }, + "node_modules/@nomicfoundation/hardhat-verify": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.6.tgz", + "integrity": "sha512-oKUI5fl8QC8jysE2LUBHE6rObzEmccJcc4b43Ov7LFMlCBZJE27qoqGIsg/++wX7L8Jdga+bkejPxl8NvsecpQ==", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^8.1.0", + "chalk": "^2.4.2", + "debug": "^4.1.1", + "lodash.clonedeep": "^4.5.0", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.14.0" + }, + "peerDependencies": { + "hardhat": "^2.0.4" + } + }, + "node_modules/@nomicfoundation/hardhat-verify/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nomicfoundation/hardhat-verify/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nomicfoundation/hardhat-verify/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@nomicfoundation/hardhat-verify/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/@nomicfoundation/hardhat-verify/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@nomicfoundation/hardhat-verify/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nomicfoundation/hardhat-verify/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@nomicfoundation/hardhat-verify/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nomicfoundation/ignition-core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.2.tgz", + "integrity": "sha512-6kchZOBh6zSl0BgG1bs6+ZbNYlGjeH22yi72mgeOa0oNOYFqCpka9a4FEYv0gfcphsMMmKTMlxadanf02ZoE4w==", + "peer": true, + "dependencies": { + "@ethersproject/address": "5.6.1", + "@nomicfoundation/solidity-analyzer": "^0.1.1", + "cbor": "^9.0.0", + "debug": "^4.3.2", + "ethers": "^6.7.0", + "fs-extra": "^10.0.0", + "immer": "10.0.2", + "lodash": "4.17.21", + "ndjson": "2.0.0" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "peer": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@nomicfoundation/ignition-ui": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.2.tgz", + "integrity": "sha512-NEX2prbfLEm45KbnBS0imvSgQgwLTgmT8zD3rAPmcIFZx+tLG4lKKw99k6EgEwmKwBiaO2zQMmt+FNoF7xGaiQ==", + "peer": true + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@openzeppelin/contracts": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.3.tgz", + "integrity": "sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg==" + }, + "node_modules/@openzeppelin/contracts-upgradeable": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.3.tgz", + "integrity": "sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A==" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@scroll-tech/contracts": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@scroll-tech/contracts/-/contracts-0.1.0.tgz", + "integrity": "sha512-aBbDOc3WB/WveZdpJYcrfvMYMz7ZTEiW8M9XMJLba8p9FAR5KGYB/cV+8+EUsq3MKt7C1BfR+WnXoTVdvwIY6w==" + }, + "node_modules/@scure/base": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz", + "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dependencies": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dependencies": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@solidity-parser/parser": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", + "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", + "peer": true, + "dependencies": { + "antlr4ts": "^0.5.0-alpha.4" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@typechain/ethers-v6": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", + "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", + "peer": true, + "dependencies": { + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" + }, + "peerDependencies": { + "ethers": "6.x", + "typechain": "^8.3.2", + "typescript": ">=4.7.0" + } + }, + "node_modules/@typechain/hardhat": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", + "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", + "peer": true, + "dependencies": { + "fs-extra": "^9.1.0" + }, + "peerDependencies": { + "@typechain/ethers-v6": "^0.5.1", + "ethers": "^6.1.0", + "hardhat": "^2.9.9", + "typechain": "^8.3.2" + } + }, + "node_modules/@typechain/hardhat/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.16", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.16.tgz", + "integrity": "sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==", + "peer": true + }, + "node_modules/@types/chai-as-promised": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", + "peer": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookiejar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", + "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "peer": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/is-ci": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/is-ci/-/is-ci-3.0.4.tgz", + "integrity": "sha512-AkCYCmwlXeuH89DagDCzvCAyltI2v9lh3U3DqSg/GrBYoReAaWwxfXCqMx9UV5MajLZ4ZFwZzV4cABGIxk2XRw==", + "dependencies": { + "ci-info": "^3.1.0" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" + }, + "node_modules/@types/methods": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", + "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "peer": true + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==" + }, + "node_modules/@types/mocha": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", + "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", + "peer": true + }, + "node_modules/@types/node": { + "version": "20.12.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz", + "integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "peer": true + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/secp256k1": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", + "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/superagent": { + "version": "8.1.7", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.7.tgz", + "integrity": "sha512-NmIsd0Yj4DDhftfWvvAku482PZum4DBW7U51OvS8gvOkDDY0WT1jsVyDV3hK+vplrsYw8oDwi9QxOM7U68iwww==", + "dev": true, + "dependencies": { + "@types/cookiejar": "^2.1.5", + "@types/methods": "^1.1.4", + "@types/node": "*" + } + }, + "node_modules/@types/supertest": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.16.tgz", + "integrity": "sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==", + "dev": true, + "dependencies": { + "@types/superagent": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "peer": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "peer": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "peer": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/better-path-resolve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", + "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", + "dependencies": { + "is-windows": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/breakword": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.6.tgz", + "integrity": "sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==", + "dependencies": { + "wcwidth": "^1.0.1" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/bufio": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.2.1.tgz", + "integrity": "sha512-9oR3zNdupcg/Ge2sSHQF3GX+kmvL/fTPvD0nd5AGLq8SjUYnTz+SlFjK/GXidndbZtIj+pVKXiWeR9w6e9wKCA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001616", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001616.tgz", + "integrity": "sha512-RHVYKov7IcdNjVHJFNY/78RdG4oGVjbayxv8u5IO74Wv7Hlq4PnJE6mo/OjFijjVFNy5ijnCt6H3IIo4t+wfEw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "peer": true + }, + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", + "peer": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "peer": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "peer": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "peer": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "peer": true, + "dependencies": { + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/command-line-usage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/command-line-usage/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/command-line-usage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/comment-json": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", + "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", + "dev": true, + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/csv": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.3.tgz", + "integrity": "sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==", + "dependencies": { + "csv-generate": "^3.4.3", + "csv-parse": "^4.16.3", + "csv-stringify": "^5.6.5", + "stream-transform": "^2.1.3" + }, + "engines": { + "node": ">= 0.1.90" + } + }, + "node_modules/csv-generate": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.3.tgz", + "integrity": "sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==" + }, + "node_modules/csv-parse": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==" + }, + "node_modules/csv-stringify": { + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.5.tgz", + "integrity": "sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dataloader": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", + "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==" + }, + "node_modules/death": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", + "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", + "peer": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "peer": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", + "peer": true, + "dependencies": { + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.758", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.758.tgz", + "integrity": "sha512-/o9x6TCdrYZBMdGeTifAP3wlF/gVT+TtWJe3BSmtNh92Mw81U9hrYwW9OAGUh+sEOX/yz5e34sksqRruZbjYrw==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz", + "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", + "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==", + "dev": true + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", + "peer": true, + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/escodegen/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "peer": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "optional": true, + "peer": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "peer": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eth-gas-reporter": { + "version": "0.2.27", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", + "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", + "peer": true, + "dependencies": { + "@solidity-parser/parser": "^0.14.0", + "axios": "^1.5.1", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^5.7.2", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^10.2.0", + "req-cwd": "^2.0.0", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" + }, + "peerDependencies": { + "@codechecks/client": "^0.1.0" + }, + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } + } + }, + "node_modules/eth-gas-reporter/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-gas-reporter/node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "peer": true, + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/eth-gas-reporter/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/eth-gas-reporter/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-gas-reporter/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "peer": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eth-gas-reporter/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "peer": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.1.0.tgz", + "integrity": "sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.4.0" + } + }, + "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethers": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.12.1.tgz", + "integrity": "sha512-j6wcVoZf06nqEcBbDWkKg8Fp895SS96dSnTCjiXT+8vt2o02raTn4Lo9ERUuIVU5bAjoPYeA+7ytQFexFmLuVw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "peer": true, + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "peer": true + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/extendable-error": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", + "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "peer": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root2": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", + "dependencies": { + "micromatch": "^4.0.2", + "pkg-dir": "^4.2.0" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flat-cache/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.0.2.tgz", + "integrity": "sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^8.2.0", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "webpack": "^5.11.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "dev": true, + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==" + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "dev": true + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "peer": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", + "peer": true, + "dependencies": { + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" + }, + "bin": { + "testrpc-sc": "index.js" + } + }, + "node_modules/ghost-testrpc/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ghost-testrpc/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ghost-testrpc/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ghost-testrpc/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/ghost-testrpc/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ghost-testrpc/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ghost-testrpc/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "peer": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "peer": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "peer": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/hardhat": { + "version": "2.22.3", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.3.tgz", + "integrity": "sha512-k8JV2ECWNchD6ahkg2BR5wKVxY0OiKot7fuxiIpRK0frRqyOljcR2vKwgWSLw6YIeDcNNA4xybj7Og7NSxr2hA==", + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/edr": "^0.3.5", + "@nomicfoundation/ethereumjs-common": "4.0.4", + "@nomicfoundation/ethereumjs-tx": "5.0.4", + "@nomicfoundation/ethereumjs-util": "9.0.4", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "boxen": "^5.1.2", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/hardhat-gas-reporter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", + "peer": true, + "dependencies": { + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" + }, + "peerDependencies": { + "hardhat": "^2.0.2" + } + }, + "node_modules/hardhat/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/hardhat/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/hardhat/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/hardhat/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/hardhat/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/hardhat/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/hardhat/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/hardhat/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/hardhat/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/hardhat/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hardhat/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/hardhat/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hardhat/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "peer": true + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "peer": true, + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "peer": true, + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "peer": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-id": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", + "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", + "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "peer": true + }, + "node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dependencies": { + "fp-ts": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-subdir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", + "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", + "dependencies": { + "better-path-resolve": "1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "peer": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keccak/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/load-yaml-file": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", + "dependencies": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.13.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/load-yaml-file/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/load-yaml-file/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/load-yaml-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "peer": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "peer": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "peer": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "peer": true + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", + "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "peer": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minipass": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.0.tgz", + "integrity": "sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mixme": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.10.tgz", + "integrity": "sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==", + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dependencies": { + "obliterator": "^2.0.0" + } + }, + "node_modules/mocha": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", + "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "8.1.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/mocha/node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mocha/node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/ndjson": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", + "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", + "peer": true, + "dependencies": { + "json-stringify-safe": "^5.0.1", + "minimist": "^1.2.5", + "readable-stream": "^3.6.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "ndjson": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ndjson/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "peer": true, + "engines": { + "node": ">=12.19" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "peer": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "peer": true, + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "peer": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ordinal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", + "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", + "peer": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/outdent": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", + "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==" + }, + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-filter/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "peer": true + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/preferred-pm": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.3.tgz", + "integrity": "sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==", + "dependencies": { + "find-up": "^5.0.0", + "find-yarn-workspace-root2": "1.2.16", + "path-exists": "^4.0.0", + "which-pm": "2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "peer": true, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-yaml-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", + "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "dependencies": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.6.1", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-yaml-file/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/read-yaml-file/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/read-yaml-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "peer": true, + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/recursive-readdir/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/recursive-readdir/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==" + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/req-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", + "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", + "peer": true, + "dependencies": { + "req-from": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", + "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", + "peer": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/req-from/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dev": true, + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sc-istanbul": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", + "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", + "peer": true, + "dependencies": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "istanbul": "lib/cli.js" + } + }, + "node_modules/sc-istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/sc-istanbul/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/sc-istanbul/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "peer": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sc-istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sc-istanbul/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sc-istanbul/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "peer": true + }, + "node_modules/sc-istanbul/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "peer": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sc-istanbul/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "peer": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/semver": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz", + "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha1": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", + "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", + "peer": true, + "dependencies": { + "charenc": ">= 0.0.1", + "crypt": ">= 0.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shelljs/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/shelljs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/smartwrap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.2.tgz", + "integrity": "sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==", + "dependencies": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" + }, + "bin": { + "smartwrap": "src/terminal-adapter.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/smartwrap/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/smartwrap/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/smartwrap/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smartwrap/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/smartwrap/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dependencies": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solcjs" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/solc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/solc/node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" + }, + "node_modules/solc/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "node_modules/solc/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/solc/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/solc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/solc/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solidity-coverage": { + "version": "0.8.12", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.12.tgz", + "integrity": "sha512-8cOB1PtjnjFRqOgwFiD8DaUsYJtVJ6+YdXQtSZDrLGf8cdhhh8xzTtGzVTGeBf15kTv0v7lYPJlV/az7zLEPJw==", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.0.9", + "@solidity-parser/parser": "^0.18.0", + "chalk": "^2.4.2", + "death": "^1.1.0", + "difflib": "^0.2.4", + "fs-extra": "^8.1.0", + "ghost-testrpc": "^0.0.2", + "global-modules": "^2.0.0", + "globby": "^10.0.1", + "jsonschema": "^1.2.4", + "lodash": "^4.17.21", + "mocha": "^10.2.0", + "node-emoji": "^1.10.0", + "pify": "^4.0.1", + "recursive-readdir": "^2.2.2", + "sc-istanbul": "^0.4.5", + "semver": "^7.3.4", + "shelljs": "^0.8.3", + "web3-utils": "^1.3.6" + }, + "bin": { + "solidity-coverage": "plugins/bin.js" + }, + "peerDependencies": { + "hardhat": "^2.11.0" + } + }, + "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "peer": true + }, + "node_modules/solidity-coverage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/solidity-coverage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/solidity-coverage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/solidity-coverage/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/solidity-coverage/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/solidity-coverage/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/solidity-coverage/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "peer": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/solidity-coverage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/solidity-coverage/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/solidity-coverage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawndamnit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", + "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", + "dependencies": { + "cross-spawn": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/spawndamnit/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/spawndamnit/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/spawndamnit/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawndamnit/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawndamnit/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/spawndamnit/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/spawndamnit/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==" + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "peer": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-transform": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.3.tgz", + "integrity": "sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==", + "dependencies": { + "mixme": "^0.5.1" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "peer": true + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "deprecated": "Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swagger-ui-dist": { + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.11.2.tgz", + "integrity": "sha512-jQG0cRgJNMZ7aCoiFofnoojeSaa/+KgWaDlfgs8QN+BXoGMpxeMVY5OEnjq4OlNvF3yjftO8c9GRAgcHlO+u7A==" + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "peer": true, + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "peer": true, + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "peer": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "peer": true, + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", + "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "peer": true, + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", + "peer": true + }, + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "peer": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" + } + }, + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "peer": true, + "peerDependencies": { + "typescript": ">=3.7.0" + } + }, + "node_modules/ts-jest": { + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", + "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths-webpack-plugin": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==" + }, + "node_modules/tty-table": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.2.3.tgz", + "integrity": "sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==", + "dependencies": { + "chalk": "^4.1.2", + "csv": "^5.5.3", + "kleur": "^4.1.5", + "smartwrap": "^2.0.2", + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.1", + "yargs": "^17.7.1" + }, + "bin": { + "tty-table": "adapters/terminal-adapter.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/tty-table/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typechain": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "peer": true, + "dependencies": { + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" + }, + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" + } + }, + "node_modules/typechain/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/typechain/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typechain/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/typechain/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/typechain/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "peer": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typechain/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "peer": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/typechain/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true, + "peer": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "dependencies": { + "@lukeed/csprng": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz", + "integrity": "sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "peer": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web3-utils": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", + "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", + "peer": true, + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "bn.js": "^5.2.1", + "ethereum-bloom-filters": "^1.0.6", + "ethereum-cryptography": "^2.1.2", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils/node_modules/@noble/curves": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "peer": true, + "dependencies": { + "@noble/hashes": "1.3.3" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@scure/bip32": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", + "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", + "peer": true, + "dependencies": { + "@noble/curves": "~1.3.0", + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/@scure/bip39": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", + "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/web3-utils/node_modules/ethereum-cryptography": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", + "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "peer": true, + "dependencies": { + "@noble/curves": "1.3.0", + "@noble/hashes": "1.3.3", + "@scure/bip32": "1.3.3", + "@scure/bip39": "1.2.2" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.91.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", + "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.16.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "node_modules/which-pm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", + "dependencies": { + "load-yaml-file": "^0.2.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8.15" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "peer": true + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "peer": true, + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/chain-api/package.json b/chain-api/package.json new file mode 100644 index 0000000..e5d6f4a --- /dev/null +++ b/chain-api/package.json @@ -0,0 +1,77 @@ +{ + "name": "accounter-api", + "version": "0.0.1", + "description": "", + "author": "", + "private": true, + "license": "UNLICENSED", + "scripts": { + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "nest start", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json" + }, + "dependencies": { + "@chainlink/contracts": "^1.1.0", + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0", + "@nestjs/mapped-types": "*", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/swagger": "^7.3.1", + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "dotenv": "^16.4.5", + "reflect-metadata": "^0.1.13", + "rxjs": "^7.8.1" + }, + "devDependencies": { + "@nestjs/cli": "^10.0.0", + "@nestjs/schematics": "^10.0.0", + "@nestjs/testing": "^10.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.5", + "@types/express": "^4.17.17", + "@types/jest": "^29.5.2", + "@types/node": "^20.3.1", + "@types/supertest": "^2.0.12", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "eslint": "^8.42.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", + "ethers": "^6.12.1", + "hardhat": "^2.22.3", + "jest": "^29.5.0", + "prettier": "^3.0.0", + "source-map-support": "^0.5.21", + "supertest": "^6.3.3", + "ts-jest": "^29.1.0", + "ts-loader": "^9.4.3", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.1.3" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + } +} diff --git a/chain-api/src/app.controller.spec.ts b/chain-api/src/app.controller.spec.ts new file mode 100644 index 0000000..d22f389 --- /dev/null +++ b/chain-api/src/app.controller.spec.ts @@ -0,0 +1,22 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; + +describe('AppController', () => { + let appController: AppController; + + beforeEach(async () => { + const app: TestingModule = await Test.createTestingModule({ + controllers: [AppController], + providers: [AppService], + }).compile(); + + appController = app.get(AppController); + }); + + describe('root', () => { + it('should return "Hello World!"', () => { + expect(appController.getHello()).toBe('Hello World!'); + }); + }); +}); diff --git a/chain-api/src/app.controller.ts b/chain-api/src/app.controller.ts new file mode 100644 index 0000000..cce879e --- /dev/null +++ b/chain-api/src/app.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { AppService } from './app.service'; + +@Controller() +export class AppController { + constructor(private readonly appService: AppService) {} + + @Get() + getHello(): string { + return this.appService.getHello(); + } +} diff --git a/chain-api/src/app.module.ts b/chain-api/src/app.module.ts new file mode 100644 index 0000000..93c68e0 --- /dev/null +++ b/chain-api/src/app.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; +import { ContractFactoryModule } from './contract-factory/contract-factory.module'; +import { ContractInteractModule } from './contract-interact/contract-interact.module'; + +@Module({ + imports: [ContractFactoryModule, ContractInteractModule], + controllers: [AppController], + providers: [AppService], +}) +export class AppModule {} diff --git a/chain-api/src/app.service.ts b/chain-api/src/app.service.ts new file mode 100644 index 0000000..927d7cc --- /dev/null +++ b/chain-api/src/app.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AppService { + getHello(): string { + return 'Hello World!'; + } +} diff --git a/chain-api/src/contract-factory/contract-factory.controller.spec.ts b/chain-api/src/contract-factory/contract-factory.controller.spec.ts new file mode 100644 index 0000000..42eedd4 --- /dev/null +++ b/chain-api/src/contract-factory/contract-factory.controller.spec.ts @@ -0,0 +1,20 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { ContractFactoryController } from './contract-factory.controller'; +import { ContractFactoryService } from './contract-factory.service'; + +describe('ContractFactoryController', () => { + let controller: ContractFactoryController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [ContractFactoryController], + providers: [ContractFactoryService], + }).compile(); + + controller = module.get(ContractFactoryController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/chain-api/src/contract-factory/contract-factory.controller.ts b/chain-api/src/contract-factory/contract-factory.controller.ts new file mode 100644 index 0000000..b537d0a --- /dev/null +++ b/chain-api/src/contract-factory/contract-factory.controller.ts @@ -0,0 +1,25 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, +} from '@nestjs/common'; +import { ContractFactoryService } from './contract-factory.service'; +import { CreateContractFactoryDto } from './dto/create-contract-factory.dto'; +import { UpdateContractFactoryDto } from './dto/update-contract-factory.dto'; +import { ApiTags } from '@nestjs/swagger'; +@ApiTags('contract-factory') +@Controller('contract-factory') +export class ContractFactoryController { + constructor( + private readonly contractFactoryService: ContractFactoryService, + ) {} + + @Post('') + create(@Body() createContractFactoryDto: CreateContractFactoryDto) { + return this.contractFactoryService.create(createContractFactoryDto); + } +} diff --git a/chain-api/src/contract-factory/contract-factory.module.ts b/chain-api/src/contract-factory/contract-factory.module.ts new file mode 100644 index 0000000..9688aba --- /dev/null +++ b/chain-api/src/contract-factory/contract-factory.module.ts @@ -0,0 +1,11 @@ +import { HardhatModule } from '../hardhat/module/hardhat.module'; +import { Module } from '@nestjs/common'; +import { ContractFactoryService } from './contract-factory.service'; +import { ContractFactoryController } from './contract-factory.controller'; + +@Module({ + imports: [HardhatModule], + controllers: [ContractFactoryController], + providers: [ContractFactoryService], +}) +export class ContractFactoryModule {} diff --git a/chain-api/src/contract-factory/contract-factory.service.spec.ts b/chain-api/src/contract-factory/contract-factory.service.spec.ts new file mode 100644 index 0000000..cff59d1 --- /dev/null +++ b/chain-api/src/contract-factory/contract-factory.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { ContractFactoryService } from './contract-factory.service'; + +describe('ContractFactoryService', () => { + let service: ContractFactoryService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ContractFactoryService], + }).compile(); + + service = module.get(ContractFactoryService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/chain-api/src/contract-factory/contract-factory.service.ts b/chain-api/src/contract-factory/contract-factory.service.ts new file mode 100644 index 0000000..07cb6a0 --- /dev/null +++ b/chain-api/src/contract-factory/contract-factory.service.ts @@ -0,0 +1,11 @@ +import { HardhatService } from '../hardhat/module/hardhat.service'; +import { Injectable } from '@nestjs/common'; +import { CreateContractFactoryDto } from './dto/create-contract-factory.dto'; + +@Injectable() +export class ContractFactoryService { + constructor(private readonly hhService: HardhatService) {} + async create(createContractFactoryDto: CreateContractFactoryDto) { + return await this.hhService.deploySalaryContract(); + } +} diff --git a/chain-api/src/contract-factory/dto/create-contract-factory.dto.ts b/chain-api/src/contract-factory/dto/create-contract-factory.dto.ts new file mode 100644 index 0000000..4fe0997 --- /dev/null +++ b/chain-api/src/contract-factory/dto/create-contract-factory.dto.ts @@ -0,0 +1,12 @@ +import { ApiProperty } from '@nestjs/swagger'; +export enum ContractType { + SALARY, + AGREEMENT, +} + +export class CreateContractFactoryDto { + @ApiProperty({ + enum: ContractType, + }) + contractType: ContractType; +} diff --git a/chain-api/src/contract-factory/dto/update-contract-factory.dto.ts b/chain-api/src/contract-factory/dto/update-contract-factory.dto.ts new file mode 100644 index 0000000..0fbfa0a --- /dev/null +++ b/chain-api/src/contract-factory/dto/update-contract-factory.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/mapped-types'; +import { CreateContractFactoryDto } from './create-contract-factory.dto'; + +export class UpdateContractFactoryDto extends PartialType(CreateContractFactoryDto) {} diff --git a/chain-api/src/contract-interact/contract-interact.controller.spec.ts b/chain-api/src/contract-interact/contract-interact.controller.spec.ts new file mode 100644 index 0000000..0ca68e9 --- /dev/null +++ b/chain-api/src/contract-interact/contract-interact.controller.spec.ts @@ -0,0 +1,20 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { ContractInteractController } from './contract-interact.controller'; +import { ContractInteractService } from './contract-interact.service'; + +describe('ContractInteractController', () => { + let controller: ContractInteractController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [ContractInteractController], + providers: [ContractInteractService], + }).compile(); + + controller = module.get(ContractInteractController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/chain-api/src/contract-interact/contract-interact.controller.ts b/chain-api/src/contract-interact/contract-interact.controller.ts new file mode 100644 index 0000000..f42ca09 --- /dev/null +++ b/chain-api/src/contract-interact/contract-interact.controller.ts @@ -0,0 +1,49 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, +} from '@nestjs/common'; +import { ContractInteractService } from './contract-interact.service'; +import { CreateContractInteractDto } from './dto/create-contract-interact.dto'; +import { UpdateContractInteractDto } from './dto/update-contract-interact.dto'; +import { ApiTags } from '@nestjs/swagger'; + +@ApiTags('contract-interact') +@Controller('contract-interact') +export class ContractInteractController { + constructor( + private readonly contractInteractService: ContractInteractService, + ) {} + + @Post() + create(@Body() createContractInteractDto: CreateContractInteractDto) { + return this.contractInteractService.create(createContractInteractDto); + } + + @Get() + findAll() { + return this.contractInteractService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.contractInteractService.findOne(+id); + } + + @Patch(':id') + update( + @Param('id') id: string, + @Body() updateContractInteractDto: UpdateContractInteractDto, + ) { + return this.contractInteractService.update(+id, updateContractInteractDto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.contractInteractService.remove(+id); + } +} diff --git a/chain-api/src/contract-interact/contract-interact.module.ts b/chain-api/src/contract-interact/contract-interact.module.ts new file mode 100644 index 0000000..56e3a19 --- /dev/null +++ b/chain-api/src/contract-interact/contract-interact.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { ContractInteractService } from './contract-interact.service'; +import { ContractInteractController } from './contract-interact.controller'; + +@Module({ + controllers: [ContractInteractController], + providers: [ContractInteractService], +}) +export class ContractInteractModule {} diff --git a/chain-api/src/contract-interact/contract-interact.service.spec.ts b/chain-api/src/contract-interact/contract-interact.service.spec.ts new file mode 100644 index 0000000..fa58751 --- /dev/null +++ b/chain-api/src/contract-interact/contract-interact.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { ContractInteractService } from './contract-interact.service'; + +describe('ContractInteractService', () => { + let service: ContractInteractService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ContractInteractService], + }).compile(); + + service = module.get(ContractInteractService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/chain-api/src/contract-interact/contract-interact.service.ts b/chain-api/src/contract-interact/contract-interact.service.ts new file mode 100644 index 0000000..5249e46 --- /dev/null +++ b/chain-api/src/contract-interact/contract-interact.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@nestjs/common'; +import { CreateContractInteractDto } from './dto/create-contract-interact.dto'; +import { UpdateContractInteractDto } from './dto/update-contract-interact.dto'; + +@Injectable() +export class ContractInteractService { + create(createContractInteractDto: CreateContractInteractDto) { + return 'This action adds a new contractInteract'; + } + + findAll() { + return `This action returns all contractInteract`; + } + + findOne(id: number) { + return `This action returns a #${id} contractInteract`; + } + + update(id: number, updateContractInteractDto: UpdateContractInteractDto) { + return `This action updates a #${id} contractInteract`; + } + + remove(id: number) { + return `This action removes a #${id} contractInteract`; + } +} diff --git a/chain-api/src/contract-interact/dto/create-contract-interact.dto.ts b/chain-api/src/contract-interact/dto/create-contract-interact.dto.ts new file mode 100644 index 0000000..55510a9 --- /dev/null +++ b/chain-api/src/contract-interact/dto/create-contract-interact.dto.ts @@ -0,0 +1,8 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class CreateContractInteractDto { + @ApiProperty() + contractAddress: string; + @ApiProperty() + sender: string; +} diff --git a/chain-api/src/contract-interact/dto/update-contract-interact.dto.ts b/chain-api/src/contract-interact/dto/update-contract-interact.dto.ts new file mode 100644 index 0000000..ec7c282 --- /dev/null +++ b/chain-api/src/contract-interact/dto/update-contract-interact.dto.ts @@ -0,0 +1,4 @@ +import { PartialType } from '@nestjs/swagger'; +import { CreateContractInteractDto } from './create-contract-interact.dto'; + +export class UpdateContractInteractDto extends PartialType(CreateContractInteractDto) {} diff --git a/chain-api/src/hardhat/.gitignore b/chain-api/src/hardhat/.gitignore new file mode 100644 index 0000000..6e64e43 --- /dev/null +++ b/chain-api/src/hardhat/.gitignore @@ -0,0 +1,18 @@ +node_modules +.env + +# Hardhat files +/cache +/artifacts + +# TypeChain files +/typechain +/typechain-types + +# solidity-coverage files +/coverage +/coverage.json + +# Hardhat Ignition default folder for deployments against a local node +ignition/deployments/chain-31337 +ignition/deployments/chain-80002 \ No newline at end of file diff --git a/contract/contracts/Lock.sol b/chain-api/src/hardhat/contracts/Lock.sol similarity index 100% rename from contract/contracts/Lock.sol rename to chain-api/src/hardhat/contracts/Lock.sol diff --git a/contract/contracts/MultiSigWallet.sol b/chain-api/src/hardhat/contracts/MultiSigWallet.sol similarity index 100% rename from contract/contracts/MultiSigWallet.sol rename to chain-api/src/hardhat/contracts/MultiSigWallet.sol diff --git a/chain-api/src/hardhat/contracts/Salaries.sol b/chain-api/src/hardhat/contracts/Salaries.sol new file mode 100644 index 0000000..ac4c346 --- /dev/null +++ b/chain-api/src/hardhat/contracts/Salaries.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.7; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; + +contract Salaries { + AggregatorV3Interface internal dataFeed; + + /** + * Network: Sepolia + * Aggregator: BTC/USD + * Address: 0x1b44F3514812d835EB1BDB0acB33d3fA3351Ee43 + */ + constructor() { + dataFeed = AggregatorV3Interface( + 0xF0d50568e3A7e8259E16663972b11910F89BD8e7 + ); + } + + /** + * Returns the latest answer. + */ + function getChainlinkDataFeedLatestAnswer() public view returns (int) { + // prettier-ignore + ( + /* uint80 roundID */, + int answer, + /*uint startedAt*/, + /*uint timeStamp*/, + /*uint80 answeredInRound*/ + ) = dataFeed.latestRoundData(); + return answer; + } +} diff --git a/contract/ignition/modules/Lock.ts b/chain-api/src/hardhat/ignition/modules/Lock.ts similarity index 100% rename from contract/ignition/modules/Lock.ts rename to chain-api/src/hardhat/ignition/modules/Lock.ts diff --git a/contract/ignition/modules/MultiSigWallet.ts b/chain-api/src/hardhat/ignition/modules/MultiSigWallet.ts similarity index 100% rename from contract/ignition/modules/MultiSigWallet.ts rename to chain-api/src/hardhat/ignition/modules/MultiSigWallet.ts diff --git a/chain-api/src/hardhat/ignition/modules/Salaries.ts b/chain-api/src/hardhat/ignition/modules/Salaries.ts new file mode 100644 index 0000000..b802d35 --- /dev/null +++ b/chain-api/src/hardhat/ignition/modules/Salaries.ts @@ -0,0 +1,11 @@ +import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; +//npx hardhat ignition deploy ignition/modules/Salaries.ts --network amoy +//SalariesModule#Salaries - 0xac45e95Dd5C7F9B1a6C3e4883d04952B9C974b05 +const SalariesModule = buildModule("SalariesModule", (m) => { + const salaryContract = m.contract("Salaries"); + + const answer = m.call(salaryContract, "getChainlinkDataFeedLatestAnswer", []); + console.log("🚀 ~ SalariesModule ~ answer:", answer); + return { salaryContract }; +}); +export default SalariesModule; diff --git a/chain-api/src/hardhat/module/hardhat.module.ts b/chain-api/src/hardhat/module/hardhat.module.ts new file mode 100644 index 0000000..a683e25 --- /dev/null +++ b/chain-api/src/hardhat/module/hardhat.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { HardhatService } from './hardhat.service'; + +@Module({ + imports: [], + controllers: [], + providers: [HardhatService], + exports: [HardhatService], +}) +export class HardhatModule {} diff --git a/chain-api/src/hardhat/module/hardhat.service.ts b/chain-api/src/hardhat/module/hardhat.service.ts new file mode 100644 index 0000000..142d231 --- /dev/null +++ b/chain-api/src/hardhat/module/hardhat.service.ts @@ -0,0 +1,31 @@ +const hre = require('hardhat'); +// import hre from 'hardhat'; +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class HardhatService { + async deploySalaryContract() { + // const { salaryAmount, userAddress } = req.body; + + // // Read the Solidity contract template file + // const solidityCode = readSolidityTemplate(); // Implement this function to read the Solidity template file + + // // Replace placeholders in the Solidity contract template with provided values + // const finalSolidityCode = replacePlaceholders(solidityCode, { + // salaryAmount, + // userAddress, + // }); + + // // Compile the Solidity contract + // const compiledContract = await compileSolidity(finalSolidityCode); + + // // Deploy the contract + // const deployedContract = await deployContract(compiledContract); + const salaryC = await hre.ethers.getContractFactory('Salaries'); + const myContract = await salaryC.deploy(); + console.log( + '🚀 ~ HardhatService ~ deploySalaryContract ~ myContract:', + myContract, + ); + } +} diff --git a/chain-api/src/main.ts b/chain-api/src/main.ts new file mode 100644 index 0000000..52240b8 --- /dev/null +++ b/chain-api/src/main.ts @@ -0,0 +1,17 @@ +import { NestFactory } from '@nestjs/core'; +import { AppModule } from './app.module'; +import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; +async function bootstrap() { + const app = await NestFactory.create(AppModule); + + const config = new DocumentBuilder() + .setTitle('Chain') + .setDescription('The chain API description') + .setVersion('1.0') + .build(); + const document = SwaggerModule.createDocument(app, config); + SwaggerModule.setup('api', app, document); + await app.listen(3000); + console.log('Swagger avaliable at http://localhost:3000/api'); +} +bootstrap(); diff --git a/chain-api/test/app.e2e-spec.ts b/chain-api/test/app.e2e-spec.ts new file mode 100644 index 0000000..50cda62 --- /dev/null +++ b/chain-api/test/app.e2e-spec.ts @@ -0,0 +1,24 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from './../src/app.module'; + +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/ (GET)', () => { + return request(app.getHttpServer()) + .get('/') + .expect(200) + .expect('Hello World!'); + }); +}); diff --git a/chain-api/test/jest-e2e.json b/chain-api/test/jest-e2e.json new file mode 100644 index 0000000..e9d912f --- /dev/null +++ b/chain-api/test/jest-e2e.json @@ -0,0 +1,9 @@ +{ + "moduleFileExtensions": ["js", "json", "ts"], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".e2e-spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} diff --git a/chain-api/tsconfig.build.json b/chain-api/tsconfig.build.json new file mode 100644 index 0000000..64f86c6 --- /dev/null +++ b/chain-api/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/chain-api/tsconfig.json b/chain-api/tsconfig.json new file mode 100644 index 0000000..95f5641 --- /dev/null +++ b/chain-api/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "ES2021", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false + } +} diff --git a/contract/hardhat.config.ts b/contract/hardhat.config.ts deleted file mode 100644 index a6d7f89..0000000 --- a/contract/hardhat.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { HardhatUserConfig, vars } from "hardhat/config"; -import "@nomicfoundation/hardhat-toolbox"; -import dotenv from "dotenv"; -dotenv.config(); -const config: HardhatUserConfig = { - solidity: "0.8.24", - networks: { - polygon: { - url: `https://polygon-amoy.g.alchemy.com/v2/pEtFFy_Qr_NrM1vMnlzSXmYXkozVNzLy`, - accounts: [process.env.POLYGON_PK || ""], - }, - }, -}; - -export default config; diff --git a/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.dbg.json b/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.dbg.json deleted file mode 100644 index 668ffe8..0000000 --- a/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/61afe259f874fc3da9eb2666746c2273.json" -} \ No newline at end of file diff --git a/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.json b/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.json deleted file mode 100644 index 11b4a62..0000000 --- a/contract/ignition/deployments/chain-80002/artifacts/MultiSigWallet#MultiSigWallet.json +++ /dev/null @@ -1,391 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MultiSigWallet", - "sourceName": "contracts/MultiSigWallet.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address[]", - "name": "_owners", - "type": "address[]" - }, - { - "internalType": "uint256", - "name": "_numConfirmationsRequired", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "txIndex", - "type": "uint256" - } - ], - "name": "ConfirmTransaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "txIndex", - "type": "uint256" - } - ], - "name": "ExecuteTransaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "txIndex", - "type": "uint256" - } - ], - "name": "RevokeConfirmation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owener", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "txIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "SubmitTransaction", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_txIndex", - "type": "uint256" - } - ], - "name": "confirmTransaction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_txIndex", - "type": "uint256" - } - ], - "name": "executeTransaction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_txIndex", - "type": "uint256" - } - ], - "name": "getTransaction", - "outputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "executed", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "numConfirmations", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTransactionCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "isConfirmed", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "numConfirmationsRequired", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "owners", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_txIndex", - "type": "uint256" - } - ], - "name": "revokeConfirmation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "submitTransaction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "transactions", - "outputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "executed", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "numConfirmations", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620025a8380380620025a8833981810160405281019062000037919062000505565b60008251116200007e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007590620005cc565b60405180910390fd5b60008111801562000090575081518111155b620000d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c99062000664565b60405180910390fd5b60005b8251811015620002cc576000838281518110620000f757620000f662000686565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200016a9062000705565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000203576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001fa9062000777565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050620000d5565b5080600281905550505062000799565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034082620002f5565b810181811067ffffffffffffffff8211171562000362576200036162000306565b5b80604052505050565b600062000377620002dc565b905062000385828262000335565b919050565b600067ffffffffffffffff821115620003a857620003a762000306565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003eb82620003be565b9050919050565b620003fd81620003de565b81146200040957600080fd5b50565b6000815190506200041d81620003f2565b92915050565b60006200043a62000434846200038a565b6200036b565b9050808382526020820190506020840283018581111562000460576200045f620003b9565b5b835b818110156200048d57806200047888826200040c565b84526020840193505060208101905062000462565b5050509392505050565b600082601f830112620004af57620004ae620002f0565b5b8151620004c184826020860162000423565b91505092915050565b6000819050919050565b620004df81620004ca565b8114620004eb57600080fd5b50565b600081519050620004ff81620004d4565b92915050565b600080604083850312156200051f576200051e620002e6565b5b600083015167ffffffffffffffff81111562000540576200053f620002eb565b5b6200054e8582860162000497565b92505060206200056185828601620004ee565b9150509250929050565b600082825260208201905092915050565b7f6f776e6572732072657175697265640000000000000000000000000000000000600082015250565b6000620005b4600f836200056b565b9150620005c1826200057c565b602082019050919050565b60006020820190508181036000830152620005e781620005a5565b9050919050565b7f696e76616c6964206e756d626572206f6620726571756972656420636f6e666960008201527f726d6174696f6e73000000000000000000000000000000000000000000000000602082015250565b60006200064c6028836200056b565b91506200065982620005ee565b604082019050919050565b600060208201905081810360008301526200067f816200063d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f696e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000620006ed600d836200056b565b9150620006fa82620006b5565b602082019050919050565b600060208201905081810360008301526200072081620006de565b9050919050565b7f6f776e6572206e6f7420756e6971756500000000000000000000000000000000600082015250565b60006200075f6010836200056b565b91506200076c8262000727565b602082019050919050565b60006020820190508181036000830152620007928162000750565b9050919050565b611dff80620007a96000396000f3fe6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033", - "deployedBytecode": "0x6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/contract/ignition/deployments/chain-80002/build-info/61afe259f874fc3da9eb2666746c2273.json b/contract/ignition/deployments/chain-80002/build-info/61afe259f874fc3da9eb2666746c2273.json deleted file mode 100644 index c8d165b..0000000 --- a/contract/ignition/deployments/chain-80002/build-info/61afe259f874fc3da9eb2666746c2273.json +++ /dev/null @@ -1,25443 +0,0 @@ -{ - "id": "61afe259f874fc3da9eb2666746c2273", - "_format": "hh-sol-build-info-1", - "solcVersion": "0.8.24", - "solcLongVersion": "0.8.24+commit.e11b9ed9", - "input": { - "language": "Solidity", - "sources": { - "contracts/MultiSigWallet.sol": { - "content": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.19;\n// The wallet owners can\n// submit a transaction\n// approve and revoke approval of pending transactions\n// anyone can execute a transaction after enough owners has approved it.\ncontract MultiSigWallet {\n event Deposit(address indexed sender, uint amount, uint balance);\n event SubmitTransaction(\n address indexed owener,\n uint indexed txIndex,\n address indexed to,\n uint value,\n bytes data\n );\n\n event ConfirmTransaction(address indexed owner, uint indexed txIndex);\n event RevokeConfirmation(address indexed owner, uint indexed txIndex);\n event ExecuteTransaction(address indexed owner, uint indexed txIndex);\n\n address[] public owners;\n\n mapping(address => bool) public isOwner;\n\n uint public numConfirmationsRequired;\n\n struct Transaction {\n address to;\n uint value;\n bytes data;\n bool executed;\n uint numConfirmations;\n }\n\n mapping(uint => mapping(address => bool)) public isConfirmed;\n\n Transaction[] public transactions;\n\n modifier onlyOwner() {\n require(isOwner[msg.sender], \"not owner\");\n _;\n }\n\n modifier txExists(uint _txIndex) {\n require(_txIndex < transactions.length, \"tx does not exist\");\n _;\n }\n\n modifier notConfirmed(uint _txIndex) {\n require(!isConfirmed[_txIndex][msg.sender], \"tx already confirmed\");\n _;\n }\n\n modifier notExecuted(uint _txIndex) {\n require(!transactions[_txIndex].executed, \"tx already confirmed\");\n _;\n }\n\n constructor(address[] memory _owners, uint _numConfirmationsRequired) {\n require(_owners.length > 0, \"owners required\");\n require(\n _numConfirmationsRequired > 0 &&\n _numConfirmationsRequired <= _owners.length,\n \"invalid number of required confirmations\"\n );\n for (uint i = 0; i < _owners.length; i++) {\n address owner = _owners[i];\n require(owner != address(0), \"invalid owner\");\n require(!isOwner[owner], \"owner not unique\");\n isOwner[owner] = true;\n owners.push(owner);\n }\n numConfirmationsRequired = _numConfirmationsRequired;\n }\n\n receive() external payable {\n emit Deposit(msg.sender, msg.value, address(this).balance);\n }\n\n function submitTransaction(\n address _to,\n uint _value,\n bytes memory _data\n ) public onlyOwner {\n uint txIndex = transactions.length;\n transactions.push(\n Transaction({\n to: _to,\n value: _value,\n data: _data,\n executed: false,\n numConfirmations: 0\n })\n );\n emit SubmitTransaction(msg.sender, txIndex, _to, _value, _data);\n }\n\n function confirmTransaction(\n uint _txIndex\n )\n public\n onlyOwner\n txExists(_txIndex)\n notExecuted(_txIndex)\n notConfirmed(_txIndex)\n {\n Transaction storage transaction = transactions[_txIndex];\n transaction.numConfirmations += 1;\n isConfirmed[_txIndex][msg.sender] = true;\n emit ConfirmTransaction(msg.sender, _txIndex);\n }\n\n function executeTransaction(\n uint _txIndex\n ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) {\n Transaction storage transaction = transactions[_txIndex];\n require(\n transaction.numConfirmations >= numConfirmationsRequired,\n \"cannot execute tx\"\n );\n transaction.executed = true;\n (bool success, ) = transaction.to.call{value: transaction.value}(\n transaction.data\n );\n require(success, \"tx failed\");\n emit ExecuteTransaction(msg.sender, _txIndex);\n }\n\n function revokeConfirmation(\n uint _txIndex\n ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) {\n Transaction storage transaction = transactions[_txIndex];\n require(isConfirmed[_txIndex][msg.sender], \"tx not confirmed\");\n transaction.numConfirmations -= 1;\n isConfirmed[_txIndex][msg.sender] = false;\n\n emit RevokeConfirmation(msg.sender, _txIndex);\n }\n\n function getOwners() public view returns (address[] memory) {\n return owners;\n }\n\n function getTransactionCount() public view returns (uint) {\n return transactions.length;\n }\n\n function getTransaction(\n uint _txIndex\n )\n public\n view\n returns (\n address to,\n uint value,\n bytes memory data,\n bool executed,\n uint numConfirmations\n )\n {\n Transaction storage transaction = transactions[_txIndex];\n return (\n transaction.to,\n transaction.value,\n transaction.data,\n transaction.executed,\n transaction.numConfirmations\n );\n }\n}\n" - } - }, - "settings": { - "evmVersion": "paris", - "optimizer": { - "enabled": false, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "output": { - "sources": { - "contracts/MultiSigWallet.sol": { - "ast": { - "absolutePath": "contracts/MultiSigWallet.sol", - "exportedSymbols": { - "MultiSigWallet": [ - 472 - ] - }, - "id": 473, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".19" - ], - "nodeType": "PragmaDirective", - "src": "33:24:0" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "MultiSigWallet", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 472, - "linearizedBaseContracts": [ - 472 - ], - "name": "MultiSigWallet", - "nameLocation": "244:14:0", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "eventSelector": "90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15", - "id": 9, - "name": "Deposit", - "nameLocation": "271:7:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nameLocation": "295:6:0", - "nodeType": "VariableDeclaration", - "scope": 9, - "src": "279:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "279:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nameLocation": "308:6:0", - "nodeType": "VariableDeclaration", - "scope": 9, - "src": "303:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "303:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7, - "indexed": false, - "mutability": "mutable", - "name": "balance", - "nameLocation": "321:7:0", - "nodeType": "VariableDeclaration", - "scope": 9, - "src": "316:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "316:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "278:51:0" - }, - "src": "265:65:0" - }, - { - "anonymous": false, - "eventSelector": "d5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d", - "id": 21, - "name": "SubmitTransaction", - "nameLocation": "341:17:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 20, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11, - "indexed": true, - "mutability": "mutable", - "name": "owener", - "nameLocation": "384:6:0", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "368:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "368:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13, - "indexed": true, - "mutability": "mutable", - "name": "txIndex", - "nameLocation": "413:7:0", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "400:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "400:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 15, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nameLocation": "446:2:0", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "430:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 14, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "430:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 17, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nameLocation": "463:5:0", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "458:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "458:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 19, - "indexed": false, - "mutability": "mutable", - "name": "data", - "nameLocation": "484:4:0", - "nodeType": "VariableDeclaration", - "scope": 21, - "src": "478:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 18, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "478:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "358:136:0" - }, - "src": "335:160:0" - }, - { - "anonymous": false, - "eventSelector": "5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb63390041", - "id": 27, - "name": "ConfirmTransaction", - "nameLocation": "507:18:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 26, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 23, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "542:5:0", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "526:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "526:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "indexed": true, - "mutability": "mutable", - "name": "txIndex", - "nameLocation": "562:7:0", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "549:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 24, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "549:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "525:45:0" - }, - "src": "501:70:0" - }, - { - "anonymous": false, - "eventSelector": "f0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd55", - "id": 33, - "name": "RevokeConfirmation", - "nameLocation": "582:18:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 29, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "617:5:0", - "nodeType": "VariableDeclaration", - "scope": 33, - "src": "601:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "601:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31, - "indexed": true, - "mutability": "mutable", - "name": "txIndex", - "nameLocation": "637:7:0", - "nodeType": "VariableDeclaration", - "scope": 33, - "src": "624:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "624:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "600:45:0" - }, - "src": "576:70:0" - }, - { - "anonymous": false, - "eventSelector": "5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac", - "id": 39, - "name": "ExecuteTransaction", - "nameLocation": "657:18:0", - "nodeType": "EventDefinition", - "parameters": { - "id": 38, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "692:5:0", - "nodeType": "VariableDeclaration", - "scope": 39, - "src": "676:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 34, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "676:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 37, - "indexed": true, - "mutability": "mutable", - "name": "txIndex", - "nameLocation": "712:7:0", - "nodeType": "VariableDeclaration", - "scope": 39, - "src": "699:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "699:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "675:45:0" - }, - "src": "651:70:0" - }, - { - "constant": false, - "functionSelector": "025e7c27", - "id": 42, - "mutability": "mutable", - "name": "owners", - "nameLocation": "744:6:0", - "nodeType": "VariableDeclaration", - "scope": 472, - "src": "727:23:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 40, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "727:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 41, - "nodeType": "ArrayTypeName", - "src": "727:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "2f54bf6e", - "id": 46, - "mutability": "mutable", - "name": "isOwner", - "nameLocation": "789:7:0", - "nodeType": "VariableDeclaration", - "scope": 472, - "src": "757:39:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 45, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "765:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "757:24:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 44, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "776:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "d0549b85", - "id": 48, - "mutability": "mutable", - "name": "numConfirmationsRequired", - "nameLocation": "815:24:0", - "nodeType": "VariableDeclaration", - "scope": 472, - "src": "803:36:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 47, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "803:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "canonicalName": "MultiSigWallet.Transaction", - "id": 59, - "members": [ - { - "constant": false, - "id": 50, - "mutability": "mutable", - "name": "to", - "nameLocation": "883:2:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "875:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 49, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "875:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 52, - "mutability": "mutable", - "name": "value", - "nameLocation": "900:5:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "895:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 51, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "895:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 54, - "mutability": "mutable", - "name": "data", - "nameLocation": "921:4:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "915:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 53, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "915:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 56, - "mutability": "mutable", - "name": "executed", - "nameLocation": "940:8:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "935:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 55, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "935:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 58, - "mutability": "mutable", - "name": "numConfirmations", - "nameLocation": "963:16:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "958:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 57, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "958:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Transaction", - "nameLocation": "853:11:0", - "nodeType": "StructDefinition", - "scope": 472, - "src": "846:140:0", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "80f59a65", - "id": 65, - "mutability": "mutable", - "name": "isConfirmed", - "nameLocation": "1041:11:0", - "nodeType": "VariableDeclaration", - "scope": 472, - "src": "992:60:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - }, - "typeName": { - "id": 64, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 60, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1000:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "992:41:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 63, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1016:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1008:24:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 62, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1027:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "9ace38c2", - "id": 69, - "mutability": "mutable", - "name": "transactions", - "nameLocation": "1080:12:0", - "nodeType": "VariableDeclaration", - "scope": 472, - "src": "1059:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction[]" - }, - "typeName": { - "baseType": { - "id": 67, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 66, - "name": "Transaction", - "nameLocations": [ - "1059:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 59, - "src": "1059:11:0" - }, - "referencedDeclaration": 59, - "src": "1059:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction" - } - }, - "id": 68, - "nodeType": "ArrayTypeName", - "src": "1059:13:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction[]" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 80, - "nodeType": "Block", - "src": "1120:69:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 72, - "name": "isOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "1138:7:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 75, - "indexExpression": { - "expression": { - "id": 73, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1146:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 74, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1150:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1146:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1138:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "6e6f74206f776e6572", - "id": 76, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1159:11:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e", - "typeString": "literal_string \"not owner\"" - }, - "value": "not owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e", - "typeString": "literal_string \"not owner\"" - } - ], - "id": 71, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1130:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 77, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1130:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 78, - "nodeType": "ExpressionStatement", - "src": "1130:41:0" - }, - { - "id": 79, - "nodeType": "PlaceholderStatement", - "src": "1181:1:0" - } - ] - }, - "id": 81, - "name": "onlyOwner", - "nameLocation": "1108:9:0", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 70, - "nodeType": "ParameterList", - "parameters": [], - "src": "1117:2:0" - }, - "src": "1099:90:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 94, - "nodeType": "Block", - "src": "1228:88:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 89, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 86, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 83, - "src": "1246:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 87, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "1257:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" - } - }, - "id": 88, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1270:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1257:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1246:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "747820646f6573206e6f74206578697374", - "id": 90, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1278:19:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251", - "typeString": "literal_string \"tx does not exist\"" - }, - "value": "tx does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251", - "typeString": "literal_string \"tx does not exist\"" - } - ], - "id": 85, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1238:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 91, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1238:60:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 92, - "nodeType": "ExpressionStatement", - "src": "1238:60:0" - }, - { - "id": 93, - "nodeType": "PlaceholderStatement", - "src": "1308:1:0" - } - ] - }, - "id": 95, - "name": "txExists", - "nameLocation": "1204:8:0", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 84, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 83, - "mutability": "mutable", - "name": "_txIndex", - "nameLocation": "1218:8:0", - "nodeType": "VariableDeclaration", - "scope": 95, - "src": "1213:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 82, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1213:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1212:15:0" - }, - "src": "1195:121:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 111, - "nodeType": "Block", - "src": "1359:95:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1377:34:0", - "subExpression": { - "baseExpression": { - "baseExpression": { - "id": 100, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "1378:11:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 102, - "indexExpression": { - "id": 101, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "1390:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1378:21:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 105, - "indexExpression": { - "expression": { - "id": 103, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1400:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1404:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1400:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1378:33:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "747820616c726561647920636f6e6669726d6564", - "id": 107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1413:22:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", - "typeString": "literal_string \"tx already confirmed\"" - }, - "value": "tx already confirmed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", - "typeString": "literal_string \"tx already confirmed\"" - } - ], - "id": 99, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1369:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1369:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 109, - "nodeType": "ExpressionStatement", - "src": "1369:67:0" - }, - { - "id": 110, - "nodeType": "PlaceholderStatement", - "src": "1446:1:0" - } - ] - }, - "id": 112, - "name": "notConfirmed", - "nameLocation": "1331:12:0", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 97, - "mutability": "mutable", - "name": "_txIndex", - "nameLocation": "1349:8:0", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "1344:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 96, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1344:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1343:15:0" - }, - "src": "1322:132:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 126, - "nodeType": "Block", - "src": "1496:93:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1514:32:0", - "subExpression": { - "expression": { - "baseExpression": { - "id": 117, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "1515:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" - } - }, - "id": 119, - "indexExpression": { - "id": 118, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "1528:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1515:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref" - } - }, - "id": 120, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1538:8:0", - "memberName": "executed", - "nodeType": "MemberAccess", - "referencedDeclaration": 56, - "src": "1515:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "747820616c726561647920636f6e6669726d6564", - "id": 122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1548:22:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", - "typeString": "literal_string \"tx already confirmed\"" - }, - "value": "tx already confirmed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", - "typeString": "literal_string \"tx already confirmed\"" - } - ], - "id": 116, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1506:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1506:65:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 124, - "nodeType": "ExpressionStatement", - "src": "1506:65:0" - }, - { - "id": 125, - "nodeType": "PlaceholderStatement", - "src": "1581:1:0" - } - ] - }, - "id": 127, - "name": "notExecuted", - "nameLocation": "1469:11:0", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "mutability": "mutable", - "name": "_txIndex", - "nameLocation": "1486:8:0", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "1481:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 113, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1481:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1480:15:0" - }, - "src": "1460:129:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 208, - "nodeType": "Block", - "src": "1665:600:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 136, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "1683:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1691:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1683:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1700:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1683:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "6f776e657273207265717569726564", - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1703:17:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0", - "typeString": "literal_string \"owners required\"" - }, - "value": "owners required" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0", - "typeString": "literal_string \"owners required\"" - } - ], - "id": 135, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1675:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1675:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 142, - "nodeType": "ExpressionStatement", - "src": "1675:46:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 144, - "name": "_numConfirmationsRequired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "1752:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1780:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1752:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 147, - "name": "_numConfirmationsRequired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "1801:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "expression": { - "id": 148, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "1830:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1838:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1830:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1801:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1752:92:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "696e76616c6964206e756d626572206f6620726571756972656420636f6e6669726d6174696f6e73", - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1858:42:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef", - "typeString": "literal_string \"invalid number of required confirmations\"" - }, - "value": "invalid number of required confirmations" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef", - "typeString": "literal_string \"invalid number of required confirmations\"" - } - ], - "id": 143, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1731:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1731:179:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 154, - "nodeType": "ExpressionStatement", - "src": "1731:179:0" - }, - { - "body": { - "id": 202, - "nodeType": "Block", - "src": "1962:235:0", - "statements": [ - { - "assignments": [ - 167 - ], - "declarations": [ - { - "constant": false, - "id": 167, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1984:5:0", - "nodeType": "VariableDeclaration", - "scope": 202, - "src": "1976:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1976:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 171, - "initialValue": { - "baseExpression": { - "id": 168, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "1992:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 170, - "indexExpression": { - "id": 169, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2000:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1992:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1976:26:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 173, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2024:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2041:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2033:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 174, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2033:7:0", - "typeDescriptions": {} - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2033:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2024:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "696e76616c6964206f776e6572", - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2045:15:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14", - "typeString": "literal_string \"invalid owner\"" - }, - "value": "invalid owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14", - "typeString": "literal_string \"invalid owner\"" - } - ], - "id": 172, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2016:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2016:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 181, - "nodeType": "ExpressionStatement", - "src": "2016:45:0" - }, - { - "expression": { - "arguments": [ - { - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2083:15:0", - "subExpression": { - "baseExpression": { - "id": 183, - "name": "isOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "2084:7:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 185, - "indexExpression": { - "id": 184, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2092:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2084:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "6f776e6572206e6f7420756e69717565", - "id": 187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2100:18:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684", - "typeString": "literal_string \"owner not unique\"" - }, - "value": "owner not unique" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684", - "typeString": "literal_string \"owner not unique\"" - } - ], - "id": 182, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2075:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2075:44:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 189, - "nodeType": "ExpressionStatement", - "src": "2075:44:0" - }, - { - "expression": { - "id": 194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 190, - "name": "isOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "2133:7:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 192, - "indexExpression": { - "id": 191, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2141:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2133:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2150:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2133:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 195, - "nodeType": "ExpressionStatement", - "src": "2133:21:0" - }, - { - "expression": { - "arguments": [ - { - "id": 199, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2180:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 196, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "2168:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2175:4:0", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2168:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", - "typeString": "function (address[] storage pointer,address)" - } - }, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2168:18:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "2168:18:0" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 159, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "1937:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 160, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "1941:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1949:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1941:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1937:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 203, - "initializationExpression": { - "assignments": [ - 156 - ], - "declarations": [ - { - "constant": false, - "id": 156, - "mutability": "mutable", - "name": "i", - "nameLocation": "1930:1:0", - "nodeType": "VariableDeclaration", - "scope": 203, - "src": "1925:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 155, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1925:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 158, - "initialValue": { - "hexValue": "30", - "id": 157, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1934:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1925:10:0" - }, - "isSimpleCounterLoop": true, - "loopExpression": { - "expression": { - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1957:3:0", - "subExpression": { - "id": 163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "1957:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 165, - "nodeType": "ExpressionStatement", - "src": "1957:3:0" - }, - "nodeType": "ForStatement", - "src": "1920:277:0" - }, - { - "expression": { - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 204, - "name": "numConfirmationsRequired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "2206:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 205, - "name": "_numConfirmationsRequired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "2233:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2206:52:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 207, - "nodeType": "ExpressionStatement", - "src": "2206:52:0" - } - ] - }, - "id": 209, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 130, - "mutability": "mutable", - "name": "_owners", - "nameLocation": "1624:7:0", - "nodeType": "VariableDeclaration", - "scope": 209, - "src": "1607:24:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1607:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 129, - "nodeType": "ArrayTypeName", - "src": "1607:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 132, - "mutability": "mutable", - "name": "_numConfirmationsRequired", - "nameLocation": "1638:25:0", - "nodeType": "VariableDeclaration", - "scope": 209, - "src": "1633:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 131, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1633:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1606:58:0" - }, - "returnParameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [], - "src": "1665:0:0" - }, - "scope": 472, - "src": "1595:670:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 224, - "nodeType": "Block", - "src": "2298:75:0", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 213, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2321:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2325:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2321:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 215, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2333:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2337:5:0", - "memberName": "value", - "nodeType": "MemberAccess", - "src": "2333:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "arguments": [ - { - "id": 219, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "2352:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MultiSigWallet_$472", - "typeString": "contract MultiSigWallet" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_MultiSigWallet_$472", - "typeString": "contract MultiSigWallet" - } - ], - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2344:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 217, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2344:7:0", - "typeDescriptions": {} - } - }, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2344:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2358:7:0", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "2344:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 212, - "name": "Deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9, - "src": "2313:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2313:53:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 223, - "nodeType": "EmitStatement", - "src": "2308:58:0" - } - ] - }, - "id": 225, - "implemented": true, - "kind": "receive", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 210, - "nodeType": "ParameterList", - "parameters": [], - "src": "2278:2:0" - }, - "returnParameters": { - "id": 211, - "nodeType": "ParameterList", - "parameters": [], - "src": "2298:0:0" - }, - "scope": 472, - "src": "2271:102:0", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 262, - "nodeType": "Block", - "src": "2499:357:0", - "statements": [ - { - "assignments": [ - 237 - ], - "declarations": [ - { - "constant": false, - "id": 237, - "mutability": "mutable", - "name": "txIndex", - "nameLocation": "2514:7:0", - "nodeType": "VariableDeclaration", - "scope": 262, - "src": "2509:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 236, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2509:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 240, - "initialValue": { - "expression": { - "id": 238, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "2524:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" - } - }, - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2537:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2524:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2509:34:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 245, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "2618:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 246, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 229, - "src": "2646:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 247, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 231, - "src": "2676:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "66616c7365", - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2709:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2750:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 244, - "name": "Transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "2584:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Transaction_$59_storage_ptr_$", - "typeString": "type(struct MultiSigWallet.Transaction storage pointer)" - } - }, - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2614:2:0", - "2639:5:0", - "2670:4:0", - "2699:8:0", - "2732:16:0" - ], - "names": [ - "to", - "value", - "data", - "executed", - "numConfirmations" - ], - "nodeType": "FunctionCall", - "src": "2584:182:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_memory_ptr", - "typeString": "struct MultiSigWallet.Transaction memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Transaction_$59_memory_ptr", - "typeString": "struct MultiSigWallet.Transaction memory" - } - ], - "expression": { - "id": 241, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "2553:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" - } - }, - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2566:4:0", - "memberName": "push", - "nodeType": "MemberAccess", - "src": "2553:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Transaction_$59_storage_$dyn_storage_ptr_$_t_struct$_Transaction_$59_storage_$returns$__$attached_to$_t_array$_t_struct$_Transaction_$59_storage_$dyn_storage_ptr_$", - "typeString": "function (struct MultiSigWallet.Transaction storage ref[] storage pointer,struct MultiSigWallet.Transaction storage ref)" - } - }, - "id": 251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2553:223:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 252, - "nodeType": "ExpressionStatement", - "src": "2553:223:0" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 254, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2809:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2813:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2809:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 256, - "name": "txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 237, - "src": "2821:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 257, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "2830:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 258, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 229, - "src": "2835:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 259, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 231, - "src": "2843:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 253, - "name": "SubmitTransaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "2791:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address,uint256,bytes memory)" - } - }, - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2791:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 261, - "nodeType": "EmitStatement", - "src": "2786:63:0" - } - ] - }, - "functionSelector": "c6427474", - "id": 263, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 234, - "kind": "modifierInvocation", - "modifierName": { - "id": 233, - "name": "onlyOwner", - "nameLocations": [ - "2489:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 81, - "src": "2489:9:0" - }, - "nodeType": "ModifierInvocation", - "src": "2489:9:0" - } - ], - "name": "submitTransaction", - "nameLocation": "2388:17:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 227, - "mutability": "mutable", - "name": "_to", - "nameLocation": "2423:3:0", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "2415:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 226, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2415:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 229, - "mutability": "mutable", - "name": "_value", - "nameLocation": "2441:6:0", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "2436:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 228, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2436:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 231, - "mutability": "mutable", - "name": "_data", - "nameLocation": "2470:5:0", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "2457:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 230, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2457:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2405:76:0" - }, - "returnParameters": { - "id": 235, - "nodeType": "ParameterList", - "parameters": [], - "src": "2499:0:0" - }, - "scope": 472, - "src": "2379:477:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 307, - "nodeType": "Block", - "src": "3044:221:0", - "statements": [ - { - "assignments": [ - 281 - ], - "declarations": [ - { - "constant": false, - "id": 281, - "mutability": "mutable", - "name": "transaction", - "nameLocation": "3074:11:0", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "3054:31:0", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction" - }, - "typeName": { - "id": 280, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 279, - "name": "Transaction", - "nameLocations": [ - "3054:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 59, - "src": "3054:11:0" - }, - "referencedDeclaration": 59, - "src": "3054:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction" - } - }, - "visibility": "internal" - } - ], - "id": 285, - "initialValue": { - "baseExpression": { - "id": 282, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "3088:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" - } - }, - "id": 284, - "indexExpression": { - "id": 283, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "3101:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3088:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3054:56:0" - }, - { - "expression": { - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 286, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "3120:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 288, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3132:16:0", - "memberName": "numConfirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 58, - "src": "3120:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3152:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3120:33:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 291, - "nodeType": "ExpressionStatement", - "src": "3120:33:0" - }, - { - "expression": { - "id": 299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 292, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "3163:11:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 296, - "indexExpression": { - "id": 293, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "3175:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3163:21:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 297, - "indexExpression": { - "expression": { - "id": 294, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3185:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3189:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3185:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3163:33:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 298, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3199:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3163:40:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 300, - "nodeType": "ExpressionStatement", - "src": "3163:40:0" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 302, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3237:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3241:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3237:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 304, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "3249:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 301, - "name": "ConfirmTransaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "3218:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3218:40:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 306, - "nodeType": "EmitStatement", - "src": "3213:45:0" - } - ] - }, - "functionSelector": "c01a8c84", - "id": 308, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 268, - "kind": "modifierInvocation", - "modifierName": { - "id": 267, - "name": "onlyOwner", - "nameLocations": [ - "2942:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 81, - "src": "2942:9:0" - }, - "nodeType": "ModifierInvocation", - "src": "2942:9:0" - }, - { - "arguments": [ - { - "id": 270, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "2969:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 271, - "kind": "modifierInvocation", - "modifierName": { - "id": 269, - "name": "txExists", - "nameLocations": [ - "2960:8:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 95, - "src": "2960:8:0" - }, - "nodeType": "ModifierInvocation", - "src": "2960:18:0" - }, - { - "arguments": [ - { - "id": 273, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "2999:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 274, - "kind": "modifierInvocation", - "modifierName": { - "id": 272, - "name": "notExecuted", - "nameLocations": [ - "2987:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 127, - "src": "2987:11:0" - }, - "nodeType": "ModifierInvocation", - "src": "2987:21:0" - }, - { - "arguments": [ - { - "id": 276, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "3030:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 277, - "kind": "modifierInvocation", - "modifierName": { - "id": 275, - "name": "notConfirmed", - "nameLocations": [ - "3017:12:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 112, - "src": "3017:12:0" - }, - "nodeType": "ModifierInvocation", - "src": "3017:22:0" - } - ], - "name": "confirmTransaction", - "nameLocation": "2871:18:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 265, - "mutability": "mutable", - "name": "_txIndex", - "nameLocation": "2904:8:0", - "nodeType": "VariableDeclaration", - "scope": 308, - "src": "2899:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 264, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2899:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2889:29:0" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [], - "src": "3044:0:0" - }, - "scope": 472, - "src": "2862:403:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "3386:448:0", - "statements": [ - { - "assignments": [ - 323 - ], - "declarations": [ - { - "constant": false, - "id": 323, - "mutability": "mutable", - "name": "transaction", - "nameLocation": "3416:11:0", - "nodeType": "VariableDeclaration", - "scope": 365, - "src": "3396:31:0", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction" - }, - "typeName": { - "id": 322, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 321, - "name": "Transaction", - "nameLocations": [ - "3396:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 59, - "src": "3396:11:0" - }, - "referencedDeclaration": 59, - "src": "3396:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction" - } - }, - "visibility": "internal" - } - ], - "id": 327, - "initialValue": { - "baseExpression": { - "id": 324, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "3430:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" - } - }, - "id": 326, - "indexExpression": { - "id": 325, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "3443:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3430:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3396:56:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 329, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 323, - "src": "3483:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 330, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3495:16:0", - "memberName": "numConfirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 58, - "src": "3483:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 331, - "name": "numConfirmationsRequired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "3515:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3483:56:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "63616e6e6f742065786563757465207478", - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3553:19:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513", - "typeString": "literal_string \"cannot execute tx\"" - }, - "value": "cannot execute tx" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513", - "typeString": "literal_string \"cannot execute tx\"" - } - ], - "id": 328, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3462:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3462:120:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 335, - "nodeType": "ExpressionStatement", - "src": "3462:120:0" - }, - { - "expression": { - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 336, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 323, - "src": "3592:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 338, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3604:8:0", - "memberName": "executed", - "nodeType": "MemberAccess", - "referencedDeclaration": 56, - "src": "3592:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3615:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3592:27:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 341, - "nodeType": "ExpressionStatement", - "src": "3592:27:0" - }, - { - "assignments": [ - 343, - null - ], - "declarations": [ - { - "constant": false, - "id": 343, - "mutability": "mutable", - "name": "success", - "nameLocation": "3635:7:0", - "nodeType": "VariableDeclaration", - "scope": 365, - "src": "3630:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 342, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3630:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 353, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 350, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 323, - "src": "3707:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 351, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3719:4:0", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 54, - "src": "3707:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - ], - "expression": { - "expression": { - "id": 344, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 323, - "src": "3648:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3660:2:0", - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 50, - "src": "3648:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3663:4:0", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "3648:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "expression": { - "id": 347, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 323, - "src": "3675:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 348, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3687:5:0", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 52, - "src": "3675:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "3648:45:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3648:85:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3629:104:0" - }, - { - "expression": { - "arguments": [ - { - "id": 355, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 343, - "src": "3751:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "7478206661696c6564", - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3760:11:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2", - "typeString": "literal_string \"tx failed\"" - }, - "value": "tx failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2", - "typeString": "literal_string \"tx failed\"" - } - ], - "id": 354, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3743:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3743:29:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 358, - "nodeType": "ExpressionStatement", - "src": "3743:29:0" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 360, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3806:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3810:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3806:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 362, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "3818:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 359, - "name": "ExecuteTransaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "3787:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3787:40:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 364, - "nodeType": "EmitStatement", - "src": "3782:45:0" - } - ] - }, - "functionSelector": "ee22610b", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 313, - "kind": "modifierInvocation", - "modifierName": { - "id": 312, - "name": "onlyOwner", - "nameLocations": [ - "3335:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 81, - "src": "3335:9:0" - }, - "nodeType": "ModifierInvocation", - "src": "3335:9:0" - }, - { - "arguments": [ - { - "id": 315, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "3354:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 316, - "kind": "modifierInvocation", - "modifierName": { - "id": 314, - "name": "txExists", - "nameLocations": [ - "3345:8:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 95, - "src": "3345:8:0" - }, - "nodeType": "ModifierInvocation", - "src": "3345:18:0" - }, - { - "arguments": [ - { - "id": 318, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "3376:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 319, - "kind": "modifierInvocation", - "modifierName": { - "id": 317, - "name": "notExecuted", - "nameLocations": [ - "3364:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 127, - "src": "3364:11:0" - }, - "nodeType": "ModifierInvocation", - "src": "3364:21:0" - } - ], - "name": "executeTransaction", - "nameLocation": "3280:18:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 310, - "mutability": "mutable", - "name": "_txIndex", - "nameLocation": "3313:8:0", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "3308:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 309, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3308:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3298:29:0" - }, - "returnParameters": { - "id": 320, - "nodeType": "ParameterList", - "parameters": [], - "src": "3386:0:0" - }, - "scope": 472, - "src": "3271:563:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 417, - "nodeType": "Block", - "src": "3955:295:0", - "statements": [ - { - "assignments": [ - 381 - ], - "declarations": [ - { - "constant": false, - "id": 381, - "mutability": "mutable", - "name": "transaction", - "nameLocation": "3985:11:0", - "nodeType": "VariableDeclaration", - "scope": 417, - "src": "3965:31:0", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction" - }, - "typeName": { - "id": 380, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 379, - "name": "Transaction", - "nameLocations": [ - "3965:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 59, - "src": "3965:11:0" - }, - "referencedDeclaration": 59, - "src": "3965:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction" - } - }, - "visibility": "internal" - } - ], - "id": 385, - "initialValue": { - "baseExpression": { - "id": 382, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "3999:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" - } - }, - "id": 384, - "indexExpression": { - "id": 383, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "4012:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3999:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3965:56:0" - }, - { - "expression": { - "arguments": [ - { - "baseExpression": { - "baseExpression": { - "id": 387, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "4039:11:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 389, - "indexExpression": { - "id": 388, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "4051:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4039:21:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 392, - "indexExpression": { - "expression": { - "id": 390, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4061:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4065:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4061:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4039:33:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "7478206e6f7420636f6e6669726d6564", - "id": 393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4074:18:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae", - "typeString": "literal_string \"tx not confirmed\"" - }, - "value": "tx not confirmed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae", - "typeString": "literal_string \"tx not confirmed\"" - } - ], - "id": 386, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4031:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4031:62:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 395, - "nodeType": "ExpressionStatement", - "src": "4031:62:0" - }, - { - "expression": { - "id": 400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 396, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 381, - "src": "4103:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "4115:16:0", - "memberName": "numConfirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 58, - "src": "4103:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "hexValue": "31", - "id": 399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4135:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4103:33:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 401, - "nodeType": "ExpressionStatement", - "src": "4103:33:0" - }, - { - "expression": { - "id": 409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "id": 402, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "4146:11:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(address => bool))" - } - }, - "id": 406, - "indexExpression": { - "id": 403, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "4158:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4146:21:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 407, - "indexExpression": { - "expression": { - "id": 404, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4168:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4172:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4168:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4146:33:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4182:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4146:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 410, - "nodeType": "ExpressionStatement", - "src": "4146:41:0" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4222:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4226:6:0", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4222:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 414, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "4234:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 411, - "name": "RevokeConfirmation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "4203:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4203:40:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 416, - "nodeType": "EmitStatement", - "src": "4198:45:0" - } - ] - }, - "functionSelector": "20ea8d86", - "id": 418, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 371, - "kind": "modifierInvocation", - "modifierName": { - "id": 370, - "name": "onlyOwner", - "nameLocations": [ - "3904:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 81, - "src": "3904:9:0" - }, - "nodeType": "ModifierInvocation", - "src": "3904:9:0" - }, - { - "arguments": [ - { - "id": 373, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "3923:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 374, - "kind": "modifierInvocation", - "modifierName": { - "id": 372, - "name": "txExists", - "nameLocations": [ - "3914:8:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 95, - "src": "3914:8:0" - }, - "nodeType": "ModifierInvocation", - "src": "3914:18:0" - }, - { - "arguments": [ - { - "id": 376, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "3945:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 377, - "kind": "modifierInvocation", - "modifierName": { - "id": 375, - "name": "notExecuted", - "nameLocations": [ - "3933:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 127, - "src": "3933:11:0" - }, - "nodeType": "ModifierInvocation", - "src": "3933:21:0" - } - ], - "name": "revokeConfirmation", - "nameLocation": "3849:18:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "mutability": "mutable", - "name": "_txIndex", - "nameLocation": "3882:8:0", - "nodeType": "VariableDeclaration", - "scope": 418, - "src": "3877:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 367, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3877:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3867:29:0" - }, - "returnParameters": { - "id": 378, - "nodeType": "ParameterList", - "parameters": [], - "src": "3955:0:0" - }, - "scope": 472, - "src": "3840:410:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 426, - "nodeType": "Block", - "src": "4316:30:0", - "statements": [ - { - "expression": { - "id": 424, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "4333:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 423, - "id": 425, - "nodeType": "Return", - "src": "4326:13:0" - } - ] - }, - "functionSelector": "a0e67e2b", - "id": 427, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getOwners", - "nameLocation": "4265:9:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 419, - "nodeType": "ParameterList", - "parameters": [], - "src": "4274:2:0" - }, - "returnParameters": { - "id": 423, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 422, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 427, - "src": "4298:16:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4298:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 421, - "nodeType": "ArrayTypeName", - "src": "4298:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "visibility": "internal" - } - ], - "src": "4297:18:0" - }, - "scope": 472, - "src": "4256:90:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 435, - "nodeType": "Block", - "src": "4410:43:0", - "statements": [ - { - "expression": { - "expression": { - "id": 432, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "4427:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" - } - }, - "id": 433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4440:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4427:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 431, - "id": 434, - "nodeType": "Return", - "src": "4420:26:0" - } - ] - }, - "functionSelector": "2e7700f0", - "id": 436, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTransactionCount", - "nameLocation": "4361:19:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 428, - "nodeType": "ParameterList", - "parameters": [], - "src": "4380:2:0" - }, - "returnParameters": { - "id": 431, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 430, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 436, - "src": "4404:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 429, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4404:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4403:6:0" - }, - "scope": 472, - "src": "4352:101:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 470, - "nodeType": "Block", - "src": "4712:265:0", - "statements": [ - { - "assignments": [ - 453 - ], - "declarations": [ - { - "constant": false, - "id": 453, - "mutability": "mutable", - "name": "transaction", - "nameLocation": "4742:11:0", - "nodeType": "VariableDeclaration", - "scope": 470, - "src": "4722:31:0", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction" - }, - "typeName": { - "id": 452, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 451, - "name": "Transaction", - "nameLocations": [ - "4722:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 59, - "src": "4722:11:0" - }, - "referencedDeclaration": 59, - "src": "4722:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction" - } - }, - "visibility": "internal" - } - ], - "id": 457, - "initialValue": { - "baseExpression": { - "id": 454, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "4756:12:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$59_storage_$dyn_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref[] storage ref" - } - }, - "id": 456, - "indexExpression": { - "id": 455, - "name": "_txIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "4769:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4756:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage", - "typeString": "struct MultiSigWallet.Transaction storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4722:56:0" - }, - { - "expression": { - "components": [ - { - "expression": { - "id": 458, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "4809:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 459, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4821:2:0", - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 50, - "src": "4809:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 460, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "4837:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 461, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4849:5:0", - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 52, - "src": "4837:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 462, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "4868:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 463, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4880:4:0", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 54, - "src": "4868:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - { - "expression": { - "id": 464, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "4898:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 465, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4910:8:0", - "memberName": "executed", - "nodeType": "MemberAccess", - "referencedDeclaration": 56, - "src": "4898:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "expression": { - "id": 466, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "4932:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$59_storage_ptr", - "typeString": "struct MultiSigWallet.Transaction storage pointer" - } - }, - "id": 467, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4944:16:0", - "memberName": "numConfirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 58, - "src": "4932:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 468, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4795:175:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$_t_bytes_storage_$_t_bool_$_t_uint256_$", - "typeString": "tuple(address,uint256,bytes storage ref,bool,uint256)" - } - }, - "functionReturnParameters": 450, - "id": 469, - "nodeType": "Return", - "src": "4788:182:0" - } - ] - }, - "functionSelector": "33ea3dc8", - "id": 471, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTransaction", - "nameLocation": "4468:14:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 439, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 438, - "mutability": "mutable", - "name": "_txIndex", - "nameLocation": "4497:8:0", - "nodeType": "VariableDeclaration", - "scope": 471, - "src": "4492:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 437, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4492:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4482:29:0" - }, - "returnParameters": { - "id": 450, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 441, - "mutability": "mutable", - "name": "to", - "nameLocation": "4578:2:0", - "nodeType": "VariableDeclaration", - "scope": 471, - "src": "4570:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 440, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4570:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 443, - "mutability": "mutable", - "name": "value", - "nameLocation": "4599:5:0", - "nodeType": "VariableDeclaration", - "scope": 471, - "src": "4594:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4594:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 445, - "mutability": "mutable", - "name": "data", - "nameLocation": "4631:4:0", - "nodeType": "VariableDeclaration", - "scope": 471, - "src": "4618:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 444, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4618:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 447, - "mutability": "mutable", - "name": "executed", - "nameLocation": "4654:8:0", - "nodeType": "VariableDeclaration", - "scope": 471, - "src": "4649:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 446, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4649:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 449, - "mutability": "mutable", - "name": "numConfirmations", - "nameLocation": "4681:16:0", - "nodeType": "VariableDeclaration", - "scope": 471, - "src": "4676:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 448, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4676:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4556:151:0" - }, - "scope": 472, - "src": "4459:518:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "scope": 473, - "src": "235:4744:0", - "usedErrors": [], - "usedEvents": [ - 9, - 21, - 27, - 33, - 39 - ] - } - ], - "src": "33:4947:0" - }, - "id": 0 - } - }, - "contracts": { - "contracts/MultiSigWallet.sol": { - "MultiSigWallet": { - "abi": [ - { - "inputs": [ - { - "internalType": "address[]", - "name": "_owners", - "type": "address[]" - }, - { - "internalType": "uint256", - "name": "_numConfirmationsRequired", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "txIndex", - "type": "uint256" - } - ], - "name": "ConfirmTransaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "txIndex", - "type": "uint256" - } - ], - "name": "ExecuteTransaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "txIndex", - "type": "uint256" - } - ], - "name": "RevokeConfirmation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owener", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "txIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "SubmitTransaction", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_txIndex", - "type": "uint256" - } - ], - "name": "confirmTransaction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_txIndex", - "type": "uint256" - } - ], - "name": "executeTransaction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_txIndex", - "type": "uint256" - } - ], - "name": "getTransaction", - "outputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "executed", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "numConfirmations", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTransactionCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "isConfirmed", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "numConfirmationsRequired", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "owners", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_txIndex", - "type": "uint256" - } - ], - "name": "revokeConfirmation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "submitTransaction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "transactions", - "outputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "executed", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "numConfirmations", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_209": { - "entryPoint": null, - "id": 209, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory": { - "entryPoint": 1059, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_t_address_fromMemory": { - "entryPoint": 1036, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory": { - "entryPoint": 1175, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint256_fromMemory": { - "entryPoint": 1262, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256_fromMemory": { - "entryPoint": 1285, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack": { - "entryPoint": 1872, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack": { - "entryPoint": 1445, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack": { - "entryPoint": 1758, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack": { - "entryPoint": 1597, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 1911, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 1484, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 1797, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 1636, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_memory": { - "entryPoint": 875, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": 732, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 906, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 1387, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_address": { - "entryPoint": 990, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 958, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 1226, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "finalize_allocation": { - "entryPoint": 821, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "panic_error_0x32": { - "entryPoint": 1670, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 774, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { - "entryPoint": 752, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { - "entryPoint": 953, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": 747, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 742, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "round_up_to_mul_of_32": { - "entryPoint": 757, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684": { - "entryPoint": 1831, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0": { - "entryPoint": 1404, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14": { - "entryPoint": 1717, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef": { - "entryPoint": 1518, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_address": { - "entryPoint": 1010, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint256": { - "entryPoint": 1236, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:8654:1", - "nodeType": "YulBlock", - "src": "0:8654:1", - "statements": [ - { - "body": { - "nativeSrc": "47:35:1", - "nodeType": "YulBlock", - "src": "47:35:1", - "statements": [ - { - "nativeSrc": "57:19:1", - "nodeType": "YulAssignment", - "src": "57:19:1", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:1", - "nodeType": "YulLiteral", - "src": "73:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:1", - "nodeType": "YulIdentifier", - "src": "67:5:1" - }, - "nativeSrc": "67:9:1", - "nodeType": "YulFunctionCall", - "src": "67:9:1" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:1", - "nodeType": "YulIdentifier", - "src": "57:6:1" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:1", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:1", - "nodeType": "YulTypedName", - "src": "40:6:1", - "type": "" - } - ], - "src": "7:75:1" - }, - { - "body": { - "nativeSrc": "177:28:1", - "nodeType": "YulBlock", - "src": "177:28:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:1", - "nodeType": "YulLiteral", - "src": "194:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:1", - "nodeType": "YulLiteral", - "src": "197:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:1", - "nodeType": "YulIdentifier", - "src": "187:6:1" - }, - "nativeSrc": "187:12:1", - "nodeType": "YulFunctionCall", - "src": "187:12:1" - }, - "nativeSrc": "187:12:1", - "nodeType": "YulExpressionStatement", - "src": "187:12:1" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:1", - "nodeType": "YulFunctionDefinition", - "src": "88:117:1" - }, - { - "body": { - "nativeSrc": "300:28:1", - "nodeType": "YulBlock", - "src": "300:28:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:1", - "nodeType": "YulLiteral", - "src": "317:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:1", - "nodeType": "YulLiteral", - "src": "320:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:1", - "nodeType": "YulIdentifier", - "src": "310:6:1" - }, - "nativeSrc": "310:12:1", - "nodeType": "YulFunctionCall", - "src": "310:12:1" - }, - "nativeSrc": "310:12:1", - "nodeType": "YulExpressionStatement", - "src": "310:12:1" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:1", - "nodeType": "YulFunctionDefinition", - "src": "211:117:1" - }, - { - "body": { - "nativeSrc": "423:28:1", - "nodeType": "YulBlock", - "src": "423:28:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "440:1:1", - "nodeType": "YulLiteral", - "src": "440:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "443:1:1", - "nodeType": "YulLiteral", - "src": "443:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "433:6:1", - "nodeType": "YulIdentifier", - "src": "433:6:1" - }, - "nativeSrc": "433:12:1", - "nodeType": "YulFunctionCall", - "src": "433:12:1" - }, - "nativeSrc": "433:12:1", - "nodeType": "YulExpressionStatement", - "src": "433:12:1" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "334:117:1", - "nodeType": "YulFunctionDefinition", - "src": "334:117:1" - }, - { - "body": { - "nativeSrc": "505:54:1", - "nodeType": "YulBlock", - "src": "505:54:1", - "statements": [ - { - "nativeSrc": "515:38:1", - "nodeType": "YulAssignment", - "src": "515:38:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "533:5:1", - "nodeType": "YulIdentifier", - "src": "533:5:1" - }, - { - "kind": "number", - "nativeSrc": "540:2:1", - "nodeType": "YulLiteral", - "src": "540:2:1", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "529:3:1", - "nodeType": "YulIdentifier", - "src": "529:3:1" - }, - "nativeSrc": "529:14:1", - "nodeType": "YulFunctionCall", - "src": "529:14:1" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "549:2:1", - "nodeType": "YulLiteral", - "src": "549:2:1", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "545:3:1", - "nodeType": "YulIdentifier", - "src": "545:3:1" - }, - "nativeSrc": "545:7:1", - "nodeType": "YulFunctionCall", - "src": "545:7:1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "525:3:1", - "nodeType": "YulIdentifier", - "src": "525:3:1" - }, - "nativeSrc": "525:28:1", - "nodeType": "YulFunctionCall", - "src": "525:28:1" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "515:6:1", - "nodeType": "YulIdentifier", - "src": "515:6:1" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "457:102:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "488:5:1", - "nodeType": "YulTypedName", - "src": "488:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "498:6:1", - "nodeType": "YulTypedName", - "src": "498:6:1", - "type": "" - } - ], - "src": "457:102:1" - }, - { - "body": { - "nativeSrc": "593:152:1", - "nodeType": "YulBlock", - "src": "593:152:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "610:1:1", - "nodeType": "YulLiteral", - "src": "610:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "613:77:1", - "nodeType": "YulLiteral", - "src": "613:77:1", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "603:6:1", - "nodeType": "YulIdentifier", - "src": "603:6:1" - }, - "nativeSrc": "603:88:1", - "nodeType": "YulFunctionCall", - "src": "603:88:1" - }, - "nativeSrc": "603:88:1", - "nodeType": "YulExpressionStatement", - "src": "603:88:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "707:1:1", - "nodeType": "YulLiteral", - "src": "707:1:1", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "710:4:1", - "nodeType": "YulLiteral", - "src": "710:4:1", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "700:6:1", - "nodeType": "YulIdentifier", - "src": "700:6:1" - }, - "nativeSrc": "700:15:1", - "nodeType": "YulFunctionCall", - "src": "700:15:1" - }, - "nativeSrc": "700:15:1", - "nodeType": "YulExpressionStatement", - "src": "700:15:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "731:1:1", - "nodeType": "YulLiteral", - "src": "731:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "734:4:1", - "nodeType": "YulLiteral", - "src": "734:4:1", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "724:6:1", - "nodeType": "YulIdentifier", - "src": "724:6:1" - }, - "nativeSrc": "724:15:1", - "nodeType": "YulFunctionCall", - "src": "724:15:1" - }, - "nativeSrc": "724:15:1", - "nodeType": "YulExpressionStatement", - "src": "724:15:1" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "565:180:1", - "nodeType": "YulFunctionDefinition", - "src": "565:180:1" - }, - { - "body": { - "nativeSrc": "794:238:1", - "nodeType": "YulBlock", - "src": "794:238:1", - "statements": [ - { - "nativeSrc": "804:58:1", - "nodeType": "YulVariableDeclaration", - "src": "804:58:1", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "826:6:1", - "nodeType": "YulIdentifier", - "src": "826:6:1" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "856:4:1", - "nodeType": "YulIdentifier", - "src": "856:4:1" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "834:21:1", - "nodeType": "YulIdentifier", - "src": "834:21:1" - }, - "nativeSrc": "834:27:1", - "nodeType": "YulFunctionCall", - "src": "834:27:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "822:3:1", - "nodeType": "YulIdentifier", - "src": "822:3:1" - }, - "nativeSrc": "822:40:1", - "nodeType": "YulFunctionCall", - "src": "822:40:1" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "808:10:1", - "nodeType": "YulTypedName", - "src": "808:10:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "973:22:1", - "nodeType": "YulBlock", - "src": "973:22:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "975:16:1", - "nodeType": "YulIdentifier", - "src": "975:16:1" - }, - "nativeSrc": "975:18:1", - "nodeType": "YulFunctionCall", - "src": "975:18:1" - }, - "nativeSrc": "975:18:1", - "nodeType": "YulExpressionStatement", - "src": "975:18:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "916:10:1", - "nodeType": "YulIdentifier", - "src": "916:10:1" - }, - { - "kind": "number", - "nativeSrc": "928:18:1", - "nodeType": "YulLiteral", - "src": "928:18:1", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "913:2:1", - "nodeType": "YulIdentifier", - "src": "913:2:1" - }, - "nativeSrc": "913:34:1", - "nodeType": "YulFunctionCall", - "src": "913:34:1" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "952:10:1", - "nodeType": "YulIdentifier", - "src": "952:10:1" - }, - { - "name": "memPtr", - "nativeSrc": "964:6:1", - "nodeType": "YulIdentifier", - "src": "964:6:1" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "949:2:1", - "nodeType": "YulIdentifier", - "src": "949:2:1" - }, - "nativeSrc": "949:22:1", - "nodeType": "YulFunctionCall", - "src": "949:22:1" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "910:2:1", - "nodeType": "YulIdentifier", - "src": "910:2:1" - }, - "nativeSrc": "910:62:1", - "nodeType": "YulFunctionCall", - "src": "910:62:1" - }, - "nativeSrc": "907:88:1", - "nodeType": "YulIf", - "src": "907:88:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1011:2:1", - "nodeType": "YulLiteral", - "src": "1011:2:1", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "1015:10:1", - "nodeType": "YulIdentifier", - "src": "1015:10:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1004:6:1", - "nodeType": "YulIdentifier", - "src": "1004:6:1" - }, - "nativeSrc": "1004:22:1", - "nodeType": "YulFunctionCall", - "src": "1004:22:1" - }, - "nativeSrc": "1004:22:1", - "nodeType": "YulExpressionStatement", - "src": "1004:22:1" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "751:281:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "780:6:1", - "nodeType": "YulTypedName", - "src": "780:6:1", - "type": "" - }, - { - "name": "size", - "nativeSrc": "788:4:1", - "nodeType": "YulTypedName", - "src": "788:4:1", - "type": "" - } - ], - "src": "751:281:1" - }, - { - "body": { - "nativeSrc": "1079:88:1", - "nodeType": "YulBlock", - "src": "1079:88:1", - "statements": [ - { - "nativeSrc": "1089:30:1", - "nodeType": "YulAssignment", - "src": "1089:30:1", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "1099:18:1", - "nodeType": "YulIdentifier", - "src": "1099:18:1" - }, - "nativeSrc": "1099:20:1", - "nodeType": "YulFunctionCall", - "src": "1099:20:1" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "1089:6:1", - "nodeType": "YulIdentifier", - "src": "1089:6:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1148:6:1", - "nodeType": "YulIdentifier", - "src": "1148:6:1" - }, - { - "name": "size", - "nativeSrc": "1156:4:1", - "nodeType": "YulIdentifier", - "src": "1156:4:1" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "1128:19:1", - "nodeType": "YulIdentifier", - "src": "1128:19:1" - }, - "nativeSrc": "1128:33:1", - "nodeType": "YulFunctionCall", - "src": "1128:33:1" - }, - "nativeSrc": "1128:33:1", - "nodeType": "YulExpressionStatement", - "src": "1128:33:1" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "1038:129:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "1063:4:1", - "nodeType": "YulTypedName", - "src": "1063:4:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "1072:6:1", - "nodeType": "YulTypedName", - "src": "1072:6:1", - "type": "" - } - ], - "src": "1038:129:1" - }, - { - "body": { - "nativeSrc": "1255:229:1", - "nodeType": "YulBlock", - "src": "1255:229:1", - "statements": [ - { - "body": { - "nativeSrc": "1360:22:1", - "nodeType": "YulBlock", - "src": "1360:22:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "1362:16:1", - "nodeType": "YulIdentifier", - "src": "1362:16:1" - }, - "nativeSrc": "1362:18:1", - "nodeType": "YulFunctionCall", - "src": "1362:18:1" - }, - "nativeSrc": "1362:18:1", - "nodeType": "YulExpressionStatement", - "src": "1362:18:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "1332:6:1", - "nodeType": "YulIdentifier", - "src": "1332:6:1" - }, - { - "kind": "number", - "nativeSrc": "1340:18:1", - "nodeType": "YulLiteral", - "src": "1340:18:1", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "1329:2:1", - "nodeType": "YulIdentifier", - "src": "1329:2:1" - }, - "nativeSrc": "1329:30:1", - "nodeType": "YulFunctionCall", - "src": "1329:30:1" - }, - "nativeSrc": "1326:56:1", - "nodeType": "YulIf", - "src": "1326:56:1" - }, - { - "nativeSrc": "1392:25:1", - "nodeType": "YulAssignment", - "src": "1392:25:1", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "1404:6:1", - "nodeType": "YulIdentifier", - "src": "1404:6:1" - }, - { - "kind": "number", - "nativeSrc": "1412:4:1", - "nodeType": "YulLiteral", - "src": "1412:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "1400:3:1", - "nodeType": "YulIdentifier", - "src": "1400:3:1" - }, - "nativeSrc": "1400:17:1", - "nodeType": "YulFunctionCall", - "src": "1400:17:1" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "1392:4:1", - "nodeType": "YulIdentifier", - "src": "1392:4:1" - } - ] - }, - { - "nativeSrc": "1454:23:1", - "nodeType": "YulAssignment", - "src": "1454:23:1", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "1466:4:1", - "nodeType": "YulIdentifier", - "src": "1466:4:1" - }, - { - "kind": "number", - "nativeSrc": "1472:4:1", - "nodeType": "YulLiteral", - "src": "1472:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1462:3:1", - "nodeType": "YulIdentifier", - "src": "1462:3:1" - }, - "nativeSrc": "1462:15:1", - "nodeType": "YulFunctionCall", - "src": "1462:15:1" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "1454:4:1", - "nodeType": "YulIdentifier", - "src": "1454:4:1" - } - ] - } - ] - }, - "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "1173:311:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "1239:6:1", - "nodeType": "YulTypedName", - "src": "1239:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "1250:4:1", - "nodeType": "YulTypedName", - "src": "1250:4:1", - "type": "" - } - ], - "src": "1173:311:1" - }, - { - "body": { - "nativeSrc": "1579:28:1", - "nodeType": "YulBlock", - "src": "1579:28:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1596:1:1", - "nodeType": "YulLiteral", - "src": "1596:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1599:1:1", - "nodeType": "YulLiteral", - "src": "1599:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1589:6:1", - "nodeType": "YulIdentifier", - "src": "1589:6:1" - }, - "nativeSrc": "1589:12:1", - "nodeType": "YulFunctionCall", - "src": "1589:12:1" - }, - "nativeSrc": "1589:12:1", - "nodeType": "YulExpressionStatement", - "src": "1589:12:1" - } - ] - }, - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "1490:117:1", - "nodeType": "YulFunctionDefinition", - "src": "1490:117:1" - }, - { - "body": { - "nativeSrc": "1658:81:1", - "nodeType": "YulBlock", - "src": "1658:81:1", - "statements": [ - { - "nativeSrc": "1668:65:1", - "nodeType": "YulAssignment", - "src": "1668:65:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1683:5:1", - "nodeType": "YulIdentifier", - "src": "1683:5:1" - }, - { - "kind": "number", - "nativeSrc": "1690:42:1", - "nodeType": "YulLiteral", - "src": "1690:42:1", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1679:3:1", - "nodeType": "YulIdentifier", - "src": "1679:3:1" - }, - "nativeSrc": "1679:54:1", - "nodeType": "YulFunctionCall", - "src": "1679:54:1" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1668:7:1", - "nodeType": "YulIdentifier", - "src": "1668:7:1" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "1613:126:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1640:5:1", - "nodeType": "YulTypedName", - "src": "1640:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1650:7:1", - "nodeType": "YulTypedName", - "src": "1650:7:1", - "type": "" - } - ], - "src": "1613:126:1" - }, - { - "body": { - "nativeSrc": "1790:51:1", - "nodeType": "YulBlock", - "src": "1790:51:1", - "statements": [ - { - "nativeSrc": "1800:35:1", - "nodeType": "YulAssignment", - "src": "1800:35:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1829:5:1", - "nodeType": "YulIdentifier", - "src": "1829:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "1811:17:1", - "nodeType": "YulIdentifier", - "src": "1811:17:1" - }, - "nativeSrc": "1811:24:1", - "nodeType": "YulFunctionCall", - "src": "1811:24:1" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1800:7:1", - "nodeType": "YulIdentifier", - "src": "1800:7:1" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "1745:96:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1772:5:1", - "nodeType": "YulTypedName", - "src": "1772:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1782:7:1", - "nodeType": "YulTypedName", - "src": "1782:7:1", - "type": "" - } - ], - "src": "1745:96:1" - }, - { - "body": { - "nativeSrc": "1890:79:1", - "nodeType": "YulBlock", - "src": "1890:79:1", - "statements": [ - { - "body": { - "nativeSrc": "1947:16:1", - "nodeType": "YulBlock", - "src": "1947:16:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1956:1:1", - "nodeType": "YulLiteral", - "src": "1956:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1959:1:1", - "nodeType": "YulLiteral", - "src": "1959:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1949:6:1", - "nodeType": "YulIdentifier", - "src": "1949:6:1" - }, - "nativeSrc": "1949:12:1", - "nodeType": "YulFunctionCall", - "src": "1949:12:1" - }, - "nativeSrc": "1949:12:1", - "nodeType": "YulExpressionStatement", - "src": "1949:12:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1913:5:1", - "nodeType": "YulIdentifier", - "src": "1913:5:1" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1938:5:1", - "nodeType": "YulIdentifier", - "src": "1938:5:1" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1920:17:1", - "nodeType": "YulIdentifier", - "src": "1920:17:1" - }, - "nativeSrc": "1920:24:1", - "nodeType": "YulFunctionCall", - "src": "1920:24:1" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1910:2:1", - "nodeType": "YulIdentifier", - "src": "1910:2:1" - }, - "nativeSrc": "1910:35:1", - "nodeType": "YulFunctionCall", - "src": "1910:35:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1903:6:1", - "nodeType": "YulIdentifier", - "src": "1903:6:1" - }, - "nativeSrc": "1903:43:1", - "nodeType": "YulFunctionCall", - "src": "1903:43:1" - }, - "nativeSrc": "1900:63:1", - "nodeType": "YulIf", - "src": "1900:63:1" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "1847:122:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1883:5:1", - "nodeType": "YulTypedName", - "src": "1883:5:1", - "type": "" - } - ], - "src": "1847:122:1" - }, - { - "body": { - "nativeSrc": "2038:80:1", - "nodeType": "YulBlock", - "src": "2038:80:1", - "statements": [ - { - "nativeSrc": "2048:22:1", - "nodeType": "YulAssignment", - "src": "2048:22:1", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2063:6:1", - "nodeType": "YulIdentifier", - "src": "2063:6:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "2057:5:1", - "nodeType": "YulIdentifier", - "src": "2057:5:1" - }, - "nativeSrc": "2057:13:1", - "nodeType": "YulFunctionCall", - "src": "2057:13:1" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2048:5:1", - "nodeType": "YulIdentifier", - "src": "2048:5:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2106:5:1", - "nodeType": "YulIdentifier", - "src": "2106:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "2079:26:1", - "nodeType": "YulIdentifier", - "src": "2079:26:1" - }, - "nativeSrc": "2079:33:1", - "nodeType": "YulFunctionCall", - "src": "2079:33:1" - }, - "nativeSrc": "2079:33:1", - "nodeType": "YulExpressionStatement", - "src": "2079:33:1" - } - ] - }, - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "1975:143:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2016:6:1", - "nodeType": "YulTypedName", - "src": "2016:6:1", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2024:3:1", - "nodeType": "YulTypedName", - "src": "2024:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "2032:5:1", - "nodeType": "YulTypedName", - "src": "2032:5:1", - "type": "" - } - ], - "src": "1975:143:1" - }, - { - "body": { - "nativeSrc": "2254:619:1", - "nodeType": "YulBlock", - "src": "2254:619:1", - "statements": [ - { - "nativeSrc": "2264:90:1", - "nodeType": "YulAssignment", - "src": "2264:90:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "2346:6:1", - "nodeType": "YulIdentifier", - "src": "2346:6:1" - } - ], - "functionName": { - "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "2289:56:1", - "nodeType": "YulIdentifier", - "src": "2289:56:1" - }, - "nativeSrc": "2289:64:1", - "nodeType": "YulFunctionCall", - "src": "2289:64:1" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "2273:15:1", - "nodeType": "YulIdentifier", - "src": "2273:15:1" - }, - "nativeSrc": "2273:81:1", - "nodeType": "YulFunctionCall", - "src": "2273:81:1" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "2264:5:1", - "nodeType": "YulIdentifier", - "src": "2264:5:1" - } - ] - }, - { - "nativeSrc": "2363:16:1", - "nodeType": "YulVariableDeclaration", - "src": "2363:16:1", - "value": { - "name": "array", - "nativeSrc": "2374:5:1", - "nodeType": "YulIdentifier", - "src": "2374:5:1" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "2367:3:1", - "nodeType": "YulTypedName", - "src": "2367:3:1", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2396:5:1", - "nodeType": "YulIdentifier", - "src": "2396:5:1" - }, - { - "name": "length", - "nativeSrc": "2403:6:1", - "nodeType": "YulIdentifier", - "src": "2403:6:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2389:6:1", - "nodeType": "YulIdentifier", - "src": "2389:6:1" - }, - "nativeSrc": "2389:21:1", - "nodeType": "YulFunctionCall", - "src": "2389:21:1" - }, - "nativeSrc": "2389:21:1", - "nodeType": "YulExpressionStatement", - "src": "2389:21:1" - }, - { - "nativeSrc": "2419:23:1", - "nodeType": "YulAssignment", - "src": "2419:23:1", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2430:5:1", - "nodeType": "YulIdentifier", - "src": "2430:5:1" - }, - { - "kind": "number", - "nativeSrc": "2437:4:1", - "nodeType": "YulLiteral", - "src": "2437:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2426:3:1", - "nodeType": "YulIdentifier", - "src": "2426:3:1" - }, - "nativeSrc": "2426:16:1", - "nodeType": "YulFunctionCall", - "src": "2426:16:1" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "2419:3:1", - "nodeType": "YulIdentifier", - "src": "2419:3:1" - } - ] - }, - { - "nativeSrc": "2452:44:1", - "nodeType": "YulVariableDeclaration", - "src": "2452:44:1", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2470:6:1", - "nodeType": "YulIdentifier", - "src": "2470:6:1" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "2482:6:1", - "nodeType": "YulIdentifier", - "src": "2482:6:1" - }, - { - "kind": "number", - "nativeSrc": "2490:4:1", - "nodeType": "YulLiteral", - "src": "2490:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "2478:3:1", - "nodeType": "YulIdentifier", - "src": "2478:3:1" - }, - "nativeSrc": "2478:17:1", - "nodeType": "YulFunctionCall", - "src": "2478:17:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2466:3:1", - "nodeType": "YulIdentifier", - "src": "2466:3:1" - }, - "nativeSrc": "2466:30:1", - "nodeType": "YulFunctionCall", - "src": "2466:30:1" - }, - "variables": [ - { - "name": "srcEnd", - "nativeSrc": "2456:6:1", - "nodeType": "YulTypedName", - "src": "2456:6:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2524:103:1", - "nodeType": "YulBlock", - "src": "2524:103:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "2538:77:1", - "nodeType": "YulIdentifier", - "src": "2538:77:1" - }, - "nativeSrc": "2538:79:1", - "nodeType": "YulFunctionCall", - "src": "2538:79:1" - }, - "nativeSrc": "2538:79:1", - "nodeType": "YulExpressionStatement", - "src": "2538:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "srcEnd", - "nativeSrc": "2511:6:1", - "nodeType": "YulIdentifier", - "src": "2511:6:1" - }, - { - "name": "end", - "nativeSrc": "2519:3:1", - "nodeType": "YulIdentifier", - "src": "2519:3:1" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2508:2:1", - "nodeType": "YulIdentifier", - "src": "2508:2:1" - }, - "nativeSrc": "2508:15:1", - "nodeType": "YulFunctionCall", - "src": "2508:15:1" - }, - "nativeSrc": "2505:122:1", - "nodeType": "YulIf", - "src": "2505:122:1" - }, - { - "body": { - "nativeSrc": "2712:155:1", - "nodeType": "YulBlock", - "src": "2712:155:1", - "statements": [ - { - "nativeSrc": "2727:21:1", - "nodeType": "YulVariableDeclaration", - "src": "2727:21:1", - "value": { - "name": "src", - "nativeSrc": "2745:3:1", - "nodeType": "YulIdentifier", - "src": "2745:3:1" - }, - "variables": [ - { - "name": "elementPos", - "nativeSrc": "2731:10:1", - "nodeType": "YulTypedName", - "src": "2731:10:1", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2769:3:1", - "nodeType": "YulIdentifier", - "src": "2769:3:1" - }, - { - "arguments": [ - { - "name": "elementPos", - "nativeSrc": "2806:10:1", - "nodeType": "YulIdentifier", - "src": "2806:10:1" - }, - { - "name": "end", - "nativeSrc": "2818:3:1", - "nodeType": "YulIdentifier", - "src": "2818:3:1" - } - ], - "functionName": { - "name": "abi_decode_t_address_fromMemory", - "nativeSrc": "2774:31:1", - "nodeType": "YulIdentifier", - "src": "2774:31:1" - }, - "nativeSrc": "2774:48:1", - "nodeType": "YulFunctionCall", - "src": "2774:48:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2762:6:1", - "nodeType": "YulIdentifier", - "src": "2762:6:1" - }, - "nativeSrc": "2762:61:1", - "nodeType": "YulFunctionCall", - "src": "2762:61:1" - }, - "nativeSrc": "2762:61:1", - "nodeType": "YulExpressionStatement", - "src": "2762:61:1" - }, - { - "nativeSrc": "2836:21:1", - "nodeType": "YulAssignment", - "src": "2836:21:1", - "value": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "2847:3:1", - "nodeType": "YulIdentifier", - "src": "2847:3:1" - }, - { - "kind": "number", - "nativeSrc": "2852:4:1", - "nodeType": "YulLiteral", - "src": "2852:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2843:3:1", - "nodeType": "YulIdentifier", - "src": "2843:3:1" - }, - "nativeSrc": "2843:14:1", - "nodeType": "YulFunctionCall", - "src": "2843:14:1" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "2836:3:1", - "nodeType": "YulIdentifier", - "src": "2836:3:1" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "src", - "nativeSrc": "2665:3:1", - "nodeType": "YulIdentifier", - "src": "2665:3:1" - }, - { - "name": "srcEnd", - "nativeSrc": "2670:6:1", - "nodeType": "YulIdentifier", - "src": "2670:6:1" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2662:2:1", - "nodeType": "YulIdentifier", - "src": "2662:2:1" - }, - "nativeSrc": "2662:15:1", - "nodeType": "YulFunctionCall", - "src": "2662:15:1" - }, - "nativeSrc": "2636:231:1", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "2678:25:1", - "nodeType": "YulBlock", - "src": "2678:25:1", - "statements": [ - { - "nativeSrc": "2680:21:1", - "nodeType": "YulAssignment", - "src": "2680:21:1", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "2691:3:1", - "nodeType": "YulIdentifier", - "src": "2691:3:1" - }, - { - "kind": "number", - "nativeSrc": "2696:4:1", - "nodeType": "YulLiteral", - "src": "2696:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2687:3:1", - "nodeType": "YulIdentifier", - "src": "2687:3:1" - }, - "nativeSrc": "2687:14:1", - "nodeType": "YulFunctionCall", - "src": "2687:14:1" - }, - "variableNames": [ - { - "name": "src", - "nativeSrc": "2680:3:1", - "nodeType": "YulIdentifier", - "src": "2680:3:1" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "2640:21:1", - "nodeType": "YulBlock", - "src": "2640:21:1", - "statements": [ - { - "nativeSrc": "2642:17:1", - "nodeType": "YulVariableDeclaration", - "src": "2642:17:1", - "value": { - "name": "offset", - "nativeSrc": "2653:6:1", - "nodeType": "YulIdentifier", - "src": "2653:6:1" - }, - "variables": [ - { - "name": "src", - "nativeSrc": "2646:3:1", - "nodeType": "YulTypedName", - "src": "2646:3:1", - "type": "" - } - ] - } - ] - }, - "src": "2636:231:1" - } - ] - }, - "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory", - "nativeSrc": "2141:732:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2224:6:1", - "nodeType": "YulTypedName", - "src": "2224:6:1", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2232:6:1", - "nodeType": "YulTypedName", - "src": "2232:6:1", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2240:3:1", - "nodeType": "YulTypedName", - "src": "2240:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2248:5:1", - "nodeType": "YulTypedName", - "src": "2248:5:1", - "type": "" - } - ], - "src": "2141:732:1" - }, - { - "body": { - "nativeSrc": "2984:297:1", - "nodeType": "YulBlock", - "src": "2984:297:1", - "statements": [ - { - "body": { - "nativeSrc": "3033:83:1", - "nodeType": "YulBlock", - "src": "3033:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "3035:77:1", - "nodeType": "YulIdentifier", - "src": "3035:77:1" - }, - "nativeSrc": "3035:79:1", - "nodeType": "YulFunctionCall", - "src": "3035:79:1" - }, - "nativeSrc": "3035:79:1", - "nodeType": "YulExpressionStatement", - "src": "3035:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3012:6:1", - "nodeType": "YulIdentifier", - "src": "3012:6:1" - }, - { - "kind": "number", - "nativeSrc": "3020:4:1", - "nodeType": "YulLiteral", - "src": "3020:4:1", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3008:3:1", - "nodeType": "YulIdentifier", - "src": "3008:3:1" - }, - "nativeSrc": "3008:17:1", - "nodeType": "YulFunctionCall", - "src": "3008:17:1" - }, - { - "name": "end", - "nativeSrc": "3027:3:1", - "nodeType": "YulIdentifier", - "src": "3027:3:1" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3004:3:1", - "nodeType": "YulIdentifier", - "src": "3004:3:1" - }, - "nativeSrc": "3004:27:1", - "nodeType": "YulFunctionCall", - "src": "3004:27:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2997:6:1", - "nodeType": "YulIdentifier", - "src": "2997:6:1" - }, - "nativeSrc": "2997:35:1", - "nodeType": "YulFunctionCall", - "src": "2997:35:1" - }, - "nativeSrc": "2994:122:1", - "nodeType": "YulIf", - "src": "2994:122:1" - }, - { - "nativeSrc": "3125:27:1", - "nodeType": "YulVariableDeclaration", - "src": "3125:27:1", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3145:6:1", - "nodeType": "YulIdentifier", - "src": "3145:6:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3139:5:1", - "nodeType": "YulIdentifier", - "src": "3139:5:1" - }, - "nativeSrc": "3139:13:1", - "nodeType": "YulFunctionCall", - "src": "3139:13:1" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "3129:6:1", - "nodeType": "YulTypedName", - "src": "3129:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "3161:114:1", - "nodeType": "YulAssignment", - "src": "3161:114:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3248:6:1", - "nodeType": "YulIdentifier", - "src": "3248:6:1" - }, - { - "kind": "number", - "nativeSrc": "3256:4:1", - "nodeType": "YulLiteral", - "src": "3256:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3244:3:1", - "nodeType": "YulIdentifier", - "src": "3244:3:1" - }, - "nativeSrc": "3244:17:1", - "nodeType": "YulFunctionCall", - "src": "3244:17:1" - }, - { - "name": "length", - "nativeSrc": "3263:6:1", - "nodeType": "YulIdentifier", - "src": "3263:6:1" - }, - { - "name": "end", - "nativeSrc": "3271:3:1", - "nodeType": "YulIdentifier", - "src": "3271:3:1" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory", - "nativeSrc": "3170:73:1", - "nodeType": "YulIdentifier", - "src": "3170:73:1" - }, - "nativeSrc": "3170:105:1", - "nodeType": "YulFunctionCall", - "src": "3170:105:1" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "3161:5:1", - "nodeType": "YulIdentifier", - "src": "3161:5:1" - } - ] - } - ] - }, - "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory", - "nativeSrc": "2896:385:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2962:6:1", - "nodeType": "YulTypedName", - "src": "2962:6:1", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2970:3:1", - "nodeType": "YulTypedName", - "src": "2970:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "2978:5:1", - "nodeType": "YulTypedName", - "src": "2978:5:1", - "type": "" - } - ], - "src": "2896:385:1" - }, - { - "body": { - "nativeSrc": "3332:32:1", - "nodeType": "YulBlock", - "src": "3332:32:1", - "statements": [ - { - "nativeSrc": "3342:16:1", - "nodeType": "YulAssignment", - "src": "3342:16:1", - "value": { - "name": "value", - "nativeSrc": "3353:5:1", - "nodeType": "YulIdentifier", - "src": "3353:5:1" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "3342:7:1", - "nodeType": "YulIdentifier", - "src": "3342:7:1" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "3287:77:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3314:5:1", - "nodeType": "YulTypedName", - "src": "3314:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "3324:7:1", - "nodeType": "YulTypedName", - "src": "3324:7:1", - "type": "" - } - ], - "src": "3287:77:1" - }, - { - "body": { - "nativeSrc": "3413:79:1", - "nodeType": "YulBlock", - "src": "3413:79:1", - "statements": [ - { - "body": { - "nativeSrc": "3470:16:1", - "nodeType": "YulBlock", - "src": "3470:16:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3479:1:1", - "nodeType": "YulLiteral", - "src": "3479:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3482:1:1", - "nodeType": "YulLiteral", - "src": "3482:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3472:6:1", - "nodeType": "YulIdentifier", - "src": "3472:6:1" - }, - "nativeSrc": "3472:12:1", - "nodeType": "YulFunctionCall", - "src": "3472:12:1" - }, - "nativeSrc": "3472:12:1", - "nodeType": "YulExpressionStatement", - "src": "3472:12:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3436:5:1", - "nodeType": "YulIdentifier", - "src": "3436:5:1" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3461:5:1", - "nodeType": "YulIdentifier", - "src": "3461:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "3443:17:1", - "nodeType": "YulIdentifier", - "src": "3443:17:1" - }, - "nativeSrc": "3443:24:1", - "nodeType": "YulFunctionCall", - "src": "3443:24:1" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3433:2:1", - "nodeType": "YulIdentifier", - "src": "3433:2:1" - }, - "nativeSrc": "3433:35:1", - "nodeType": "YulFunctionCall", - "src": "3433:35:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3426:6:1", - "nodeType": "YulIdentifier", - "src": "3426:6:1" - }, - "nativeSrc": "3426:43:1", - "nodeType": "YulFunctionCall", - "src": "3426:43:1" - }, - "nativeSrc": "3423:63:1", - "nodeType": "YulIf", - "src": "3423:63:1" - } - ] - }, - "name": "validator_revert_t_uint256", - "nativeSrc": "3370:122:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3406:5:1", - "nodeType": "YulTypedName", - "src": "3406:5:1", - "type": "" - } - ], - "src": "3370:122:1" - }, - { - "body": { - "nativeSrc": "3561:80:1", - "nodeType": "YulBlock", - "src": "3561:80:1", - "statements": [ - { - "nativeSrc": "3571:22:1", - "nodeType": "YulAssignment", - "src": "3571:22:1", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3586:6:1", - "nodeType": "YulIdentifier", - "src": "3586:6:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3580:5:1", - "nodeType": "YulIdentifier", - "src": "3580:5:1" - }, - "nativeSrc": "3580:13:1", - "nodeType": "YulFunctionCall", - "src": "3580:13:1" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "3571:5:1", - "nodeType": "YulIdentifier", - "src": "3571:5:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3629:5:1", - "nodeType": "YulIdentifier", - "src": "3629:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "3602:26:1", - "nodeType": "YulIdentifier", - "src": "3602:26:1" - }, - "nativeSrc": "3602:33:1", - "nodeType": "YulFunctionCall", - "src": "3602:33:1" - }, - "nativeSrc": "3602:33:1", - "nodeType": "YulExpressionStatement", - "src": "3602:33:1" - } - ] - }, - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "3498:143:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "3539:6:1", - "nodeType": "YulTypedName", - "src": "3539:6:1", - "type": "" - }, - { - "name": "end", - "nativeSrc": "3547:3:1", - "nodeType": "YulTypedName", - "src": "3547:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "3555:5:1", - "nodeType": "YulTypedName", - "src": "3555:5:1", - "type": "" - } - ], - "src": "3498:143:1" - }, - { - "body": { - "nativeSrc": "3766:591:1", - "nodeType": "YulBlock", - "src": "3766:591:1", - "statements": [ - { - "body": { - "nativeSrc": "3812:83:1", - "nodeType": "YulBlock", - "src": "3812:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3814:77:1", - "nodeType": "YulIdentifier", - "src": "3814:77:1" - }, - "nativeSrc": "3814:79:1", - "nodeType": "YulFunctionCall", - "src": "3814:79:1" - }, - "nativeSrc": "3814:79:1", - "nodeType": "YulExpressionStatement", - "src": "3814:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3787:7:1", - "nodeType": "YulIdentifier", - "src": "3787:7:1" - }, - { - "name": "headStart", - "nativeSrc": "3796:9:1", - "nodeType": "YulIdentifier", - "src": "3796:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3783:3:1", - "nodeType": "YulIdentifier", - "src": "3783:3:1" - }, - "nativeSrc": "3783:23:1", - "nodeType": "YulFunctionCall", - "src": "3783:23:1" - }, - { - "kind": "number", - "nativeSrc": "3808:2:1", - "nodeType": "YulLiteral", - "src": "3808:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3779:3:1", - "nodeType": "YulIdentifier", - "src": "3779:3:1" - }, - "nativeSrc": "3779:32:1", - "nodeType": "YulFunctionCall", - "src": "3779:32:1" - }, - "nativeSrc": "3776:119:1", - "nodeType": "YulIf", - "src": "3776:119:1" - }, - { - "nativeSrc": "3905:306:1", - "nodeType": "YulBlock", - "src": "3905:306:1", - "statements": [ - { - "nativeSrc": "3920:38:1", - "nodeType": "YulVariableDeclaration", - "src": "3920:38:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3944:9:1", - "nodeType": "YulIdentifier", - "src": "3944:9:1" - }, - { - "kind": "number", - "nativeSrc": "3955:1:1", - "nodeType": "YulLiteral", - "src": "3955:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3940:3:1", - "nodeType": "YulIdentifier", - "src": "3940:3:1" - }, - "nativeSrc": "3940:17:1", - "nodeType": "YulFunctionCall", - "src": "3940:17:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3934:5:1", - "nodeType": "YulIdentifier", - "src": "3934:5:1" - }, - "nativeSrc": "3934:24:1", - "nodeType": "YulFunctionCall", - "src": "3934:24:1" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3924:6:1", - "nodeType": "YulTypedName", - "src": "3924:6:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "4005:83:1", - "nodeType": "YulBlock", - "src": "4005:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "4007:77:1", - "nodeType": "YulIdentifier", - "src": "4007:77:1" - }, - "nativeSrc": "4007:79:1", - "nodeType": "YulFunctionCall", - "src": "4007:79:1" - }, - "nativeSrc": "4007:79:1", - "nodeType": "YulExpressionStatement", - "src": "4007:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3977:6:1", - "nodeType": "YulIdentifier", - "src": "3977:6:1" - }, - { - "kind": "number", - "nativeSrc": "3985:18:1", - "nodeType": "YulLiteral", - "src": "3985:18:1", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3974:2:1", - "nodeType": "YulIdentifier", - "src": "3974:2:1" - }, - "nativeSrc": "3974:30:1", - "nodeType": "YulFunctionCall", - "src": "3974:30:1" - }, - "nativeSrc": "3971:117:1", - "nodeType": "YulIf", - "src": "3971:117:1" - }, - { - "nativeSrc": "4102:99:1", - "nodeType": "YulAssignment", - "src": "4102:99:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4173:9:1", - "nodeType": "YulIdentifier", - "src": "4173:9:1" - }, - { - "name": "offset", - "nativeSrc": "4184:6:1", - "nodeType": "YulIdentifier", - "src": "4184:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4169:3:1", - "nodeType": "YulIdentifier", - "src": "4169:3:1" - }, - "nativeSrc": "4169:22:1", - "nodeType": "YulFunctionCall", - "src": "4169:22:1" - }, - { - "name": "dataEnd", - "nativeSrc": "4193:7:1", - "nodeType": "YulIdentifier", - "src": "4193:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory", - "nativeSrc": "4112:56:1", - "nodeType": "YulIdentifier", - "src": "4112:56:1" - }, - "nativeSrc": "4112:89:1", - "nodeType": "YulFunctionCall", - "src": "4112:89:1" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4102:6:1", - "nodeType": "YulIdentifier", - "src": "4102:6:1" - } - ] - } - ] - }, - { - "nativeSrc": "4221:129:1", - "nodeType": "YulBlock", - "src": "4221:129:1", - "statements": [ - { - "nativeSrc": "4236:16:1", - "nodeType": "YulVariableDeclaration", - "src": "4236:16:1", - "value": { - "kind": "number", - "nativeSrc": "4250:2:1", - "nodeType": "YulLiteral", - "src": "4250:2:1", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "4240:6:1", - "nodeType": "YulTypedName", - "src": "4240:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "4266:74:1", - "nodeType": "YulAssignment", - "src": "4266:74:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4312:9:1", - "nodeType": "YulIdentifier", - "src": "4312:9:1" - }, - { - "name": "offset", - "nativeSrc": "4323:6:1", - "nodeType": "YulIdentifier", - "src": "4323:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4308:3:1", - "nodeType": "YulIdentifier", - "src": "4308:3:1" - }, - "nativeSrc": "4308:22:1", - "nodeType": "YulFunctionCall", - "src": "4308:22:1" - }, - { - "name": "dataEnd", - "nativeSrc": "4332:7:1", - "nodeType": "YulIdentifier", - "src": "4332:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "4276:31:1", - "nodeType": "YulIdentifier", - "src": "4276:31:1" - }, - "nativeSrc": "4276:64:1", - "nodeType": "YulFunctionCall", - "src": "4276:64:1" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4266:6:1", - "nodeType": "YulIdentifier", - "src": "4266:6:1" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256_fromMemory", - "nativeSrc": "3647:710:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3728:9:1", - "nodeType": "YulTypedName", - "src": "3728:9:1", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3739:7:1", - "nodeType": "YulTypedName", - "src": "3739:7:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3751:6:1", - "nodeType": "YulTypedName", - "src": "3751:6:1", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3759:6:1", - "nodeType": "YulTypedName", - "src": "3759:6:1", - "type": "" - } - ], - "src": "3647:710:1" - }, - { - "body": { - "nativeSrc": "4459:73:1", - "nodeType": "YulBlock", - "src": "4459:73:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4476:3:1", - "nodeType": "YulIdentifier", - "src": "4476:3:1" - }, - { - "name": "length", - "nativeSrc": "4481:6:1", - "nodeType": "YulIdentifier", - "src": "4481:6:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4469:6:1", - "nodeType": "YulIdentifier", - "src": "4469:6:1" - }, - "nativeSrc": "4469:19:1", - "nodeType": "YulFunctionCall", - "src": "4469:19:1" - }, - "nativeSrc": "4469:19:1", - "nodeType": "YulExpressionStatement", - "src": "4469:19:1" - }, - { - "nativeSrc": "4497:29:1", - "nodeType": "YulAssignment", - "src": "4497:29:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4516:3:1", - "nodeType": "YulIdentifier", - "src": "4516:3:1" - }, - { - "kind": "number", - "nativeSrc": "4521:4:1", - "nodeType": "YulLiteral", - "src": "4521:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4512:3:1", - "nodeType": "YulIdentifier", - "src": "4512:3:1" - }, - "nativeSrc": "4512:14:1", - "nodeType": "YulFunctionCall", - "src": "4512:14:1" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "4497:11:1", - "nodeType": "YulIdentifier", - "src": "4497:11:1" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "4363:169:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "4431:3:1", - "nodeType": "YulTypedName", - "src": "4431:3:1", - "type": "" - }, - { - "name": "length", - "nativeSrc": "4436:6:1", - "nodeType": "YulTypedName", - "src": "4436:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "4447:11:1", - "nodeType": "YulTypedName", - "src": "4447:11:1", - "type": "" - } - ], - "src": "4363:169:1" - }, - { - "body": { - "nativeSrc": "4644:59:1", - "nodeType": "YulBlock", - "src": "4644:59:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "4666:6:1", - "nodeType": "YulIdentifier", - "src": "4666:6:1" - }, - { - "kind": "number", - "nativeSrc": "4674:1:1", - "nodeType": "YulLiteral", - "src": "4674:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4662:3:1", - "nodeType": "YulIdentifier", - "src": "4662:3:1" - }, - "nativeSrc": "4662:14:1", - "nodeType": "YulFunctionCall", - "src": "4662:14:1" - }, - { - "hexValue": "6f776e657273207265717569726564", - "kind": "string", - "nativeSrc": "4678:17:1", - "nodeType": "YulLiteral", - "src": "4678:17:1", - "type": "", - "value": "owners required" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4655:6:1", - "nodeType": "YulIdentifier", - "src": "4655:6:1" - }, - "nativeSrc": "4655:41:1", - "nodeType": "YulFunctionCall", - "src": "4655:41:1" - }, - "nativeSrc": "4655:41:1", - "nodeType": "YulExpressionStatement", - "src": "4655:41:1" - } - ] - }, - "name": "store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0", - "nativeSrc": "4538:165:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "4636:6:1", - "nodeType": "YulTypedName", - "src": "4636:6:1", - "type": "" - } - ], - "src": "4538:165:1" - }, - { - "body": { - "nativeSrc": "4855:220:1", - "nodeType": "YulBlock", - "src": "4855:220:1", - "statements": [ - { - "nativeSrc": "4865:74:1", - "nodeType": "YulAssignment", - "src": "4865:74:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4931:3:1", - "nodeType": "YulIdentifier", - "src": "4931:3:1" - }, - { - "kind": "number", - "nativeSrc": "4936:2:1", - "nodeType": "YulLiteral", - "src": "4936:2:1", - "type": "", - "value": "15" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "4872:58:1", - "nodeType": "YulIdentifier", - "src": "4872:58:1" - }, - "nativeSrc": "4872:67:1", - "nodeType": "YulFunctionCall", - "src": "4872:67:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "4865:3:1", - "nodeType": "YulIdentifier", - "src": "4865:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5037:3:1", - "nodeType": "YulIdentifier", - "src": "5037:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0", - "nativeSrc": "4948:88:1", - "nodeType": "YulIdentifier", - "src": "4948:88:1" - }, - "nativeSrc": "4948:93:1", - "nodeType": "YulFunctionCall", - "src": "4948:93:1" - }, - "nativeSrc": "4948:93:1", - "nodeType": "YulExpressionStatement", - "src": "4948:93:1" - }, - { - "nativeSrc": "5050:19:1", - "nodeType": "YulAssignment", - "src": "5050:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5061:3:1", - "nodeType": "YulIdentifier", - "src": "5061:3:1" - }, - { - "kind": "number", - "nativeSrc": "5066:2:1", - "nodeType": "YulLiteral", - "src": "5066:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5057:3:1", - "nodeType": "YulIdentifier", - "src": "5057:3:1" - }, - "nativeSrc": "5057:12:1", - "nodeType": "YulFunctionCall", - "src": "5057:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5050:3:1", - "nodeType": "YulIdentifier", - "src": "5050:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack", - "nativeSrc": "4709:366:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "4843:3:1", - "nodeType": "YulTypedName", - "src": "4843:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "4851:3:1", - "nodeType": "YulTypedName", - "src": "4851:3:1", - "type": "" - } - ], - "src": "4709:366:1" - }, - { - "body": { - "nativeSrc": "5252:248:1", - "nodeType": "YulBlock", - "src": "5252:248:1", - "statements": [ - { - "nativeSrc": "5262:26:1", - "nodeType": "YulAssignment", - "src": "5262:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5274:9:1", - "nodeType": "YulIdentifier", - "src": "5274:9:1" - }, - { - "kind": "number", - "nativeSrc": "5285:2:1", - "nodeType": "YulLiteral", - "src": "5285:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5270:3:1", - "nodeType": "YulIdentifier", - "src": "5270:3:1" - }, - "nativeSrc": "5270:18:1", - "nodeType": "YulFunctionCall", - "src": "5270:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5262:4:1", - "nodeType": "YulIdentifier", - "src": "5262:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5309:9:1", - "nodeType": "YulIdentifier", - "src": "5309:9:1" - }, - { - "kind": "number", - "nativeSrc": "5320:1:1", - "nodeType": "YulLiteral", - "src": "5320:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5305:3:1", - "nodeType": "YulIdentifier", - "src": "5305:3:1" - }, - "nativeSrc": "5305:17:1", - "nodeType": "YulFunctionCall", - "src": "5305:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "5328:4:1", - "nodeType": "YulIdentifier", - "src": "5328:4:1" - }, - { - "name": "headStart", - "nativeSrc": "5334:9:1", - "nodeType": "YulIdentifier", - "src": "5334:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5324:3:1", - "nodeType": "YulIdentifier", - "src": "5324:3:1" - }, - "nativeSrc": "5324:20:1", - "nodeType": "YulFunctionCall", - "src": "5324:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5298:6:1", - "nodeType": "YulIdentifier", - "src": "5298:6:1" - }, - "nativeSrc": "5298:47:1", - "nodeType": "YulFunctionCall", - "src": "5298:47:1" - }, - "nativeSrc": "5298:47:1", - "nodeType": "YulExpressionStatement", - "src": "5298:47:1" - }, - { - "nativeSrc": "5354:139:1", - "nodeType": "YulAssignment", - "src": "5354:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "5488:4:1", - "nodeType": "YulIdentifier", - "src": "5488:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack", - "nativeSrc": "5362:124:1", - "nodeType": "YulIdentifier", - "src": "5362:124:1" - }, - "nativeSrc": "5362:131:1", - "nodeType": "YulFunctionCall", - "src": "5362:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "5354:4:1", - "nodeType": "YulIdentifier", - "src": "5354:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "5081:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5232:9:1", - "nodeType": "YulTypedName", - "src": "5232:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5247:4:1", - "nodeType": "YulTypedName", - "src": "5247:4:1", - "type": "" - } - ], - "src": "5081:419:1" - }, - { - "body": { - "nativeSrc": "5612:121:1", - "nodeType": "YulBlock", - "src": "5612:121:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "5634:6:1", - "nodeType": "YulIdentifier", - "src": "5634:6:1" - }, - { - "kind": "number", - "nativeSrc": "5642:1:1", - "nodeType": "YulLiteral", - "src": "5642:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5630:3:1", - "nodeType": "YulIdentifier", - "src": "5630:3:1" - }, - "nativeSrc": "5630:14:1", - "nodeType": "YulFunctionCall", - "src": "5630:14:1" - }, - { - "hexValue": "696e76616c6964206e756d626572206f6620726571756972656420636f6e6669", - "kind": "string", - "nativeSrc": "5646:34:1", - "nodeType": "YulLiteral", - "src": "5646:34:1", - "type": "", - "value": "invalid number of required confi" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5623:6:1", - "nodeType": "YulIdentifier", - "src": "5623:6:1" - }, - "nativeSrc": "5623:58:1", - "nodeType": "YulFunctionCall", - "src": "5623:58:1" - }, - "nativeSrc": "5623:58:1", - "nodeType": "YulExpressionStatement", - "src": "5623:58:1" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "5702:6:1", - "nodeType": "YulIdentifier", - "src": "5702:6:1" - }, - { - "kind": "number", - "nativeSrc": "5710:2:1", - "nodeType": "YulLiteral", - "src": "5710:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5698:3:1", - "nodeType": "YulIdentifier", - "src": "5698:3:1" - }, - "nativeSrc": "5698:15:1", - "nodeType": "YulFunctionCall", - "src": "5698:15:1" - }, - { - "hexValue": "726d6174696f6e73", - "kind": "string", - "nativeSrc": "5715:10:1", - "nodeType": "YulLiteral", - "src": "5715:10:1", - "type": "", - "value": "rmations" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5691:6:1", - "nodeType": "YulIdentifier", - "src": "5691:6:1" - }, - "nativeSrc": "5691:35:1", - "nodeType": "YulFunctionCall", - "src": "5691:35:1" - }, - "nativeSrc": "5691:35:1", - "nodeType": "YulExpressionStatement", - "src": "5691:35:1" - } - ] - }, - "name": "store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef", - "nativeSrc": "5506:227:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "5604:6:1", - "nodeType": "YulTypedName", - "src": "5604:6:1", - "type": "" - } - ], - "src": "5506:227:1" - }, - { - "body": { - "nativeSrc": "5885:220:1", - "nodeType": "YulBlock", - "src": "5885:220:1", - "statements": [ - { - "nativeSrc": "5895:74:1", - "nodeType": "YulAssignment", - "src": "5895:74:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5961:3:1", - "nodeType": "YulIdentifier", - "src": "5961:3:1" - }, - { - "kind": "number", - "nativeSrc": "5966:2:1", - "nodeType": "YulLiteral", - "src": "5966:2:1", - "type": "", - "value": "40" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "5902:58:1", - "nodeType": "YulIdentifier", - "src": "5902:58:1" - }, - "nativeSrc": "5902:67:1", - "nodeType": "YulFunctionCall", - "src": "5902:67:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "5895:3:1", - "nodeType": "YulIdentifier", - "src": "5895:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6067:3:1", - "nodeType": "YulIdentifier", - "src": "6067:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef", - "nativeSrc": "5978:88:1", - "nodeType": "YulIdentifier", - "src": "5978:88:1" - }, - "nativeSrc": "5978:93:1", - "nodeType": "YulFunctionCall", - "src": "5978:93:1" - }, - "nativeSrc": "5978:93:1", - "nodeType": "YulExpressionStatement", - "src": "5978:93:1" - }, - { - "nativeSrc": "6080:19:1", - "nodeType": "YulAssignment", - "src": "6080:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6091:3:1", - "nodeType": "YulIdentifier", - "src": "6091:3:1" - }, - { - "kind": "number", - "nativeSrc": "6096:2:1", - "nodeType": "YulLiteral", - "src": "6096:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6087:3:1", - "nodeType": "YulIdentifier", - "src": "6087:3:1" - }, - "nativeSrc": "6087:12:1", - "nodeType": "YulFunctionCall", - "src": "6087:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "6080:3:1", - "nodeType": "YulIdentifier", - "src": "6080:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack", - "nativeSrc": "5739:366:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5873:3:1", - "nodeType": "YulTypedName", - "src": "5873:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5881:3:1", - "nodeType": "YulTypedName", - "src": "5881:3:1", - "type": "" - } - ], - "src": "5739:366:1" - }, - { - "body": { - "nativeSrc": "6282:248:1", - "nodeType": "YulBlock", - "src": "6282:248:1", - "statements": [ - { - "nativeSrc": "6292:26:1", - "nodeType": "YulAssignment", - "src": "6292:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6304:9:1", - "nodeType": "YulIdentifier", - "src": "6304:9:1" - }, - { - "kind": "number", - "nativeSrc": "6315:2:1", - "nodeType": "YulLiteral", - "src": "6315:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6300:3:1", - "nodeType": "YulIdentifier", - "src": "6300:3:1" - }, - "nativeSrc": "6300:18:1", - "nodeType": "YulFunctionCall", - "src": "6300:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6292:4:1", - "nodeType": "YulIdentifier", - "src": "6292:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6339:9:1", - "nodeType": "YulIdentifier", - "src": "6339:9:1" - }, - { - "kind": "number", - "nativeSrc": "6350:1:1", - "nodeType": "YulLiteral", - "src": "6350:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6335:3:1", - "nodeType": "YulIdentifier", - "src": "6335:3:1" - }, - "nativeSrc": "6335:17:1", - "nodeType": "YulFunctionCall", - "src": "6335:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "6358:4:1", - "nodeType": "YulIdentifier", - "src": "6358:4:1" - }, - { - "name": "headStart", - "nativeSrc": "6364:9:1", - "nodeType": "YulIdentifier", - "src": "6364:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6354:3:1", - "nodeType": "YulIdentifier", - "src": "6354:3:1" - }, - "nativeSrc": "6354:20:1", - "nodeType": "YulFunctionCall", - "src": "6354:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6328:6:1", - "nodeType": "YulIdentifier", - "src": "6328:6:1" - }, - "nativeSrc": "6328:47:1", - "nodeType": "YulFunctionCall", - "src": "6328:47:1" - }, - "nativeSrc": "6328:47:1", - "nodeType": "YulExpressionStatement", - "src": "6328:47:1" - }, - { - "nativeSrc": "6384:139:1", - "nodeType": "YulAssignment", - "src": "6384:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "6518:4:1", - "nodeType": "YulIdentifier", - "src": "6518:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack", - "nativeSrc": "6392:124:1", - "nodeType": "YulIdentifier", - "src": "6392:124:1" - }, - "nativeSrc": "6392:131:1", - "nodeType": "YulFunctionCall", - "src": "6392:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6384:4:1", - "nodeType": "YulIdentifier", - "src": "6384:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "6111:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6262:9:1", - "nodeType": "YulTypedName", - "src": "6262:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "6277:4:1", - "nodeType": "YulTypedName", - "src": "6277:4:1", - "type": "" - } - ], - "src": "6111:419:1" - }, - { - "body": { - "nativeSrc": "6564:152:1", - "nodeType": "YulBlock", - "src": "6564:152:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6581:1:1", - "nodeType": "YulLiteral", - "src": "6581:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6584:77:1", - "nodeType": "YulLiteral", - "src": "6584:77:1", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6574:6:1", - "nodeType": "YulIdentifier", - "src": "6574:6:1" - }, - "nativeSrc": "6574:88:1", - "nodeType": "YulFunctionCall", - "src": "6574:88:1" - }, - "nativeSrc": "6574:88:1", - "nodeType": "YulExpressionStatement", - "src": "6574:88:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6678:1:1", - "nodeType": "YulLiteral", - "src": "6678:1:1", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "6681:4:1", - "nodeType": "YulLiteral", - "src": "6681:4:1", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6671:6:1", - "nodeType": "YulIdentifier", - "src": "6671:6:1" - }, - "nativeSrc": "6671:15:1", - "nodeType": "YulFunctionCall", - "src": "6671:15:1" - }, - "nativeSrc": "6671:15:1", - "nodeType": "YulExpressionStatement", - "src": "6671:15:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6702:1:1", - "nodeType": "YulLiteral", - "src": "6702:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6705:4:1", - "nodeType": "YulLiteral", - "src": "6705:4:1", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6695:6:1", - "nodeType": "YulIdentifier", - "src": "6695:6:1" - }, - "nativeSrc": "6695:15:1", - "nodeType": "YulFunctionCall", - "src": "6695:15:1" - }, - "nativeSrc": "6695:15:1", - "nodeType": "YulExpressionStatement", - "src": "6695:15:1" - } - ] - }, - "name": "panic_error_0x32", - "nativeSrc": "6536:180:1", - "nodeType": "YulFunctionDefinition", - "src": "6536:180:1" - }, - { - "body": { - "nativeSrc": "6828:57:1", - "nodeType": "YulBlock", - "src": "6828:57:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "6850:6:1", - "nodeType": "YulIdentifier", - "src": "6850:6:1" - }, - { - "kind": "number", - "nativeSrc": "6858:1:1", - "nodeType": "YulLiteral", - "src": "6858:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6846:3:1", - "nodeType": "YulIdentifier", - "src": "6846:3:1" - }, - "nativeSrc": "6846:14:1", - "nodeType": "YulFunctionCall", - "src": "6846:14:1" - }, - { - "hexValue": "696e76616c6964206f776e6572", - "kind": "string", - "nativeSrc": "6862:15:1", - "nodeType": "YulLiteral", - "src": "6862:15:1", - "type": "", - "value": "invalid owner" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6839:6:1", - "nodeType": "YulIdentifier", - "src": "6839:6:1" - }, - "nativeSrc": "6839:39:1", - "nodeType": "YulFunctionCall", - "src": "6839:39:1" - }, - "nativeSrc": "6839:39:1", - "nodeType": "YulExpressionStatement", - "src": "6839:39:1" - } - ] - }, - "name": "store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14", - "nativeSrc": "6722:163:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "6820:6:1", - "nodeType": "YulTypedName", - "src": "6820:6:1", - "type": "" - } - ], - "src": "6722:163:1" - }, - { - "body": { - "nativeSrc": "7037:220:1", - "nodeType": "YulBlock", - "src": "7037:220:1", - "statements": [ - { - "nativeSrc": "7047:74:1", - "nodeType": "YulAssignment", - "src": "7047:74:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7113:3:1", - "nodeType": "YulIdentifier", - "src": "7113:3:1" - }, - { - "kind": "number", - "nativeSrc": "7118:2:1", - "nodeType": "YulLiteral", - "src": "7118:2:1", - "type": "", - "value": "13" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "7054:58:1", - "nodeType": "YulIdentifier", - "src": "7054:58:1" - }, - "nativeSrc": "7054:67:1", - "nodeType": "YulFunctionCall", - "src": "7054:67:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "7047:3:1", - "nodeType": "YulIdentifier", - "src": "7047:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7219:3:1", - "nodeType": "YulIdentifier", - "src": "7219:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14", - "nativeSrc": "7130:88:1", - "nodeType": "YulIdentifier", - "src": "7130:88:1" - }, - "nativeSrc": "7130:93:1", - "nodeType": "YulFunctionCall", - "src": "7130:93:1" - }, - "nativeSrc": "7130:93:1", - "nodeType": "YulExpressionStatement", - "src": "7130:93:1" - }, - { - "nativeSrc": "7232:19:1", - "nodeType": "YulAssignment", - "src": "7232:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "7243:3:1", - "nodeType": "YulIdentifier", - "src": "7243:3:1" - }, - { - "kind": "number", - "nativeSrc": "7248:2:1", - "nodeType": "YulLiteral", - "src": "7248:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7239:3:1", - "nodeType": "YulIdentifier", - "src": "7239:3:1" - }, - "nativeSrc": "7239:12:1", - "nodeType": "YulFunctionCall", - "src": "7239:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "7232:3:1", - "nodeType": "YulIdentifier", - "src": "7232:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack", - "nativeSrc": "6891:366:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "7025:3:1", - "nodeType": "YulTypedName", - "src": "7025:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "7033:3:1", - "nodeType": "YulTypedName", - "src": "7033:3:1", - "type": "" - } - ], - "src": "6891:366:1" - }, - { - "body": { - "nativeSrc": "7434:248:1", - "nodeType": "YulBlock", - "src": "7434:248:1", - "statements": [ - { - "nativeSrc": "7444:26:1", - "nodeType": "YulAssignment", - "src": "7444:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7456:9:1", - "nodeType": "YulIdentifier", - "src": "7456:9:1" - }, - { - "kind": "number", - "nativeSrc": "7467:2:1", - "nodeType": "YulLiteral", - "src": "7467:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7452:3:1", - "nodeType": "YulIdentifier", - "src": "7452:3:1" - }, - "nativeSrc": "7452:18:1", - "nodeType": "YulFunctionCall", - "src": "7452:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7444:4:1", - "nodeType": "YulIdentifier", - "src": "7444:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7491:9:1", - "nodeType": "YulIdentifier", - "src": "7491:9:1" - }, - { - "kind": "number", - "nativeSrc": "7502:1:1", - "nodeType": "YulLiteral", - "src": "7502:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7487:3:1", - "nodeType": "YulIdentifier", - "src": "7487:3:1" - }, - "nativeSrc": "7487:17:1", - "nodeType": "YulFunctionCall", - "src": "7487:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "7510:4:1", - "nodeType": "YulIdentifier", - "src": "7510:4:1" - }, - { - "name": "headStart", - "nativeSrc": "7516:9:1", - "nodeType": "YulIdentifier", - "src": "7516:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7506:3:1", - "nodeType": "YulIdentifier", - "src": "7506:3:1" - }, - "nativeSrc": "7506:20:1", - "nodeType": "YulFunctionCall", - "src": "7506:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7480:6:1", - "nodeType": "YulIdentifier", - "src": "7480:6:1" - }, - "nativeSrc": "7480:47:1", - "nodeType": "YulFunctionCall", - "src": "7480:47:1" - }, - "nativeSrc": "7480:47:1", - "nodeType": "YulExpressionStatement", - "src": "7480:47:1" - }, - { - "nativeSrc": "7536:139:1", - "nodeType": "YulAssignment", - "src": "7536:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "7670:4:1", - "nodeType": "YulIdentifier", - "src": "7670:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack", - "nativeSrc": "7544:124:1", - "nodeType": "YulIdentifier", - "src": "7544:124:1" - }, - "nativeSrc": "7544:131:1", - "nodeType": "YulFunctionCall", - "src": "7544:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7536:4:1", - "nodeType": "YulIdentifier", - "src": "7536:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "7263:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7414:9:1", - "nodeType": "YulTypedName", - "src": "7414:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7429:4:1", - "nodeType": "YulTypedName", - "src": "7429:4:1", - "type": "" - } - ], - "src": "7263:419:1" - }, - { - "body": { - "nativeSrc": "7794:60:1", - "nodeType": "YulBlock", - "src": "7794:60:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "7816:6:1", - "nodeType": "YulIdentifier", - "src": "7816:6:1" - }, - { - "kind": "number", - "nativeSrc": "7824:1:1", - "nodeType": "YulLiteral", - "src": "7824:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7812:3:1", - "nodeType": "YulIdentifier", - "src": "7812:3:1" - }, - "nativeSrc": "7812:14:1", - "nodeType": "YulFunctionCall", - "src": "7812:14:1" - }, - { - "hexValue": "6f776e6572206e6f7420756e69717565", - "kind": "string", - "nativeSrc": "7828:18:1", - "nodeType": "YulLiteral", - "src": "7828:18:1", - "type": "", - "value": "owner not unique" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7805:6:1", - "nodeType": "YulIdentifier", - "src": "7805:6:1" - }, - "nativeSrc": "7805:42:1", - "nodeType": "YulFunctionCall", - "src": "7805:42:1" - }, - "nativeSrc": "7805:42:1", - "nodeType": "YulExpressionStatement", - "src": "7805:42:1" - } - ] - }, - "name": "store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684", - "nativeSrc": "7688:166:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "7786:6:1", - "nodeType": "YulTypedName", - "src": "7786:6:1", - "type": "" - } - ], - "src": "7688:166:1" - }, - { - "body": { - "nativeSrc": "8006:220:1", - "nodeType": "YulBlock", - "src": "8006:220:1", - "statements": [ - { - "nativeSrc": "8016:74:1", - "nodeType": "YulAssignment", - "src": "8016:74:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8082:3:1", - "nodeType": "YulIdentifier", - "src": "8082:3:1" - }, - { - "kind": "number", - "nativeSrc": "8087:2:1", - "nodeType": "YulLiteral", - "src": "8087:2:1", - "type": "", - "value": "16" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "8023:58:1", - "nodeType": "YulIdentifier", - "src": "8023:58:1" - }, - "nativeSrc": "8023:67:1", - "nodeType": "YulFunctionCall", - "src": "8023:67:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "8016:3:1", - "nodeType": "YulIdentifier", - "src": "8016:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8188:3:1", - "nodeType": "YulIdentifier", - "src": "8188:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684", - "nativeSrc": "8099:88:1", - "nodeType": "YulIdentifier", - "src": "8099:88:1" - }, - "nativeSrc": "8099:93:1", - "nodeType": "YulFunctionCall", - "src": "8099:93:1" - }, - "nativeSrc": "8099:93:1", - "nodeType": "YulExpressionStatement", - "src": "8099:93:1" - }, - { - "nativeSrc": "8201:19:1", - "nodeType": "YulAssignment", - "src": "8201:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8212:3:1", - "nodeType": "YulIdentifier", - "src": "8212:3:1" - }, - { - "kind": "number", - "nativeSrc": "8217:2:1", - "nodeType": "YulLiteral", - "src": "8217:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8208:3:1", - "nodeType": "YulIdentifier", - "src": "8208:3:1" - }, - "nativeSrc": "8208:12:1", - "nodeType": "YulFunctionCall", - "src": "8208:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "8201:3:1", - "nodeType": "YulIdentifier", - "src": "8201:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack", - "nativeSrc": "7860:366:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "7994:3:1", - "nodeType": "YulTypedName", - "src": "7994:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "8002:3:1", - "nodeType": "YulTypedName", - "src": "8002:3:1", - "type": "" - } - ], - "src": "7860:366:1" - }, - { - "body": { - "nativeSrc": "8403:248:1", - "nodeType": "YulBlock", - "src": "8403:248:1", - "statements": [ - { - "nativeSrc": "8413:26:1", - "nodeType": "YulAssignment", - "src": "8413:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8425:9:1", - "nodeType": "YulIdentifier", - "src": "8425:9:1" - }, - { - "kind": "number", - "nativeSrc": "8436:2:1", - "nodeType": "YulLiteral", - "src": "8436:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8421:3:1", - "nodeType": "YulIdentifier", - "src": "8421:3:1" - }, - "nativeSrc": "8421:18:1", - "nodeType": "YulFunctionCall", - "src": "8421:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8413:4:1", - "nodeType": "YulIdentifier", - "src": "8413:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8460:9:1", - "nodeType": "YulIdentifier", - "src": "8460:9:1" - }, - { - "kind": "number", - "nativeSrc": "8471:1:1", - "nodeType": "YulLiteral", - "src": "8471:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8456:3:1", - "nodeType": "YulIdentifier", - "src": "8456:3:1" - }, - "nativeSrc": "8456:17:1", - "nodeType": "YulFunctionCall", - "src": "8456:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "8479:4:1", - "nodeType": "YulIdentifier", - "src": "8479:4:1" - }, - { - "name": "headStart", - "nativeSrc": "8485:9:1", - "nodeType": "YulIdentifier", - "src": "8485:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "8475:3:1", - "nodeType": "YulIdentifier", - "src": "8475:3:1" - }, - "nativeSrc": "8475:20:1", - "nodeType": "YulFunctionCall", - "src": "8475:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8449:6:1", - "nodeType": "YulIdentifier", - "src": "8449:6:1" - }, - "nativeSrc": "8449:47:1", - "nodeType": "YulFunctionCall", - "src": "8449:47:1" - }, - "nativeSrc": "8449:47:1", - "nodeType": "YulExpressionStatement", - "src": "8449:47:1" - }, - { - "nativeSrc": "8505:139:1", - "nodeType": "YulAssignment", - "src": "8505:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "8639:4:1", - "nodeType": "YulIdentifier", - "src": "8639:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack", - "nativeSrc": "8513:124:1", - "nodeType": "YulIdentifier", - "src": "8513:124:1" - }, - "nativeSrc": "8513:131:1", - "nodeType": "YulFunctionCall", - "src": "8513:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8505:4:1", - "nodeType": "YulIdentifier", - "src": "8505:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "8232:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8383:9:1", - "nodeType": "YulTypedName", - "src": "8383:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8398:4:1", - "nodeType": "YulTypedName", - "src": "8398:4:1", - "type": "" - } - ], - "src": "8232:419:1" - } - ] - }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0(memPtr) {\n\n mstore(add(memPtr, 0), \"owners required\")\n\n }\n\n function abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 15)\n store_literal_in_memory_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2987abb7f5516da49de11ff9d3ef94dd0e480b846399ea086109ab6e3b4fecb0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef(memPtr) {\n\n mstore(add(memPtr, 0), \"invalid number of required confi\")\n\n mstore(add(memPtr, 32), \"rmations\")\n\n }\n\n function abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d6cdb911d125c83f4ee4343147ce395788792877967b66bed3d1fef449ca27ef_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14(memPtr) {\n\n mstore(add(memPtr, 0), \"invalid owner\")\n\n }\n\n function abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 13)\n store_literal_in_memory_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_6a6ef3f1d272b3597b09ac81b6aef3488a40db4c809157d1f8878aa09a43bb14_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684(memPtr) {\n\n mstore(add(memPtr, 0), \"owner not unique\")\n\n }\n\n function abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_13b94a5ff990d334c5a630c183519027749556588a428c0758ae9fd7795a1684_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", - "id": 1, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b50604051620025a8380380620025a8833981810160405281019062000037919062000505565b60008251116200007e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007590620005cc565b60405180910390fd5b60008111801562000090575081518111155b620000d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c99062000664565b60405180910390fd5b60005b8251811015620002cc576000838281518110620000f757620000f662000686565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200016a9062000705565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000203576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001fa9062000777565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050620000d5565b5080600281905550505062000799565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034082620002f5565b810181811067ffffffffffffffff8211171562000362576200036162000306565b5b80604052505050565b600062000377620002dc565b905062000385828262000335565b919050565b600067ffffffffffffffff821115620003a857620003a762000306565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003eb82620003be565b9050919050565b620003fd81620003de565b81146200040957600080fd5b50565b6000815190506200041d81620003f2565b92915050565b60006200043a62000434846200038a565b6200036b565b9050808382526020820190506020840283018581111562000460576200045f620003b9565b5b835b818110156200048d57806200047888826200040c565b84526020840193505060208101905062000462565b5050509392505050565b600082601f830112620004af57620004ae620002f0565b5b8151620004c184826020860162000423565b91505092915050565b6000819050919050565b620004df81620004ca565b8114620004eb57600080fd5b50565b600081519050620004ff81620004d4565b92915050565b600080604083850312156200051f576200051e620002e6565b5b600083015167ffffffffffffffff81111562000540576200053f620002eb565b5b6200054e8582860162000497565b92505060206200056185828601620004ee565b9150509250929050565b600082825260208201905092915050565b7f6f776e6572732072657175697265640000000000000000000000000000000000600082015250565b6000620005b4600f836200056b565b9150620005c1826200057c565b602082019050919050565b60006020820190508181036000830152620005e781620005a5565b9050919050565b7f696e76616c6964206e756d626572206f6620726571756972656420636f6e666960008201527f726d6174696f6e73000000000000000000000000000000000000000000000000602082015250565b60006200064c6028836200056b565b91506200065982620005ee565b604082019050919050565b600060208201905081810360008301526200067f816200063d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f696e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000620006ed600d836200056b565b9150620006fa82620006b5565b602082019050919050565b600060208201905081810360008301526200072081620006de565b9050919050565b7f6f776e6572206e6f7420756e6971756500000000000000000000000000000000600082015250565b60006200075f6010836200056b565b91506200076c8262000727565b602082019050919050565b60006020820190508181036000830152620007928162000750565b9050919050565b611dff80620007a96000396000f3fe6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x25A8 CODESIZE SUB DUP1 PUSH3 0x25A8 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x505 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT PUSH3 0x7E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x75 SWAP1 PUSH3 0x5CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT DUP1 ISZERO PUSH3 0x90 JUMPI POP DUP2 MLOAD DUP2 GT ISZERO JUMPDEST PUSH3 0xD2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xC9 SWAP1 PUSH3 0x664 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH3 0x2CC JUMPI PUSH1 0x0 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0xF7 JUMPI PUSH3 0xF6 PUSH3 0x686 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x173 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x16A SWAP1 PUSH3 0x705 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x203 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1FA SWAP1 PUSH3 0x777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH3 0xD5 JUMP JUMPDEST POP DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP POP PUSH3 0x799 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x340 DUP3 PUSH3 0x2F5 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x362 JUMPI PUSH3 0x361 PUSH3 0x306 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x377 PUSH3 0x2DC JUMP JUMPDEST SWAP1 POP PUSH3 0x385 DUP3 DUP3 PUSH3 0x335 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x3A8 JUMPI PUSH3 0x3A7 PUSH3 0x306 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3EB DUP3 PUSH3 0x3BE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3FD DUP2 PUSH3 0x3DE JUMP JUMPDEST DUP2 EQ PUSH3 0x409 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x41D DUP2 PUSH3 0x3F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x43A PUSH3 0x434 DUP5 PUSH3 0x38A JUMP JUMPDEST PUSH3 0x36B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH3 0x460 JUMPI PUSH3 0x45F PUSH3 0x3B9 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x48D JUMPI DUP1 PUSH3 0x478 DUP9 DUP3 PUSH3 0x40C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x462 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x4AF JUMPI PUSH3 0x4AE PUSH3 0x2F0 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x4C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x423 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x4DF DUP2 PUSH3 0x4CA JUMP JUMPDEST DUP2 EQ PUSH3 0x4EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x4FF DUP2 PUSH3 0x4D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x51F JUMPI PUSH3 0x51E PUSH3 0x2E6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x540 JUMPI PUSH3 0x53F PUSH3 0x2EB JUMP JUMPDEST JUMPDEST PUSH3 0x54E DUP6 DUP3 DUP7 ADD PUSH3 0x497 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x561 DUP6 DUP3 DUP7 ADD PUSH3 0x4EE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6F776E6572732072657175697265640000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x5B4 PUSH1 0xF DUP4 PUSH3 0x56B JUMP JUMPDEST SWAP2 POP PUSH3 0x5C1 DUP3 PUSH3 0x57C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x5E7 DUP2 PUSH3 0x5A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x696E76616C6964206E756D626572206F6620726571756972656420636F6E6669 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x726D6174696F6E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x64C PUSH1 0x28 DUP4 PUSH3 0x56B JUMP JUMPDEST SWAP2 POP PUSH3 0x659 DUP3 PUSH3 0x5EE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x67F DUP2 PUSH3 0x63D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x696E76616C6964206F776E657200000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x6ED PUSH1 0xD DUP4 PUSH3 0x56B JUMP JUMPDEST SWAP2 POP PUSH3 0x6FA DUP3 PUSH3 0x6B5 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x720 DUP2 PUSH3 0x6DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x6F776E6572206E6F7420756E6971756500000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x75F PUSH1 0x10 DUP4 PUSH3 0x56B JUMP JUMPDEST SWAP2 POP PUSH3 0x76C DUP3 PUSH3 0x727 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x792 DUP2 PUSH3 0x750 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DFF DUP1 PUSH3 0x7A9 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9ACE38C2 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x9ACE38C2 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xA0E67E2B EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0xC01A8C84 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0xC6427474 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xD0549B85 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0xEE22610B EQ PUSH2 0x33C JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH4 0x25E7C27 EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x20EA8D86 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x2E7700F0 EQ PUSH2 0x16D JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x33EA3DC8 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x80F59A65 EQ PUSH2 0x216 JUMPI PUSH2 0x102 JUMP JUMPDEST CALLDATASIZE PUSH2 0x102 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 CALLVALUE SELFBALANCE PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP3 SWAP2 SWAP1 PUSH2 0x116D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x113 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x365 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13B SWAP2 SWAP1 PUSH2 0x1244 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x166 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH2 0x67E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x125F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CC SWAP2 SWAP1 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x6AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x13F3 JUMP JUMPDEST PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A9 PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B6 SWAP2 SWAP1 PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x976 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x1648 JUMP JUMPDEST PUSH2 0xC53 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x326 PUSH2 0xE56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x125F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x363 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35E SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0xE5C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x375 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x427 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x478 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46F SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x48D JUMPI PUSH2 0x48C PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E3 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x502 JUMPI PUSH2 0x501 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A6 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x5C4 SWAP2 SWAP1 PUSH2 0x18D6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0DCA620E2E81F7841D07BCC105E1704FB01475B278A9D4C236E1C62945EDD55 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x4 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x6C9 JUMPI PUSH2 0x6C8 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 ADD SLOAD DUP3 PUSH1 0x2 ADD DUP4 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP5 PUSH1 0x4 ADD SLOAD DUP3 DUP1 SLOAD PUSH2 0x72A SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x756 SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x778 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7A3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x786 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP3 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x7FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x84C SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x878 SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x89A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8A8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x96C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x922 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0xA4A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA41 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA5F JUMPI PUSH2 0xA5E PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xABE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAB5 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x3 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xB5D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB54 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xB73 JUMPI PUSH2 0xB72 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x4 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB98 SWAP2 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5CBE105E36805F7820E291F799D5794FF948AF2A5F664E580382DEFB63390041 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xCDF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCD6 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP1 SLOAD SWAP1 POP SWAP1 POP PUSH1 0x4 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xDBB SWAP2 SWAP1 PUSH2 0x1B4A JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE POP POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xD5A05BF70715AD82A09A756320284A1B54C9FF74CD0F8CCE6219E79B563FE59D DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xE48 SWAP3 SWAP2 SWAP1 PUSH2 0x1C1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xEE8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEDF SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0xF30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF27 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xF45 JUMPI PUSH2 0xF44 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFA4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF9B SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xFBA JUMPI PUSH2 0xFB9 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x2 SLOAD DUP2 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0x1013 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x100A SWAP1 PUSH2 0x1C98 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x2 ADD PUSH1 0x40 MLOAD PUSH2 0x1083 SWAP2 SWAP1 PUSH2 0x1D46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x10C0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x10C5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x1DA9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5445F318F4F5FCFB66592E68E0CC5822AA15664039BD5F0FFDE24C5A8142B1AC PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x1154 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1182 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x115E JUMP JUMPDEST PUSH2 0x118F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11B3 DUP2 PUSH2 0x1154 JUMP JUMPDEST DUP2 EQ PUSH2 0x11BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11D0 DUP2 PUSH2 0x11AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11EC JUMPI PUSH2 0x11EB PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11FA DUP5 DUP3 DUP6 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122E DUP3 PUSH2 0x1203 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x123E DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1259 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1235 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1274 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1283 DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP2 EQ PUSH2 0x128E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12A0 DUP2 PUSH2 0x127A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12BC JUMPI PUSH2 0x12BB PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12CA DUP5 DUP3 DUP6 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E8 DUP2 PUSH2 0x12D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1303 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x12DF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1343 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1328 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x136B DUP3 PUSH2 0x1309 JUMP JUMPDEST PUSH2 0x1375 DUP2 DUP6 PUSH2 0x1314 JUMP JUMPDEST SWAP4 POP PUSH2 0x1385 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1325 JUMP JUMPDEST PUSH2 0x138E DUP2 PUSH2 0x134F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x13AE PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1235 JUMP JUMPDEST PUSH2 0x13BB PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x115E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x13CD DUP2 DUP7 PUSH2 0x1360 JUMP JUMPDEST SWAP1 POP PUSH2 0x13DC PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x12DF JUMP JUMPDEST PUSH2 0x13E9 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x140A JUMPI PUSH2 0x1409 PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1418 DUP6 DUP3 DUP7 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1429 DUP6 DUP3 DUP7 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1468 DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x147A DUP4 DUP4 PUSH2 0x145F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x149E DUP3 PUSH2 0x1433 JUMP JUMPDEST PUSH2 0x14A8 DUP2 DUP6 PUSH2 0x143E JUMP JUMPDEST SWAP4 POP PUSH2 0x14B3 DUP4 PUSH2 0x144F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14E4 JUMPI DUP2 MLOAD PUSH2 0x14CB DUP9 DUP3 PUSH2 0x146E JUMP JUMPDEST SWAP8 POP PUSH2 0x14D6 DUP4 PUSH2 0x1486 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x14B7 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x150B DUP2 DUP5 PUSH2 0x1493 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1555 DUP3 PUSH2 0x134F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1574 JUMPI PUSH2 0x1573 PUSH2 0x151D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1587 PUSH2 0x1196 JUMP JUMPDEST SWAP1 POP PUSH2 0x1593 DUP3 DUP3 PUSH2 0x154C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x15B3 JUMPI PUSH2 0x15B2 PUSH2 0x151D JUMP JUMPDEST JUMPDEST PUSH2 0x15BC DUP3 PUSH2 0x134F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15EB PUSH2 0x15E6 DUP5 PUSH2 0x1598 JUMP JUMPDEST PUSH2 0x157D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1607 JUMPI PUSH2 0x1606 PUSH2 0x1518 JUMP JUMPDEST JUMPDEST PUSH2 0x1612 DUP5 DUP3 DUP6 PUSH2 0x15C9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x162F JUMPI PUSH2 0x162E PUSH2 0x1513 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x163F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x15D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1661 JUMPI PUSH2 0x1660 PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166F DUP7 DUP3 DUP8 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1680 DUP7 DUP3 DUP8 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16A1 JUMPI PUSH2 0x16A0 PUSH2 0x11A5 JUMP JUMPDEST JUMPDEST PUSH2 0x16AD DUP7 DUP3 DUP8 ADD PUSH2 0x161A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6E6F74206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16FE PUSH1 0x9 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1709 DUP3 PUSH2 0x16C8 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x172D DUP2 PUSH2 0x16F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x747820646F6573206E6F74206578697374000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x176A PUSH1 0x11 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1775 DUP3 PUSH2 0x1734 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1799 DUP2 PUSH2 0x175D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x747820616C726561647920636F6E6669726D6564000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1805 PUSH1 0x14 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1810 DUP3 PUSH2 0x17CF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1834 DUP2 PUSH2 0x17F8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7478206E6F7420636F6E6669726D656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1871 PUSH1 0x10 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x187C DUP3 PUSH2 0x183B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x18A0 DUP2 PUSH2 0x1864 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18E1 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP2 POP PUSH2 0x18EC DUP4 PUSH2 0x1154 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1904 JUMPI PUSH2 0x1903 PUSH2 0x18A7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1951 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1964 JUMPI PUSH2 0x1963 PUSH2 0x190A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1975 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP2 POP PUSH2 0x1980 DUP4 PUSH2 0x1154 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1998 JUMPI PUSH2 0x1997 PUSH2 0x18A7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x1A00 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x19C3 JUMP JUMPDEST PUSH2 0x1A0A DUP7 DUP4 PUSH2 0x19C3 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A47 PUSH2 0x1A42 PUSH2 0x1A3D DUP5 PUSH2 0x1154 JUMP JUMPDEST PUSH2 0x1A22 JUMP JUMPDEST PUSH2 0x1154 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A61 DUP4 PUSH2 0x1A2C JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A6D DUP3 PUSH2 0x1A4E JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x19D0 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x1A8A PUSH2 0x1A7D JUMP JUMPDEST PUSH2 0x1A95 DUP2 DUP5 DUP5 PUSH2 0x1A58 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1AB9 JUMPI PUSH2 0x1AAE PUSH1 0x0 DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1A9B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1AFE JUMPI PUSH2 0x1ACF DUP2 PUSH2 0x199E JUMP JUMPDEST PUSH2 0x1AD8 DUP5 PUSH2 0x19B3 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1AE7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1AFB PUSH2 0x1AF3 DUP6 PUSH2 0x19B3 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1A9A JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B21 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1B03 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B3A DUP4 DUP4 PUSH2 0x1B10 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B53 DUP3 PUSH2 0x1309 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6C JUMPI PUSH2 0x1B6B PUSH2 0x151D JUMP JUMPDEST JUMPDEST PUSH2 0x1B76 DUP3 SLOAD PUSH2 0x1939 JUMP JUMPDEST PUSH2 0x1B81 DUP3 DUP3 DUP6 PUSH2 0x1ABD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1BA2 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1BAC DUP6 DUP3 PUSH2 0x1B2E JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1C14 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1BC2 DUP7 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BEA JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BC5 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1C07 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1C03 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1B10 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C31 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x115E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1C43 DUP2 DUP5 PUSH2 0x1360 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x63616E6E6F742065786563757465207478000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C82 PUSH1 0x11 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C8D DUP3 PUSH2 0x1C4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1CB1 DUP2 PUSH2 0x1C75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x1CD0 DUP2 PUSH2 0x1939 JUMP JUMPDEST PUSH2 0x1CDA DUP2 DUP7 PUSH2 0x1CB8 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x1CF5 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x1D0A JUMPI PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x1D3D JUMP JUMPDEST PUSH2 0x1D13 DUP6 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D35 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1D16 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D52 DUP3 DUP5 PUSH2 0x1CC3 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x7478206661696C65640000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D93 PUSH1 0x9 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D9E DUP3 PUSH2 0x1D5D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1DC2 DUP2 PUSH2 0x1D86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0xA8 SLOAD 0xF MSIZE SWAP1 CODESIZE 0xE4 PUSH21 0x56A3383A941318CFDEBBDCE2F2C455DC79E7B7EC9A 0xE6 0xF8 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "235:4744:0:-:0;;;1595:670;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1700:1;1683:7;:14;:18;1675:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1780:1;1752:25;:29;:92;;;;;1830:7;:14;1801:25;:43;;1752:92;1731:179;;;;;;;;;;;;:::i;:::-;;;;;;;;;1925:6;1920:277;1941:7;:14;1937:1;:18;1920:277;;;1976:13;1992:7;2000:1;1992:10;;;;;;;;:::i;:::-;;;;;;;;1976:26;;2041:1;2024:19;;:5;:19;;;2016:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;2084:7;:14;2092:5;2084:14;;;;;;;;;;;;;;;;;;;;;;;;;2083:15;2075:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2150:4;2133:7;:14;2141:5;2133:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;2168:6;2180:5;2168:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:235;1957:3;;;;;;;1920:277;;;;2233:25;2206:24;:52;;;;1595:670;;235:4744;;7:75:1;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:143::-;2032:5;2063:6;2057:13;2048:22;;2079:33;2106:5;2079:33;:::i;:::-;1975:143;;;;:::o;2141:732::-;2248:5;2273:81;2289:64;2346:6;2289:64;:::i;:::-;2273:81;:::i;:::-;2264:90;;2374:5;2403:6;2396:5;2389:21;2437:4;2430:5;2426:16;2419:23;;2490:4;2482:6;2478:17;2470:6;2466:30;2519:3;2511:6;2508:15;2505:122;;;2538:79;;:::i;:::-;2505:122;2653:6;2636:231;2670:6;2665:3;2662:15;2636:231;;;2745:3;2774:48;2818:3;2806:10;2774:48;:::i;:::-;2769:3;2762:61;2852:4;2847:3;2843:14;2836:21;;2712:155;2696:4;2691:3;2687:14;2680:21;;2636:231;;;2640:21;2254:619;;2141:732;;;;;:::o;2896:385::-;2978:5;3027:3;3020:4;3012:6;3008:17;3004:27;2994:122;;3035:79;;:::i;:::-;2994:122;3145:6;3139:13;3170:105;3271:3;3263:6;3256:4;3248:6;3244:17;3170:105;:::i;:::-;3161:114;;2984:297;2896:385;;;;:::o;3287:77::-;3324:7;3353:5;3342:16;;3287:77;;;:::o;3370:122::-;3443:24;3461:5;3443:24;:::i;:::-;3436:5;3433:35;3423:63;;3482:1;3479;3472:12;3423:63;3370:122;:::o;3498:143::-;3555:5;3586:6;3580:13;3571:22;;3602:33;3629:5;3602:33;:::i;:::-;3498:143;;;;:::o;3647:710::-;3751:6;3759;3808:2;3796:9;3787:7;3783:23;3779:32;3776:119;;;3814:79;;:::i;:::-;3776:119;3955:1;3944:9;3940:17;3934:24;3985:18;3977:6;3974:30;3971:117;;;4007:79;;:::i;:::-;3971:117;4112:89;4193:7;4184:6;4173:9;4169:22;4112:89;:::i;:::-;4102:99;;3905:306;4250:2;4276:64;4332:7;4323:6;4312:9;4308:22;4276:64;:::i;:::-;4266:74;;4221:129;3647:710;;;;;:::o;4363:169::-;4447:11;4481:6;4476:3;4469:19;4521:4;4516:3;4512:14;4497:29;;4363:169;;;;:::o;4538:165::-;4678:17;4674:1;4666:6;4662:14;4655:41;4538:165;:::o;4709:366::-;4851:3;4872:67;4936:2;4931:3;4872:67;:::i;:::-;4865:74;;4948:93;5037:3;4948:93;:::i;:::-;5066:2;5061:3;5057:12;5050:19;;4709:366;;;:::o;5081:419::-;5247:4;5285:2;5274:9;5270:18;5262:26;;5334:9;5328:4;5324:20;5320:1;5309:9;5305:17;5298:47;5362:131;5488:4;5362:131;:::i;:::-;5354:139;;5081:419;;;:::o;5506:227::-;5646:34;5642:1;5634:6;5630:14;5623:58;5715:10;5710:2;5702:6;5698:15;5691:35;5506:227;:::o;5739:366::-;5881:3;5902:67;5966:2;5961:3;5902:67;:::i;:::-;5895:74;;5978:93;6067:3;5978:93;:::i;:::-;6096:2;6091:3;6087:12;6080:19;;5739:366;;;:::o;6111:419::-;6277:4;6315:2;6304:9;6300:18;6292:26;;6364:9;6358:4;6354:20;6350:1;6339:9;6335:17;6328:47;6392:131;6518:4;6392:131;:::i;:::-;6384:139;;6111:419;;;:::o;6536:180::-;6584:77;6581:1;6574:88;6681:4;6678:1;6671:15;6705:4;6702:1;6695:15;6722:163;6862:15;6858:1;6850:6;6846:14;6839:39;6722:163;:::o;6891:366::-;7033:3;7054:67;7118:2;7113:3;7054:67;:::i;:::-;7047:74;;7130:93;7219:3;7130:93;:::i;:::-;7248:2;7243:3;7239:12;7232:19;;6891:366;;;:::o;7263:419::-;7429:4;7467:2;7456:9;7452:18;7444:26;;7516:9;7510:4;7506:20;7502:1;7491:9;7487:17;7480:47;7544:131;7670:4;7544:131;:::i;:::-;7536:139;;7263:419;;;:::o;7688:166::-;7828:18;7824:1;7816:6;7812:14;7805:42;7688:166;:::o;7860:366::-;8002:3;8023:67;8087:2;8082:3;8023:67;:::i;:::-;8016:74;;8099:93;8188:3;8099:93;:::i;:::-;8217:2;8212:3;8208:12;8201:19;;7860:366;;;:::o;8232:419::-;8398:4;8436:2;8425:9;8421:18;8413:26;;8485:9;8479:4;8475:20;8471:1;8460:9;8456:17;8449:47;8513:131;8639:4;8513:131;:::i;:::-;8505:139;;8232:419;;;:::o;235:4744:0:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_225": { - "entryPoint": null, - "id": 225, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@confirmTransaction_308": { - "entryPoint": 2422, - "id": 308, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@executeTransaction_366": { - "entryPoint": 3676, - "id": 366, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@getOwners_427": { - "entryPoint": 2280, - "id": 427, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@getTransactionCount_436": { - "entryPoint": 1662, - "id": 436, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@getTransaction_471": { - "entryPoint": 1707, - "id": 471, - "parameterSlots": 1, - "returnSlots": 5 - }, - "@isConfirmed_65": { - "entryPoint": 1982, - "id": 65, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@isOwner_46": { - "entryPoint": 1675, - "id": 46, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@numConfirmationsRequired_48": { - "entryPoint": 3670, - "id": 48, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@owners_42": { - "entryPoint": 869, - "id": 42, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@revokeConfirmation_418": { - "entryPoint": 932, - "id": 418, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@submitTransaction_263": { - "entryPoint": 3155, - "id": 263, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@transactions_69": { - "entryPoint": 2029, - "id": 69, - "parameterSlots": 0, - "returnSlots": 0 - }, - "abi_decode_available_length_t_bytes_memory_ptr": { - "entryPoint": 5592, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_t_address": { - "entryPoint": 4753, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes_memory_ptr": { - "entryPoint": 5658, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint256": { - "entryPoint": 4545, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 4774, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr": { - "entryPoint": 5704, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 4566, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256t_address": { - "entryPoint": 5107, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_encodeUpdatedPos_t_address_to_t_address": { - "entryPoint": 5230, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_address_to_t_address": { - "entryPoint": 5215, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 4661, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack": { - "entryPoint": 5267, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_bool_to_t_bool_fromStack": { - "entryPoint": 4831, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { - "entryPoint": 4960, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 7363, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack": { - "entryPoint": 7558, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack": { - "entryPoint": 5981, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack": { - "entryPoint": 6136, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack": { - "entryPoint": 6244, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack": { - "entryPoint": 7285, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack": { - "entryPoint": 5873, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 4446, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 7494, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": 4676, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__fromStack_reversed": { - "entryPoint": 5017, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 5361, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": 4846, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 7593, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 6016, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 6171, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 6279, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 7320, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 5908, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": 4703, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 7196, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 4461, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "allocate_memory": { - "entryPoint": 5501, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": 4502, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_allocation_size_t_bytes_memory_ptr": { - "entryPoint": 5528, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 5199, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_t_bytes_storage": { - "entryPoint": 6558, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 5171, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_bytes_memory_ptr": { - "entryPoint": 4873, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_nextElement_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 5254, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack": { - "entryPoint": 5182, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { - "entryPoint": 4884, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 7352, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 5815, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_add_t_uint256": { - "entryPoint": 6506, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_sub_t_uint256": { - "entryPoint": 6358, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_t_bytes_storage": { - "entryPoint": 6845, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "cleanup_t_address": { - "entryPoint": 4643, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bool": { - "entryPoint": 4819, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 4611, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 4436, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clear_storage_range_t_bytes1": { - "entryPoint": 6810, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "convert_t_uint256_to_t_uint256": { - "entryPoint": 6700, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage": { - "entryPoint": 6986, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "copy_calldata_to_memory_with_cleanup": { - "entryPoint": 5577, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_memory_to_memory_with_cleanup": { - "entryPoint": 4901, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "divide_by_32_ceil": { - "entryPoint": 6579, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_byte_array_length": { - "entryPoint": 6457, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": 6958, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "finalize_allocation": { - "entryPoint": 5452, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "identity": { - "entryPoint": 6690, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "mask_bytes_dynamic": { - "entryPoint": 6928, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 6311, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x22": { - "entryPoint": 6410, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x32": { - "entryPoint": 6048, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 5405, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "prepare_store_t_uint256": { - "entryPoint": 6734, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { - "entryPoint": 5395, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { - "entryPoint": 5400, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": 4517, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 4512, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "round_up_to_mul_of_32": { - "entryPoint": 4943, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "shift_left_dynamic": { - "entryPoint": 6595, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "shift_right_unsigned_dynamic": { - "entryPoint": 6915, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "storage_set_to_zero_t_uint256": { - "entryPoint": 6786, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2": { - "entryPoint": 7517, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251": { - "entryPoint": 5940, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626": { - "entryPoint": 6095, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae": { - "entryPoint": 6203, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513": { - "entryPoint": 7244, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e": { - "entryPoint": 5832, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "update_byte_slice_dynamic32": { - "entryPoint": 6608, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "update_storage_value_t_uint256_to_t_uint256": { - "entryPoint": 6744, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "validator_revert_t_address": { - "entryPoint": 4730, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint256": { - "entryPoint": 4522, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "zero_value_for_split_t_uint256": { - "entryPoint": 6781, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:23836:1", - "nodeType": "YulBlock", - "src": "0:23836:1", - "statements": [ - { - "body": { - "nativeSrc": "52:32:1", - "nodeType": "YulBlock", - "src": "52:32:1", - "statements": [ - { - "nativeSrc": "62:16:1", - "nodeType": "YulAssignment", - "src": "62:16:1", - "value": { - "name": "value", - "nativeSrc": "73:5:1", - "nodeType": "YulIdentifier", - "src": "73:5:1" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "62:7:1", - "nodeType": "YulIdentifier", - "src": "62:7:1" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "7:77:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "34:5:1", - "nodeType": "YulTypedName", - "src": "34:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "44:7:1", - "nodeType": "YulTypedName", - "src": "44:7:1", - "type": "" - } - ], - "src": "7:77:1" - }, - { - "body": { - "nativeSrc": "155:53:1", - "nodeType": "YulBlock", - "src": "155:53:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "172:3:1", - "nodeType": "YulIdentifier", - "src": "172:3:1" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "195:5:1", - "nodeType": "YulIdentifier", - "src": "195:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "177:17:1", - "nodeType": "YulIdentifier", - "src": "177:17:1" - }, - "nativeSrc": "177:24:1", - "nodeType": "YulFunctionCall", - "src": "177:24:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "165:6:1", - "nodeType": "YulIdentifier", - "src": "165:6:1" - }, - "nativeSrc": "165:37:1", - "nodeType": "YulFunctionCall", - "src": "165:37:1" - }, - "nativeSrc": "165:37:1", - "nodeType": "YulExpressionStatement", - "src": "165:37:1" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "90:118:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "143:5:1", - "nodeType": "YulTypedName", - "src": "143:5:1", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "150:3:1", - "nodeType": "YulTypedName", - "src": "150:3:1", - "type": "" - } - ], - "src": "90:118:1" - }, - { - "body": { - "nativeSrc": "340:206:1", - "nodeType": "YulBlock", - "src": "340:206:1", - "statements": [ - { - "nativeSrc": "350:26:1", - "nodeType": "YulAssignment", - "src": "350:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "362:9:1", - "nodeType": "YulIdentifier", - "src": "362:9:1" - }, - { - "kind": "number", - "nativeSrc": "373:2:1", - "nodeType": "YulLiteral", - "src": "373:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "358:3:1", - "nodeType": "YulIdentifier", - "src": "358:3:1" - }, - "nativeSrc": "358:18:1", - "nodeType": "YulFunctionCall", - "src": "358:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "350:4:1", - "nodeType": "YulIdentifier", - "src": "350:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "430:6:1", - "nodeType": "YulIdentifier", - "src": "430:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "443:9:1", - "nodeType": "YulIdentifier", - "src": "443:9:1" - }, - { - "kind": "number", - "nativeSrc": "454:1:1", - "nodeType": "YulLiteral", - "src": "454:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "439:3:1", - "nodeType": "YulIdentifier", - "src": "439:3:1" - }, - "nativeSrc": "439:17:1", - "nodeType": "YulFunctionCall", - "src": "439:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "386:43:1", - "nodeType": "YulIdentifier", - "src": "386:43:1" - }, - "nativeSrc": "386:71:1", - "nodeType": "YulFunctionCall", - "src": "386:71:1" - }, - "nativeSrc": "386:71:1", - "nodeType": "YulExpressionStatement", - "src": "386:71:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "511:6:1", - "nodeType": "YulIdentifier", - "src": "511:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "524:9:1", - "nodeType": "YulIdentifier", - "src": "524:9:1" - }, - { - "kind": "number", - "nativeSrc": "535:2:1", - "nodeType": "YulLiteral", - "src": "535:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "520:3:1", - "nodeType": "YulIdentifier", - "src": "520:3:1" - }, - "nativeSrc": "520:18:1", - "nodeType": "YulFunctionCall", - "src": "520:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "467:43:1", - "nodeType": "YulIdentifier", - "src": "467:43:1" - }, - "nativeSrc": "467:72:1", - "nodeType": "YulFunctionCall", - "src": "467:72:1" - }, - "nativeSrc": "467:72:1", - "nodeType": "YulExpressionStatement", - "src": "467:72:1" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "214:332:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "304:9:1", - "nodeType": "YulTypedName", - "src": "304:9:1", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "316:6:1", - "nodeType": "YulTypedName", - "src": "316:6:1", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "324:6:1", - "nodeType": "YulTypedName", - "src": "324:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "335:4:1", - "nodeType": "YulTypedName", - "src": "335:4:1", - "type": "" - } - ], - "src": "214:332:1" - }, - { - "body": { - "nativeSrc": "592:35:1", - "nodeType": "YulBlock", - "src": "592:35:1", - "statements": [ - { - "nativeSrc": "602:19:1", - "nodeType": "YulAssignment", - "src": "602:19:1", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "618:2:1", - "nodeType": "YulLiteral", - "src": "618:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "612:5:1", - "nodeType": "YulIdentifier", - "src": "612:5:1" - }, - "nativeSrc": "612:9:1", - "nodeType": "YulFunctionCall", - "src": "612:9:1" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "602:6:1", - "nodeType": "YulIdentifier", - "src": "602:6:1" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "552:75:1", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "585:6:1", - "nodeType": "YulTypedName", - "src": "585:6:1", - "type": "" - } - ], - "src": "552:75:1" - }, - { - "body": { - "nativeSrc": "722:28:1", - "nodeType": "YulBlock", - "src": "722:28:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "739:1:1", - "nodeType": "YulLiteral", - "src": "739:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "742:1:1", - "nodeType": "YulLiteral", - "src": "742:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "732:6:1", - "nodeType": "YulIdentifier", - "src": "732:6:1" - }, - "nativeSrc": "732:12:1", - "nodeType": "YulFunctionCall", - "src": "732:12:1" - }, - "nativeSrc": "732:12:1", - "nodeType": "YulExpressionStatement", - "src": "732:12:1" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "633:117:1", - "nodeType": "YulFunctionDefinition", - "src": "633:117:1" - }, - { - "body": { - "nativeSrc": "845:28:1", - "nodeType": "YulBlock", - "src": "845:28:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "862:1:1", - "nodeType": "YulLiteral", - "src": "862:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "865:1:1", - "nodeType": "YulLiteral", - "src": "865:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "855:6:1", - "nodeType": "YulIdentifier", - "src": "855:6:1" - }, - "nativeSrc": "855:12:1", - "nodeType": "YulFunctionCall", - "src": "855:12:1" - }, - "nativeSrc": "855:12:1", - "nodeType": "YulExpressionStatement", - "src": "855:12:1" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "756:117:1", - "nodeType": "YulFunctionDefinition", - "src": "756:117:1" - }, - { - "body": { - "nativeSrc": "922:79:1", - "nodeType": "YulBlock", - "src": "922:79:1", - "statements": [ - { - "body": { - "nativeSrc": "979:16:1", - "nodeType": "YulBlock", - "src": "979:16:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "988:1:1", - "nodeType": "YulLiteral", - "src": "988:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "991:1:1", - "nodeType": "YulLiteral", - "src": "991:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "981:6:1", - "nodeType": "YulIdentifier", - "src": "981:6:1" - }, - "nativeSrc": "981:12:1", - "nodeType": "YulFunctionCall", - "src": "981:12:1" - }, - "nativeSrc": "981:12:1", - "nodeType": "YulExpressionStatement", - "src": "981:12:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "945:5:1", - "nodeType": "YulIdentifier", - "src": "945:5:1" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "970:5:1", - "nodeType": "YulIdentifier", - "src": "970:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "952:17:1", - "nodeType": "YulIdentifier", - "src": "952:17:1" - }, - "nativeSrc": "952:24:1", - "nodeType": "YulFunctionCall", - "src": "952:24:1" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "942:2:1", - "nodeType": "YulIdentifier", - "src": "942:2:1" - }, - "nativeSrc": "942:35:1", - "nodeType": "YulFunctionCall", - "src": "942:35:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "935:6:1", - "nodeType": "YulIdentifier", - "src": "935:6:1" - }, - "nativeSrc": "935:43:1", - "nodeType": "YulFunctionCall", - "src": "935:43:1" - }, - "nativeSrc": "932:63:1", - "nodeType": "YulIf", - "src": "932:63:1" - } - ] - }, - "name": "validator_revert_t_uint256", - "nativeSrc": "879:122:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "915:5:1", - "nodeType": "YulTypedName", - "src": "915:5:1", - "type": "" - } - ], - "src": "879:122:1" - }, - { - "body": { - "nativeSrc": "1059:87:1", - "nodeType": "YulBlock", - "src": "1059:87:1", - "statements": [ - { - "nativeSrc": "1069:29:1", - "nodeType": "YulAssignment", - "src": "1069:29:1", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1091:6:1", - "nodeType": "YulIdentifier", - "src": "1091:6:1" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1078:12:1", - "nodeType": "YulIdentifier", - "src": "1078:12:1" - }, - "nativeSrc": "1078:20:1", - "nodeType": "YulFunctionCall", - "src": "1078:20:1" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1069:5:1", - "nodeType": "YulIdentifier", - "src": "1069:5:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1134:5:1", - "nodeType": "YulIdentifier", - "src": "1134:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "1107:26:1", - "nodeType": "YulIdentifier", - "src": "1107:26:1" - }, - "nativeSrc": "1107:33:1", - "nodeType": "YulFunctionCall", - "src": "1107:33:1" - }, - "nativeSrc": "1107:33:1", - "nodeType": "YulExpressionStatement", - "src": "1107:33:1" - } - ] - }, - "name": "abi_decode_t_uint256", - "nativeSrc": "1007:139:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "1037:6:1", - "nodeType": "YulTypedName", - "src": "1037:6:1", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1045:3:1", - "nodeType": "YulTypedName", - "src": "1045:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "1053:5:1", - "nodeType": "YulTypedName", - "src": "1053:5:1", - "type": "" - } - ], - "src": "1007:139:1" - }, - { - "body": { - "nativeSrc": "1218:263:1", - "nodeType": "YulBlock", - "src": "1218:263:1", - "statements": [ - { - "body": { - "nativeSrc": "1264:83:1", - "nodeType": "YulBlock", - "src": "1264:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1266:77:1", - "nodeType": "YulIdentifier", - "src": "1266:77:1" - }, - "nativeSrc": "1266:79:1", - "nodeType": "YulFunctionCall", - "src": "1266:79:1" - }, - "nativeSrc": "1266:79:1", - "nodeType": "YulExpressionStatement", - "src": "1266:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1239:7:1", - "nodeType": "YulIdentifier", - "src": "1239:7:1" - }, - { - "name": "headStart", - "nativeSrc": "1248:9:1", - "nodeType": "YulIdentifier", - "src": "1248:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1235:3:1", - "nodeType": "YulIdentifier", - "src": "1235:3:1" - }, - "nativeSrc": "1235:23:1", - "nodeType": "YulFunctionCall", - "src": "1235:23:1" - }, - { - "kind": "number", - "nativeSrc": "1260:2:1", - "nodeType": "YulLiteral", - "src": "1260:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1231:3:1", - "nodeType": "YulIdentifier", - "src": "1231:3:1" - }, - "nativeSrc": "1231:32:1", - "nodeType": "YulFunctionCall", - "src": "1231:32:1" - }, - "nativeSrc": "1228:119:1", - "nodeType": "YulIf", - "src": "1228:119:1" - }, - { - "nativeSrc": "1357:117:1", - "nodeType": "YulBlock", - "src": "1357:117:1", - "statements": [ - { - "nativeSrc": "1372:15:1", - "nodeType": "YulVariableDeclaration", - "src": "1372:15:1", - "value": { - "kind": "number", - "nativeSrc": "1386:1:1", - "nodeType": "YulLiteral", - "src": "1386:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1376:6:1", - "nodeType": "YulTypedName", - "src": "1376:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "1401:63:1", - "nodeType": "YulAssignment", - "src": "1401:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1436:9:1", - "nodeType": "YulIdentifier", - "src": "1436:9:1" - }, - { - "name": "offset", - "nativeSrc": "1447:6:1", - "nodeType": "YulIdentifier", - "src": "1447:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1432:3:1", - "nodeType": "YulIdentifier", - "src": "1432:3:1" - }, - "nativeSrc": "1432:22:1", - "nodeType": "YulFunctionCall", - "src": "1432:22:1" - }, - { - "name": "dataEnd", - "nativeSrc": "1456:7:1", - "nodeType": "YulIdentifier", - "src": "1456:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "1411:20:1", - "nodeType": "YulIdentifier", - "src": "1411:20:1" - }, - "nativeSrc": "1411:53:1", - "nodeType": "YulFunctionCall", - "src": "1411:53:1" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1401:6:1", - "nodeType": "YulIdentifier", - "src": "1401:6:1" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nativeSrc": "1152:329:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1188:9:1", - "nodeType": "YulTypedName", - "src": "1188:9:1", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1199:7:1", - "nodeType": "YulTypedName", - "src": "1199:7:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1211:6:1", - "nodeType": "YulTypedName", - "src": "1211:6:1", - "type": "" - } - ], - "src": "1152:329:1" - }, - { - "body": { - "nativeSrc": "1532:81:1", - "nodeType": "YulBlock", - "src": "1532:81:1", - "statements": [ - { - "nativeSrc": "1542:65:1", - "nodeType": "YulAssignment", - "src": "1542:65:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1557:5:1", - "nodeType": "YulIdentifier", - "src": "1557:5:1" - }, - { - "kind": "number", - "nativeSrc": "1564:42:1", - "nodeType": "YulLiteral", - "src": "1564:42:1", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1553:3:1", - "nodeType": "YulIdentifier", - "src": "1553:3:1" - }, - "nativeSrc": "1553:54:1", - "nodeType": "YulFunctionCall", - "src": "1553:54:1" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1542:7:1", - "nodeType": "YulIdentifier", - "src": "1542:7:1" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "1487:126:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1514:5:1", - "nodeType": "YulTypedName", - "src": "1514:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1524:7:1", - "nodeType": "YulTypedName", - "src": "1524:7:1", - "type": "" - } - ], - "src": "1487:126:1" - }, - { - "body": { - "nativeSrc": "1664:51:1", - "nodeType": "YulBlock", - "src": "1664:51:1", - "statements": [ - { - "nativeSrc": "1674:35:1", - "nodeType": "YulAssignment", - "src": "1674:35:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1703:5:1", - "nodeType": "YulIdentifier", - "src": "1703:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "1685:17:1", - "nodeType": "YulIdentifier", - "src": "1685:17:1" - }, - "nativeSrc": "1685:24:1", - "nodeType": "YulFunctionCall", - "src": "1685:24:1" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1674:7:1", - "nodeType": "YulIdentifier", - "src": "1674:7:1" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "1619:96:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1646:5:1", - "nodeType": "YulTypedName", - "src": "1646:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1656:7:1", - "nodeType": "YulTypedName", - "src": "1656:7:1", - "type": "" - } - ], - "src": "1619:96:1" - }, - { - "body": { - "nativeSrc": "1786:53:1", - "nodeType": "YulBlock", - "src": "1786:53:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1803:3:1", - "nodeType": "YulIdentifier", - "src": "1803:3:1" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1826:5:1", - "nodeType": "YulIdentifier", - "src": "1826:5:1" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "1808:17:1", - "nodeType": "YulIdentifier", - "src": "1808:17:1" - }, - "nativeSrc": "1808:24:1", - "nodeType": "YulFunctionCall", - "src": "1808:24:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1796:6:1", - "nodeType": "YulIdentifier", - "src": "1796:6:1" - }, - "nativeSrc": "1796:37:1", - "nodeType": "YulFunctionCall", - "src": "1796:37:1" - }, - "nativeSrc": "1796:37:1", - "nodeType": "YulExpressionStatement", - "src": "1796:37:1" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1721:118:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1774:5:1", - "nodeType": "YulTypedName", - "src": "1774:5:1", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "1781:3:1", - "nodeType": "YulTypedName", - "src": "1781:3:1", - "type": "" - } - ], - "src": "1721:118:1" - }, - { - "body": { - "nativeSrc": "1943:124:1", - "nodeType": "YulBlock", - "src": "1943:124:1", - "statements": [ - { - "nativeSrc": "1953:26:1", - "nodeType": "YulAssignment", - "src": "1953:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1965:9:1", - "nodeType": "YulIdentifier", - "src": "1965:9:1" - }, - { - "kind": "number", - "nativeSrc": "1976:2:1", - "nodeType": "YulLiteral", - "src": "1976:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1961:3:1", - "nodeType": "YulIdentifier", - "src": "1961:3:1" - }, - "nativeSrc": "1961:18:1", - "nodeType": "YulFunctionCall", - "src": "1961:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1953:4:1", - "nodeType": "YulIdentifier", - "src": "1953:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2033:6:1", - "nodeType": "YulIdentifier", - "src": "2033:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2046:9:1", - "nodeType": "YulIdentifier", - "src": "2046:9:1" - }, - { - "kind": "number", - "nativeSrc": "2057:1:1", - "nodeType": "YulLiteral", - "src": "2057:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2042:3:1", - "nodeType": "YulIdentifier", - "src": "2042:3:1" - }, - "nativeSrc": "2042:17:1", - "nodeType": "YulFunctionCall", - "src": "2042:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "1989:43:1", - "nodeType": "YulIdentifier", - "src": "1989:43:1" - }, - "nativeSrc": "1989:71:1", - "nodeType": "YulFunctionCall", - "src": "1989:71:1" - }, - "nativeSrc": "1989:71:1", - "nodeType": "YulExpressionStatement", - "src": "1989:71:1" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "1845:222:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1915:9:1", - "nodeType": "YulTypedName", - "src": "1915:9:1", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1927:6:1", - "nodeType": "YulTypedName", - "src": "1927:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1938:4:1", - "nodeType": "YulTypedName", - "src": "1938:4:1", - "type": "" - } - ], - "src": "1845:222:1" - }, - { - "body": { - "nativeSrc": "2171:124:1", - "nodeType": "YulBlock", - "src": "2171:124:1", - "statements": [ - { - "nativeSrc": "2181:26:1", - "nodeType": "YulAssignment", - "src": "2181:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2193:9:1", - "nodeType": "YulIdentifier", - "src": "2193:9:1" - }, - { - "kind": "number", - "nativeSrc": "2204:2:1", - "nodeType": "YulLiteral", - "src": "2204:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2189:3:1", - "nodeType": "YulIdentifier", - "src": "2189:3:1" - }, - "nativeSrc": "2189:18:1", - "nodeType": "YulFunctionCall", - "src": "2189:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2181:4:1", - "nodeType": "YulIdentifier", - "src": "2181:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2261:6:1", - "nodeType": "YulIdentifier", - "src": "2261:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2274:9:1", - "nodeType": "YulIdentifier", - "src": "2274:9:1" - }, - { - "kind": "number", - "nativeSrc": "2285:1:1", - "nodeType": "YulLiteral", - "src": "2285:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2270:3:1", - "nodeType": "YulIdentifier", - "src": "2270:3:1" - }, - "nativeSrc": "2270:17:1", - "nodeType": "YulFunctionCall", - "src": "2270:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "2217:43:1", - "nodeType": "YulIdentifier", - "src": "2217:43:1" - }, - "nativeSrc": "2217:71:1", - "nodeType": "YulFunctionCall", - "src": "2217:71:1" - }, - "nativeSrc": "2217:71:1", - "nodeType": "YulExpressionStatement", - "src": "2217:71:1" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "2073:222:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2143:9:1", - "nodeType": "YulTypedName", - "src": "2143:9:1", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2155:6:1", - "nodeType": "YulTypedName", - "src": "2155:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2166:4:1", - "nodeType": "YulTypedName", - "src": "2166:4:1", - "type": "" - } - ], - "src": "2073:222:1" - }, - { - "body": { - "nativeSrc": "2344:79:1", - "nodeType": "YulBlock", - "src": "2344:79:1", - "statements": [ - { - "body": { - "nativeSrc": "2401:16:1", - "nodeType": "YulBlock", - "src": "2401:16:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2410:1:1", - "nodeType": "YulLiteral", - "src": "2410:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2413:1:1", - "nodeType": "YulLiteral", - "src": "2413:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2403:6:1", - "nodeType": "YulIdentifier", - "src": "2403:6:1" - }, - "nativeSrc": "2403:12:1", - "nodeType": "YulFunctionCall", - "src": "2403:12:1" - }, - "nativeSrc": "2403:12:1", - "nodeType": "YulExpressionStatement", - "src": "2403:12:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2367:5:1", - "nodeType": "YulIdentifier", - "src": "2367:5:1" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2392:5:1", - "nodeType": "YulIdentifier", - "src": "2392:5:1" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "2374:17:1", - "nodeType": "YulIdentifier", - "src": "2374:17:1" - }, - "nativeSrc": "2374:24:1", - "nodeType": "YulFunctionCall", - "src": "2374:24:1" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "2364:2:1", - "nodeType": "YulIdentifier", - "src": "2364:2:1" - }, - "nativeSrc": "2364:35:1", - "nodeType": "YulFunctionCall", - "src": "2364:35:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2357:6:1", - "nodeType": "YulIdentifier", - "src": "2357:6:1" - }, - "nativeSrc": "2357:43:1", - "nodeType": "YulFunctionCall", - "src": "2357:43:1" - }, - "nativeSrc": "2354:63:1", - "nodeType": "YulIf", - "src": "2354:63:1" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "2301:122:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2337:5:1", - "nodeType": "YulTypedName", - "src": "2337:5:1", - "type": "" - } - ], - "src": "2301:122:1" - }, - { - "body": { - "nativeSrc": "2481:87:1", - "nodeType": "YulBlock", - "src": "2481:87:1", - "statements": [ - { - "nativeSrc": "2491:29:1", - "nodeType": "YulAssignment", - "src": "2491:29:1", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2513:6:1", - "nodeType": "YulIdentifier", - "src": "2513:6:1" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2500:12:1", - "nodeType": "YulIdentifier", - "src": "2500:12:1" - }, - "nativeSrc": "2500:20:1", - "nodeType": "YulFunctionCall", - "src": "2500:20:1" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2491:5:1", - "nodeType": "YulIdentifier", - "src": "2491:5:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2556:5:1", - "nodeType": "YulIdentifier", - "src": "2556:5:1" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "2529:26:1", - "nodeType": "YulIdentifier", - "src": "2529:26:1" - }, - "nativeSrc": "2529:33:1", - "nodeType": "YulFunctionCall", - "src": "2529:33:1" - }, - "nativeSrc": "2529:33:1", - "nodeType": "YulExpressionStatement", - "src": "2529:33:1" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "2429:139:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2459:6:1", - "nodeType": "YulTypedName", - "src": "2459:6:1", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2467:3:1", - "nodeType": "YulTypedName", - "src": "2467:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "2475:5:1", - "nodeType": "YulTypedName", - "src": "2475:5:1", - "type": "" - } - ], - "src": "2429:139:1" - }, - { - "body": { - "nativeSrc": "2640:263:1", - "nodeType": "YulBlock", - "src": "2640:263:1", - "statements": [ - { - "body": { - "nativeSrc": "2686:83:1", - "nodeType": "YulBlock", - "src": "2686:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2688:77:1", - "nodeType": "YulIdentifier", - "src": "2688:77:1" - }, - "nativeSrc": "2688:79:1", - "nodeType": "YulFunctionCall", - "src": "2688:79:1" - }, - "nativeSrc": "2688:79:1", - "nodeType": "YulExpressionStatement", - "src": "2688:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2661:7:1", - "nodeType": "YulIdentifier", - "src": "2661:7:1" - }, - { - "name": "headStart", - "nativeSrc": "2670:9:1", - "nodeType": "YulIdentifier", - "src": "2670:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2657:3:1", - "nodeType": "YulIdentifier", - "src": "2657:3:1" - }, - "nativeSrc": "2657:23:1", - "nodeType": "YulFunctionCall", - "src": "2657:23:1" - }, - { - "kind": "number", - "nativeSrc": "2682:2:1", - "nodeType": "YulLiteral", - "src": "2682:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2653:3:1", - "nodeType": "YulIdentifier", - "src": "2653:3:1" - }, - "nativeSrc": "2653:32:1", - "nodeType": "YulFunctionCall", - "src": "2653:32:1" - }, - "nativeSrc": "2650:119:1", - "nodeType": "YulIf", - "src": "2650:119:1" - }, - { - "nativeSrc": "2779:117:1", - "nodeType": "YulBlock", - "src": "2779:117:1", - "statements": [ - { - "nativeSrc": "2794:15:1", - "nodeType": "YulVariableDeclaration", - "src": "2794:15:1", - "value": { - "kind": "number", - "nativeSrc": "2808:1:1", - "nodeType": "YulLiteral", - "src": "2808:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2798:6:1", - "nodeType": "YulTypedName", - "src": "2798:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "2823:63:1", - "nodeType": "YulAssignment", - "src": "2823:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2858:9:1", - "nodeType": "YulIdentifier", - "src": "2858:9:1" - }, - { - "name": "offset", - "nativeSrc": "2869:6:1", - "nodeType": "YulIdentifier", - "src": "2869:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2854:3:1", - "nodeType": "YulIdentifier", - "src": "2854:3:1" - }, - "nativeSrc": "2854:22:1", - "nodeType": "YulFunctionCall", - "src": "2854:22:1" - }, - { - "name": "dataEnd", - "nativeSrc": "2878:7:1", - "nodeType": "YulIdentifier", - "src": "2878:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "2833:20:1", - "nodeType": "YulIdentifier", - "src": "2833:20:1" - }, - "nativeSrc": "2833:53:1", - "nodeType": "YulFunctionCall", - "src": "2833:53:1" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2823:6:1", - "nodeType": "YulIdentifier", - "src": "2823:6:1" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "2574:329:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2610:9:1", - "nodeType": "YulTypedName", - "src": "2610:9:1", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2621:7:1", - "nodeType": "YulTypedName", - "src": "2621:7:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2633:6:1", - "nodeType": "YulTypedName", - "src": "2633:6:1", - "type": "" - } - ], - "src": "2574:329:1" - }, - { - "body": { - "nativeSrc": "2951:48:1", - "nodeType": "YulBlock", - "src": "2951:48:1", - "statements": [ - { - "nativeSrc": "2961:32:1", - "nodeType": "YulAssignment", - "src": "2961:32:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2986:5:1", - "nodeType": "YulIdentifier", - "src": "2986:5:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2979:6:1", - "nodeType": "YulIdentifier", - "src": "2979:6:1" - }, - "nativeSrc": "2979:13:1", - "nodeType": "YulFunctionCall", - "src": "2979:13:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2972:6:1", - "nodeType": "YulIdentifier", - "src": "2972:6:1" - }, - "nativeSrc": "2972:21:1", - "nodeType": "YulFunctionCall", - "src": "2972:21:1" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "2961:7:1", - "nodeType": "YulIdentifier", - "src": "2961:7:1" - } - ] - } - ] - }, - "name": "cleanup_t_bool", - "nativeSrc": "2909:90:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2933:5:1", - "nodeType": "YulTypedName", - "src": "2933:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "2943:7:1", - "nodeType": "YulTypedName", - "src": "2943:7:1", - "type": "" - } - ], - "src": "2909:90:1" - }, - { - "body": { - "nativeSrc": "3064:50:1", - "nodeType": "YulBlock", - "src": "3064:50:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3081:3:1", - "nodeType": "YulIdentifier", - "src": "3081:3:1" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3101:5:1", - "nodeType": "YulIdentifier", - "src": "3101:5:1" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "3086:14:1", - "nodeType": "YulIdentifier", - "src": "3086:14:1" - }, - "nativeSrc": "3086:21:1", - "nodeType": "YulFunctionCall", - "src": "3086:21:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3074:6:1", - "nodeType": "YulIdentifier", - "src": "3074:6:1" - }, - "nativeSrc": "3074:34:1", - "nodeType": "YulFunctionCall", - "src": "3074:34:1" - }, - "nativeSrc": "3074:34:1", - "nodeType": "YulExpressionStatement", - "src": "3074:34:1" - } - ] - }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "3005:109:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3052:5:1", - "nodeType": "YulTypedName", - "src": "3052:5:1", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "3059:3:1", - "nodeType": "YulTypedName", - "src": "3059:3:1", - "type": "" - } - ], - "src": "3005:109:1" - }, - { - "body": { - "nativeSrc": "3212:118:1", - "nodeType": "YulBlock", - "src": "3212:118:1", - "statements": [ - { - "nativeSrc": "3222:26:1", - "nodeType": "YulAssignment", - "src": "3222:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3234:9:1", - "nodeType": "YulIdentifier", - "src": "3234:9:1" - }, - { - "kind": "number", - "nativeSrc": "3245:2:1", - "nodeType": "YulLiteral", - "src": "3245:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3230:3:1", - "nodeType": "YulIdentifier", - "src": "3230:3:1" - }, - "nativeSrc": "3230:18:1", - "nodeType": "YulFunctionCall", - "src": "3230:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3222:4:1", - "nodeType": "YulIdentifier", - "src": "3222:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "3296:6:1", - "nodeType": "YulIdentifier", - "src": "3296:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3309:9:1", - "nodeType": "YulIdentifier", - "src": "3309:9:1" - }, - { - "kind": "number", - "nativeSrc": "3320:1:1", - "nodeType": "YulLiteral", - "src": "3320:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3305:3:1", - "nodeType": "YulIdentifier", - "src": "3305:3:1" - }, - "nativeSrc": "3305:17:1", - "nodeType": "YulFunctionCall", - "src": "3305:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "3258:37:1", - "nodeType": "YulIdentifier", - "src": "3258:37:1" - }, - "nativeSrc": "3258:65:1", - "nodeType": "YulFunctionCall", - "src": "3258:65:1" - }, - "nativeSrc": "3258:65:1", - "nodeType": "YulExpressionStatement", - "src": "3258:65:1" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "3120:210:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3184:9:1", - "nodeType": "YulTypedName", - "src": "3184:9:1", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "3196:6:1", - "nodeType": "YulTypedName", - "src": "3196:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "3207:4:1", - "nodeType": "YulTypedName", - "src": "3207:4:1", - "type": "" - } - ], - "src": "3120:210:1" - }, - { - "body": { - "nativeSrc": "3394:40:1", - "nodeType": "YulBlock", - "src": "3394:40:1", - "statements": [ - { - "nativeSrc": "3405:22:1", - "nodeType": "YulAssignment", - "src": "3405:22:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3421:5:1", - "nodeType": "YulIdentifier", - "src": "3421:5:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3415:5:1", - "nodeType": "YulIdentifier", - "src": "3415:5:1" - }, - "nativeSrc": "3415:12:1", - "nodeType": "YulFunctionCall", - "src": "3415:12:1" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "3405:6:1", - "nodeType": "YulIdentifier", - "src": "3405:6:1" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "3336:98:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3377:5:1", - "nodeType": "YulTypedName", - "src": "3377:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "3387:6:1", - "nodeType": "YulTypedName", - "src": "3387:6:1", - "type": "" - } - ], - "src": "3336:98:1" - }, - { - "body": { - "nativeSrc": "3535:73:1", - "nodeType": "YulBlock", - "src": "3535:73:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3552:3:1", - "nodeType": "YulIdentifier", - "src": "3552:3:1" - }, - { - "name": "length", - "nativeSrc": "3557:6:1", - "nodeType": "YulIdentifier", - "src": "3557:6:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3545:6:1", - "nodeType": "YulIdentifier", - "src": "3545:6:1" - }, - "nativeSrc": "3545:19:1", - "nodeType": "YulFunctionCall", - "src": "3545:19:1" - }, - "nativeSrc": "3545:19:1", - "nodeType": "YulExpressionStatement", - "src": "3545:19:1" - }, - { - "nativeSrc": "3573:29:1", - "nodeType": "YulAssignment", - "src": "3573:29:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "3592:3:1", - "nodeType": "YulIdentifier", - "src": "3592:3:1" - }, - { - "kind": "number", - "nativeSrc": "3597:4:1", - "nodeType": "YulLiteral", - "src": "3597:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3588:3:1", - "nodeType": "YulIdentifier", - "src": "3588:3:1" - }, - "nativeSrc": "3588:14:1", - "nodeType": "YulFunctionCall", - "src": "3588:14:1" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "3573:11:1", - "nodeType": "YulIdentifier", - "src": "3573:11:1" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "3440:168:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "3507:3:1", - "nodeType": "YulTypedName", - "src": "3507:3:1", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3512:6:1", - "nodeType": "YulTypedName", - "src": "3512:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "3523:11:1", - "nodeType": "YulTypedName", - "src": "3523:11:1", - "type": "" - } - ], - "src": "3440:168:1" - }, - { - "body": { - "nativeSrc": "3676:184:1", - "nodeType": "YulBlock", - "src": "3676:184:1", - "statements": [ - { - "nativeSrc": "3686:10:1", - "nodeType": "YulVariableDeclaration", - "src": "3686:10:1", - "value": { - "kind": "number", - "nativeSrc": "3695:1:1", - "nodeType": "YulLiteral", - "src": "3695:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "3690:1:1", - "nodeType": "YulTypedName", - "src": "3690:1:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3755:63:1", - "nodeType": "YulBlock", - "src": "3755:63:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3780:3:1", - "nodeType": "YulIdentifier", - "src": "3780:3:1" - }, - { - "name": "i", - "nativeSrc": "3785:1:1", - "nodeType": "YulIdentifier", - "src": "3785:1:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3776:3:1", - "nodeType": "YulIdentifier", - "src": "3776:3:1" - }, - "nativeSrc": "3776:11:1", - "nodeType": "YulFunctionCall", - "src": "3776:11:1" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "3799:3:1", - "nodeType": "YulIdentifier", - "src": "3799:3:1" - }, - { - "name": "i", - "nativeSrc": "3804:1:1", - "nodeType": "YulIdentifier", - "src": "3804:1:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3795:3:1", - "nodeType": "YulIdentifier", - "src": "3795:3:1" - }, - "nativeSrc": "3795:11:1", - "nodeType": "YulFunctionCall", - "src": "3795:11:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3789:5:1", - "nodeType": "YulIdentifier", - "src": "3789:5:1" - }, - "nativeSrc": "3789:18:1", - "nodeType": "YulFunctionCall", - "src": "3789:18:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3769:6:1", - "nodeType": "YulIdentifier", - "src": "3769:6:1" - }, - "nativeSrc": "3769:39:1", - "nodeType": "YulFunctionCall", - "src": "3769:39:1" - }, - "nativeSrc": "3769:39:1", - "nodeType": "YulExpressionStatement", - "src": "3769:39:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "3716:1:1", - "nodeType": "YulIdentifier", - "src": "3716:1:1" - }, - { - "name": "length", - "nativeSrc": "3719:6:1", - "nodeType": "YulIdentifier", - "src": "3719:6:1" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "3713:2:1", - "nodeType": "YulIdentifier", - "src": "3713:2:1" - }, - "nativeSrc": "3713:13:1", - "nodeType": "YulFunctionCall", - "src": "3713:13:1" - }, - "nativeSrc": "3705:113:1", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "3727:19:1", - "nodeType": "YulBlock", - "src": "3727:19:1", - "statements": [ - { - "nativeSrc": "3729:15:1", - "nodeType": "YulAssignment", - "src": "3729:15:1", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "3738:1:1", - "nodeType": "YulIdentifier", - "src": "3738:1:1" - }, - { - "kind": "number", - "nativeSrc": "3741:2:1", - "nodeType": "YulLiteral", - "src": "3741:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3734:3:1", - "nodeType": "YulIdentifier", - "src": "3734:3:1" - }, - "nativeSrc": "3734:10:1", - "nodeType": "YulFunctionCall", - "src": "3734:10:1" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "3729:1:1", - "nodeType": "YulIdentifier", - "src": "3729:1:1" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "3709:3:1", - "nodeType": "YulBlock", - "src": "3709:3:1", - "statements": [] - }, - "src": "3705:113:1" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3838:3:1", - "nodeType": "YulIdentifier", - "src": "3838:3:1" - }, - { - "name": "length", - "nativeSrc": "3843:6:1", - "nodeType": "YulIdentifier", - "src": "3843:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3834:3:1", - "nodeType": "YulIdentifier", - "src": "3834:3:1" - }, - "nativeSrc": "3834:16:1", - "nodeType": "YulFunctionCall", - "src": "3834:16:1" - }, - { - "kind": "number", - "nativeSrc": "3852:1:1", - "nodeType": "YulLiteral", - "src": "3852:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3827:6:1", - "nodeType": "YulIdentifier", - "src": "3827:6:1" - }, - "nativeSrc": "3827:27:1", - "nodeType": "YulFunctionCall", - "src": "3827:27:1" - }, - "nativeSrc": "3827:27:1", - "nodeType": "YulExpressionStatement", - "src": "3827:27:1" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "3614:246:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "3658:3:1", - "nodeType": "YulTypedName", - "src": "3658:3:1", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "3663:3:1", - "nodeType": "YulTypedName", - "src": "3663:3:1", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3668:6:1", - "nodeType": "YulTypedName", - "src": "3668:6:1", - "type": "" - } - ], - "src": "3614:246:1" - }, - { - "body": { - "nativeSrc": "3914:54:1", - "nodeType": "YulBlock", - "src": "3914:54:1", - "statements": [ - { - "nativeSrc": "3924:38:1", - "nodeType": "YulAssignment", - "src": "3924:38:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3942:5:1", - "nodeType": "YulIdentifier", - "src": "3942:5:1" - }, - { - "kind": "number", - "nativeSrc": "3949:2:1", - "nodeType": "YulLiteral", - "src": "3949:2:1", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3938:3:1", - "nodeType": "YulIdentifier", - "src": "3938:3:1" - }, - "nativeSrc": "3938:14:1", - "nodeType": "YulFunctionCall", - "src": "3938:14:1" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3958:2:1", - "nodeType": "YulLiteral", - "src": "3958:2:1", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "3954:3:1", - "nodeType": "YulIdentifier", - "src": "3954:3:1" - }, - "nativeSrc": "3954:7:1", - "nodeType": "YulFunctionCall", - "src": "3954:7:1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3934:3:1", - "nodeType": "YulIdentifier", - "src": "3934:3:1" - }, - "nativeSrc": "3934:28:1", - "nodeType": "YulFunctionCall", - "src": "3934:28:1" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "3924:6:1", - "nodeType": "YulIdentifier", - "src": "3924:6:1" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "3866:102:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3897:5:1", - "nodeType": "YulTypedName", - "src": "3897:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "3907:6:1", - "nodeType": "YulTypedName", - "src": "3907:6:1", - "type": "" - } - ], - "src": "3866:102:1" - }, - { - "body": { - "nativeSrc": "4064:283:1", - "nodeType": "YulBlock", - "src": "4064:283:1", - "statements": [ - { - "nativeSrc": "4074:52:1", - "nodeType": "YulVariableDeclaration", - "src": "4074:52:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4120:5:1", - "nodeType": "YulIdentifier", - "src": "4120:5:1" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "4088:31:1", - "nodeType": "YulIdentifier", - "src": "4088:31:1" - }, - "nativeSrc": "4088:38:1", - "nodeType": "YulFunctionCall", - "src": "4088:38:1" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "4078:6:1", - "nodeType": "YulTypedName", - "src": "4078:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "4135:77:1", - "nodeType": "YulAssignment", - "src": "4135:77:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4200:3:1", - "nodeType": "YulIdentifier", - "src": "4200:3:1" - }, - { - "name": "length", - "nativeSrc": "4205:6:1", - "nodeType": "YulIdentifier", - "src": "4205:6:1" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "4142:57:1", - "nodeType": "YulIdentifier", - "src": "4142:57:1" - }, - "nativeSrc": "4142:70:1", - "nodeType": "YulFunctionCall", - "src": "4142:70:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "4135:3:1", - "nodeType": "YulIdentifier", - "src": "4135:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "4260:5:1", - "nodeType": "YulIdentifier", - "src": "4260:5:1" - }, - { - "kind": "number", - "nativeSrc": "4267:4:1", - "nodeType": "YulLiteral", - "src": "4267:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4256:3:1", - "nodeType": "YulIdentifier", - "src": "4256:3:1" - }, - "nativeSrc": "4256:16:1", - "nodeType": "YulFunctionCall", - "src": "4256:16:1" - }, - { - "name": "pos", - "nativeSrc": "4274:3:1", - "nodeType": "YulIdentifier", - "src": "4274:3:1" - }, - { - "name": "length", - "nativeSrc": "4279:6:1", - "nodeType": "YulIdentifier", - "src": "4279:6:1" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "4221:34:1", - "nodeType": "YulIdentifier", - "src": "4221:34:1" - }, - "nativeSrc": "4221:65:1", - "nodeType": "YulFunctionCall", - "src": "4221:65:1" - }, - "nativeSrc": "4221:65:1", - "nodeType": "YulExpressionStatement", - "src": "4221:65:1" - }, - { - "nativeSrc": "4295:46:1", - "nodeType": "YulAssignment", - "src": "4295:46:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "4306:3:1", - "nodeType": "YulIdentifier", - "src": "4306:3:1" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "4333:6:1", - "nodeType": "YulIdentifier", - "src": "4333:6:1" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "4311:21:1", - "nodeType": "YulIdentifier", - "src": "4311:21:1" - }, - "nativeSrc": "4311:29:1", - "nodeType": "YulFunctionCall", - "src": "4311:29:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4302:3:1", - "nodeType": "YulIdentifier", - "src": "4302:3:1" - }, - "nativeSrc": "4302:39:1", - "nodeType": "YulFunctionCall", - "src": "4302:39:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "4295:3:1", - "nodeType": "YulIdentifier", - "src": "4295:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "3974:373:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "4045:5:1", - "nodeType": "YulTypedName", - "src": "4045:5:1", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4052:3:1", - "nodeType": "YulTypedName", - "src": "4052:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "4060:3:1", - "nodeType": "YulTypedName", - "src": "4060:3:1", - "type": "" - } - ], - "src": "3974:373:1" - }, - { - "body": { - "nativeSrc": "4575:517:1", - "nodeType": "YulBlock", - "src": "4575:517:1", - "statements": [ - { - "nativeSrc": "4585:27:1", - "nodeType": "YulAssignment", - "src": "4585:27:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4597:9:1", - "nodeType": "YulIdentifier", - "src": "4597:9:1" - }, - { - "kind": "number", - "nativeSrc": "4608:3:1", - "nodeType": "YulLiteral", - "src": "4608:3:1", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4593:3:1", - "nodeType": "YulIdentifier", - "src": "4593:3:1" - }, - "nativeSrc": "4593:19:1", - "nodeType": "YulFunctionCall", - "src": "4593:19:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4585:4:1", - "nodeType": "YulIdentifier", - "src": "4585:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4666:6:1", - "nodeType": "YulIdentifier", - "src": "4666:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4679:9:1", - "nodeType": "YulIdentifier", - "src": "4679:9:1" - }, - { - "kind": "number", - "nativeSrc": "4690:1:1", - "nodeType": "YulLiteral", - "src": "4690:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4675:3:1", - "nodeType": "YulIdentifier", - "src": "4675:3:1" - }, - "nativeSrc": "4675:17:1", - "nodeType": "YulFunctionCall", - "src": "4675:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "4622:43:1", - "nodeType": "YulIdentifier", - "src": "4622:43:1" - }, - "nativeSrc": "4622:71:1", - "nodeType": "YulFunctionCall", - "src": "4622:71:1" - }, - "nativeSrc": "4622:71:1", - "nodeType": "YulExpressionStatement", - "src": "4622:71:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "4747:6:1", - "nodeType": "YulIdentifier", - "src": "4747:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4760:9:1", - "nodeType": "YulIdentifier", - "src": "4760:9:1" - }, - { - "kind": "number", - "nativeSrc": "4771:2:1", - "nodeType": "YulLiteral", - "src": "4771:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4756:3:1", - "nodeType": "YulIdentifier", - "src": "4756:3:1" - }, - "nativeSrc": "4756:18:1", - "nodeType": "YulFunctionCall", - "src": "4756:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "4703:43:1", - "nodeType": "YulIdentifier", - "src": "4703:43:1" - }, - "nativeSrc": "4703:72:1", - "nodeType": "YulFunctionCall", - "src": "4703:72:1" - }, - "nativeSrc": "4703:72:1", - "nodeType": "YulExpressionStatement", - "src": "4703:72:1" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4796:9:1", - "nodeType": "YulIdentifier", - "src": "4796:9:1" - }, - { - "kind": "number", - "nativeSrc": "4807:2:1", - "nodeType": "YulLiteral", - "src": "4807:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4792:3:1", - "nodeType": "YulIdentifier", - "src": "4792:3:1" - }, - "nativeSrc": "4792:18:1", - "nodeType": "YulFunctionCall", - "src": "4792:18:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "4816:4:1", - "nodeType": "YulIdentifier", - "src": "4816:4:1" - }, - { - "name": "headStart", - "nativeSrc": "4822:9:1", - "nodeType": "YulIdentifier", - "src": "4822:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4812:3:1", - "nodeType": "YulIdentifier", - "src": "4812:3:1" - }, - "nativeSrc": "4812:20:1", - "nodeType": "YulFunctionCall", - "src": "4812:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4785:6:1", - "nodeType": "YulIdentifier", - "src": "4785:6:1" - }, - "nativeSrc": "4785:48:1", - "nodeType": "YulFunctionCall", - "src": "4785:48:1" - }, - "nativeSrc": "4785:48:1", - "nodeType": "YulExpressionStatement", - "src": "4785:48:1" - }, - { - "nativeSrc": "4842:84:1", - "nodeType": "YulAssignment", - "src": "4842:84:1", - "value": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "4912:6:1", - "nodeType": "YulIdentifier", - "src": "4912:6:1" - }, - { - "name": "tail", - "nativeSrc": "4921:4:1", - "nodeType": "YulIdentifier", - "src": "4921:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "4850:61:1", - "nodeType": "YulIdentifier", - "src": "4850:61:1" - }, - "nativeSrc": "4850:76:1", - "nodeType": "YulFunctionCall", - "src": "4850:76:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4842:4:1", - "nodeType": "YulIdentifier", - "src": "4842:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nativeSrc": "4974:6:1", - "nodeType": "YulIdentifier", - "src": "4974:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4987:9:1", - "nodeType": "YulIdentifier", - "src": "4987:9:1" - }, - { - "kind": "number", - "nativeSrc": "4998:2:1", - "nodeType": "YulLiteral", - "src": "4998:2:1", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4983:3:1", - "nodeType": "YulIdentifier", - "src": "4983:3:1" - }, - "nativeSrc": "4983:18:1", - "nodeType": "YulFunctionCall", - "src": "4983:18:1" - } - ], - "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "4936:37:1", - "nodeType": "YulIdentifier", - "src": "4936:37:1" - }, - "nativeSrc": "4936:66:1", - "nodeType": "YulFunctionCall", - "src": "4936:66:1" - }, - "nativeSrc": "4936:66:1", - "nodeType": "YulExpressionStatement", - "src": "4936:66:1" - }, - { - "expression": { - "arguments": [ - { - "name": "value4", - "nativeSrc": "5056:6:1", - "nodeType": "YulIdentifier", - "src": "5056:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5069:9:1", - "nodeType": "YulIdentifier", - "src": "5069:9:1" - }, - { - "kind": "number", - "nativeSrc": "5080:3:1", - "nodeType": "YulLiteral", - "src": "5080:3:1", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5065:3:1", - "nodeType": "YulIdentifier", - "src": "5065:3:1" - }, - "nativeSrc": "5065:19:1", - "nodeType": "YulFunctionCall", - "src": "5065:19:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "5012:43:1", - "nodeType": "YulIdentifier", - "src": "5012:43:1" - }, - "nativeSrc": "5012:73:1", - "nodeType": "YulFunctionCall", - "src": "5012:73:1" - }, - "nativeSrc": "5012:73:1", - "nodeType": "YulExpressionStatement", - "src": "5012:73:1" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__fromStack_reversed", - "nativeSrc": "4353:739:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4515:9:1", - "nodeType": "YulTypedName", - "src": "4515:9:1", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "4527:6:1", - "nodeType": "YulTypedName", - "src": "4527:6:1", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "4535:6:1", - "nodeType": "YulTypedName", - "src": "4535:6:1", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "4543:6:1", - "nodeType": "YulTypedName", - "src": "4543:6:1", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4551:6:1", - "nodeType": "YulTypedName", - "src": "4551:6:1", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4559:6:1", - "nodeType": "YulTypedName", - "src": "4559:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4570:4:1", - "nodeType": "YulTypedName", - "src": "4570:4:1", - "type": "" - } - ], - "src": "4353:739:1" - }, - { - "body": { - "nativeSrc": "5181:391:1", - "nodeType": "YulBlock", - "src": "5181:391:1", - "statements": [ - { - "body": { - "nativeSrc": "5227:83:1", - "nodeType": "YulBlock", - "src": "5227:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "5229:77:1", - "nodeType": "YulIdentifier", - "src": "5229:77:1" - }, - "nativeSrc": "5229:79:1", - "nodeType": "YulFunctionCall", - "src": "5229:79:1" - }, - "nativeSrc": "5229:79:1", - "nodeType": "YulExpressionStatement", - "src": "5229:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "5202:7:1", - "nodeType": "YulIdentifier", - "src": "5202:7:1" - }, - { - "name": "headStart", - "nativeSrc": "5211:9:1", - "nodeType": "YulIdentifier", - "src": "5211:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5198:3:1", - "nodeType": "YulIdentifier", - "src": "5198:3:1" - }, - "nativeSrc": "5198:23:1", - "nodeType": "YulFunctionCall", - "src": "5198:23:1" - }, - { - "kind": "number", - "nativeSrc": "5223:2:1", - "nodeType": "YulLiteral", - "src": "5223:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "5194:3:1", - "nodeType": "YulIdentifier", - "src": "5194:3:1" - }, - "nativeSrc": "5194:32:1", - "nodeType": "YulFunctionCall", - "src": "5194:32:1" - }, - "nativeSrc": "5191:119:1", - "nodeType": "YulIf", - "src": "5191:119:1" - }, - { - "nativeSrc": "5320:117:1", - "nodeType": "YulBlock", - "src": "5320:117:1", - "statements": [ - { - "nativeSrc": "5335:15:1", - "nodeType": "YulVariableDeclaration", - "src": "5335:15:1", - "value": { - "kind": "number", - "nativeSrc": "5349:1:1", - "nodeType": "YulLiteral", - "src": "5349:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "5339:6:1", - "nodeType": "YulTypedName", - "src": "5339:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "5364:63:1", - "nodeType": "YulAssignment", - "src": "5364:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5399:9:1", - "nodeType": "YulIdentifier", - "src": "5399:9:1" - }, - { - "name": "offset", - "nativeSrc": "5410:6:1", - "nodeType": "YulIdentifier", - "src": "5410:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5395:3:1", - "nodeType": "YulIdentifier", - "src": "5395:3:1" - }, - "nativeSrc": "5395:22:1", - "nodeType": "YulFunctionCall", - "src": "5395:22:1" - }, - { - "name": "dataEnd", - "nativeSrc": "5419:7:1", - "nodeType": "YulIdentifier", - "src": "5419:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "5374:20:1", - "nodeType": "YulIdentifier", - "src": "5374:20:1" - }, - "nativeSrc": "5374:53:1", - "nodeType": "YulFunctionCall", - "src": "5374:53:1" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "5364:6:1", - "nodeType": "YulIdentifier", - "src": "5364:6:1" - } - ] - } - ] - }, - { - "nativeSrc": "5447:118:1", - "nodeType": "YulBlock", - "src": "5447:118:1", - "statements": [ - { - "nativeSrc": "5462:16:1", - "nodeType": "YulVariableDeclaration", - "src": "5462:16:1", - "value": { - "kind": "number", - "nativeSrc": "5476:2:1", - "nodeType": "YulLiteral", - "src": "5476:2:1", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "5466:6:1", - "nodeType": "YulTypedName", - "src": "5466:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "5492:63:1", - "nodeType": "YulAssignment", - "src": "5492:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5527:9:1", - "nodeType": "YulIdentifier", - "src": "5527:9:1" - }, - { - "name": "offset", - "nativeSrc": "5538:6:1", - "nodeType": "YulIdentifier", - "src": "5538:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5523:3:1", - "nodeType": "YulIdentifier", - "src": "5523:3:1" - }, - "nativeSrc": "5523:22:1", - "nodeType": "YulFunctionCall", - "src": "5523:22:1" - }, - { - "name": "dataEnd", - "nativeSrc": "5547:7:1", - "nodeType": "YulIdentifier", - "src": "5547:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "5502:20:1", - "nodeType": "YulIdentifier", - "src": "5502:20:1" - }, - "nativeSrc": "5502:53:1", - "nodeType": "YulFunctionCall", - "src": "5502:53:1" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "5492:6:1", - "nodeType": "YulIdentifier", - "src": "5492:6:1" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_address", - "nativeSrc": "5098:474:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5143:9:1", - "nodeType": "YulTypedName", - "src": "5143:9:1", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "5154:7:1", - "nodeType": "YulTypedName", - "src": "5154:7:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "5166:6:1", - "nodeType": "YulTypedName", - "src": "5166:6:1", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "5174:6:1", - "nodeType": "YulTypedName", - "src": "5174:6:1", - "type": "" - } - ], - "src": "5098:474:1" - }, - { - "body": { - "nativeSrc": "5652:40:1", - "nodeType": "YulBlock", - "src": "5652:40:1", - "statements": [ - { - "nativeSrc": "5663:22:1", - "nodeType": "YulAssignment", - "src": "5663:22:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5679:5:1", - "nodeType": "YulIdentifier", - "src": "5679:5:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5673:5:1", - "nodeType": "YulIdentifier", - "src": "5673:5:1" - }, - "nativeSrc": "5673:12:1", - "nodeType": "YulFunctionCall", - "src": "5673:12:1" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "5663:6:1", - "nodeType": "YulIdentifier", - "src": "5663:6:1" - } - ] - } - ] - }, - "name": "array_length_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "5578:114:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5635:5:1", - "nodeType": "YulTypedName", - "src": "5635:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "5645:6:1", - "nodeType": "YulTypedName", - "src": "5645:6:1", - "type": "" - } - ], - "src": "5578:114:1" - }, - { - "body": { - "nativeSrc": "5809:73:1", - "nodeType": "YulBlock", - "src": "5809:73:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5826:3:1", - "nodeType": "YulIdentifier", - "src": "5826:3:1" - }, - { - "name": "length", - "nativeSrc": "5831:6:1", - "nodeType": "YulIdentifier", - "src": "5831:6:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5819:6:1", - "nodeType": "YulIdentifier", - "src": "5819:6:1" - }, - "nativeSrc": "5819:19:1", - "nodeType": "YulFunctionCall", - "src": "5819:19:1" - }, - "nativeSrc": "5819:19:1", - "nodeType": "YulExpressionStatement", - "src": "5819:19:1" - }, - { - "nativeSrc": "5847:29:1", - "nodeType": "YulAssignment", - "src": "5847:29:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5866:3:1", - "nodeType": "YulIdentifier", - "src": "5866:3:1" - }, - { - "kind": "number", - "nativeSrc": "5871:4:1", - "nodeType": "YulLiteral", - "src": "5871:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5862:3:1", - "nodeType": "YulIdentifier", - "src": "5862:3:1" - }, - "nativeSrc": "5862:14:1", - "nodeType": "YulFunctionCall", - "src": "5862:14:1" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "5847:11:1", - "nodeType": "YulIdentifier", - "src": "5847:11:1" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", - "nativeSrc": "5698:184:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "5781:3:1", - "nodeType": "YulTypedName", - "src": "5781:3:1", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5786:6:1", - "nodeType": "YulTypedName", - "src": "5786:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "5797:11:1", - "nodeType": "YulTypedName", - "src": "5797:11:1", - "type": "" - } - ], - "src": "5698:184:1" - }, - { - "body": { - "nativeSrc": "5960:60:1", - "nodeType": "YulBlock", - "src": "5960:60:1", - "statements": [ - { - "nativeSrc": "5970:11:1", - "nodeType": "YulAssignment", - "src": "5970:11:1", - "value": { - "name": "ptr", - "nativeSrc": "5978:3:1", - "nodeType": "YulIdentifier", - "src": "5978:3:1" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "5970:4:1", - "nodeType": "YulIdentifier", - "src": "5970:4:1" - } - ] - }, - { - "nativeSrc": "5991:22:1", - "nodeType": "YulAssignment", - "src": "5991:22:1", - "value": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "6003:3:1", - "nodeType": "YulIdentifier", - "src": "6003:3:1" - }, - { - "kind": "number", - "nativeSrc": "6008:4:1", - "nodeType": "YulLiteral", - "src": "6008:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5999:3:1", - "nodeType": "YulIdentifier", - "src": "5999:3:1" - }, - "nativeSrc": "5999:14:1", - "nodeType": "YulFunctionCall", - "src": "5999:14:1" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "5991:4:1", - "nodeType": "YulIdentifier", - "src": "5991:4:1" - } - ] - } - ] - }, - "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "5888:132:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nativeSrc": "5947:3:1", - "nodeType": "YulTypedName", - "src": "5947:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nativeSrc": "5955:4:1", - "nodeType": "YulTypedName", - "src": "5955:4:1", - "type": "" - } - ], - "src": "5888:132:1" - }, - { - "body": { - "nativeSrc": "6081:53:1", - "nodeType": "YulBlock", - "src": "6081:53:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6098:3:1", - "nodeType": "YulIdentifier", - "src": "6098:3:1" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "6121:5:1", - "nodeType": "YulIdentifier", - "src": "6121:5:1" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "6103:17:1", - "nodeType": "YulIdentifier", - "src": "6103:17:1" - }, - "nativeSrc": "6103:24:1", - "nodeType": "YulFunctionCall", - "src": "6103:24:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6091:6:1", - "nodeType": "YulIdentifier", - "src": "6091:6:1" - }, - "nativeSrc": "6091:37:1", - "nodeType": "YulFunctionCall", - "src": "6091:37:1" - }, - "nativeSrc": "6091:37:1", - "nodeType": "YulExpressionStatement", - "src": "6091:37:1" - } - ] - }, - "name": "abi_encode_t_address_to_t_address", - "nativeSrc": "6026:108:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6069:5:1", - "nodeType": "YulTypedName", - "src": "6069:5:1", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "6076:3:1", - "nodeType": "YulTypedName", - "src": "6076:3:1", - "type": "" - } - ], - "src": "6026:108:1" - }, - { - "body": { - "nativeSrc": "6220:99:1", - "nodeType": "YulBlock", - "src": "6220:99:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6264:6:1", - "nodeType": "YulIdentifier", - "src": "6264:6:1" - }, - { - "name": "pos", - "nativeSrc": "6272:3:1", - "nodeType": "YulIdentifier", - "src": "6272:3:1" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address", - "nativeSrc": "6230:33:1", - "nodeType": "YulIdentifier", - "src": "6230:33:1" - }, - "nativeSrc": "6230:46:1", - "nodeType": "YulFunctionCall", - "src": "6230:46:1" - }, - "nativeSrc": "6230:46:1", - "nodeType": "YulExpressionStatement", - "src": "6230:46:1" - }, - { - "nativeSrc": "6285:28:1", - "nodeType": "YulAssignment", - "src": "6285:28:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6303:3:1", - "nodeType": "YulIdentifier", - "src": "6303:3:1" - }, - { - "kind": "number", - "nativeSrc": "6308:4:1", - "nodeType": "YulLiteral", - "src": "6308:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6299:3:1", - "nodeType": "YulIdentifier", - "src": "6299:3:1" - }, - "nativeSrc": "6299:14:1", - "nodeType": "YulFunctionCall", - "src": "6299:14:1" - }, - "variableNames": [ - { - "name": "updatedPos", - "nativeSrc": "6285:10:1", - "nodeType": "YulIdentifier", - "src": "6285:10:1" - } - ] - } - ] - }, - "name": "abi_encodeUpdatedPos_t_address_to_t_address", - "nativeSrc": "6140:179:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value0", - "nativeSrc": "6193:6:1", - "nodeType": "YulTypedName", - "src": "6193:6:1", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "6201:3:1", - "nodeType": "YulTypedName", - "src": "6201:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updatedPos", - "nativeSrc": "6209:10:1", - "nodeType": "YulTypedName", - "src": "6209:10:1", - "type": "" - } - ], - "src": "6140:179:1" - }, - { - "body": { - "nativeSrc": "6400:38:1", - "nodeType": "YulBlock", - "src": "6400:38:1", - "statements": [ - { - "nativeSrc": "6410:22:1", - "nodeType": "YulAssignment", - "src": "6410:22:1", - "value": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "6422:3:1", - "nodeType": "YulIdentifier", - "src": "6422:3:1" - }, - { - "kind": "number", - "nativeSrc": "6427:4:1", - "nodeType": "YulLiteral", - "src": "6427:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6418:3:1", - "nodeType": "YulIdentifier", - "src": "6418:3:1" - }, - "nativeSrc": "6418:14:1", - "nodeType": "YulFunctionCall", - "src": "6418:14:1" - }, - "variableNames": [ - { - "name": "next", - "nativeSrc": "6410:4:1", - "nodeType": "YulIdentifier", - "src": "6410:4:1" - } - ] - } - ] - }, - "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "6325:113:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nativeSrc": "6387:3:1", - "nodeType": "YulTypedName", - "src": "6387:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "next", - "nativeSrc": "6395:4:1", - "nodeType": "YulTypedName", - "src": "6395:4:1", - "type": "" - } - ], - "src": "6325:113:1" - }, - { - "body": { - "nativeSrc": "6598:608:1", - "nodeType": "YulBlock", - "src": "6598:608:1", - "statements": [ - { - "nativeSrc": "6608:68:1", - "nodeType": "YulVariableDeclaration", - "src": "6608:68:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6670:5:1", - "nodeType": "YulIdentifier", - "src": "6670:5:1" - } - ], - "functionName": { - "name": "array_length_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "6622:47:1", - "nodeType": "YulIdentifier", - "src": "6622:47:1" - }, - "nativeSrc": "6622:54:1", - "nodeType": "YulFunctionCall", - "src": "6622:54:1" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "6612:6:1", - "nodeType": "YulTypedName", - "src": "6612:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "6685:93:1", - "nodeType": "YulAssignment", - "src": "6685:93:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "6766:3:1", - "nodeType": "YulIdentifier", - "src": "6766:3:1" - }, - { - "name": "length", - "nativeSrc": "6771:6:1", - "nodeType": "YulIdentifier", - "src": "6771:6:1" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack", - "nativeSrc": "6692:73:1", - "nodeType": "YulIdentifier", - "src": "6692:73:1" - }, - "nativeSrc": "6692:86:1", - "nodeType": "YulFunctionCall", - "src": "6692:86:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "6685:3:1", - "nodeType": "YulIdentifier", - "src": "6685:3:1" - } - ] - }, - { - "nativeSrc": "6787:71:1", - "nodeType": "YulVariableDeclaration", - "src": "6787:71:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6852:5:1", - "nodeType": "YulIdentifier", - "src": "6852:5:1" - } - ], - "functionName": { - "name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "6802:49:1", - "nodeType": "YulIdentifier", - "src": "6802:49:1" - }, - "nativeSrc": "6802:56:1", - "nodeType": "YulFunctionCall", - "src": "6802:56:1" - }, - "variables": [ - { - "name": "baseRef", - "nativeSrc": "6791:7:1", - "nodeType": "YulTypedName", - "src": "6791:7:1", - "type": "" - } - ] - }, - { - "nativeSrc": "6867:21:1", - "nodeType": "YulVariableDeclaration", - "src": "6867:21:1", - "value": { - "name": "baseRef", - "nativeSrc": "6881:7:1", - "nodeType": "YulIdentifier", - "src": "6881:7:1" - }, - "variables": [ - { - "name": "srcPtr", - "nativeSrc": "6871:6:1", - "nodeType": "YulTypedName", - "src": "6871:6:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "6957:224:1", - "nodeType": "YulBlock", - "src": "6957:224:1", - "statements": [ - { - "nativeSrc": "6971:34:1", - "nodeType": "YulVariableDeclaration", - "src": "6971:34:1", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "6998:6:1", - "nodeType": "YulIdentifier", - "src": "6998:6:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "6992:5:1", - "nodeType": "YulIdentifier", - "src": "6992:5:1" - }, - "nativeSrc": "6992:13:1", - "nodeType": "YulFunctionCall", - "src": "6992:13:1" - }, - "variables": [ - { - "name": "elementValue0", - "nativeSrc": "6975:13:1", - "nodeType": "YulTypedName", - "src": "6975:13:1", - "type": "" - } - ] - }, - { - "nativeSrc": "7018:70:1", - "nodeType": "YulAssignment", - "src": "7018:70:1", - "value": { - "arguments": [ - { - "name": "elementValue0", - "nativeSrc": "7069:13:1", - "nodeType": "YulIdentifier", - "src": "7069:13:1" - }, - { - "name": "pos", - "nativeSrc": "7084:3:1", - "nodeType": "YulIdentifier", - "src": "7084:3:1" - } - ], - "functionName": { - "name": "abi_encodeUpdatedPos_t_address_to_t_address", - "nativeSrc": "7025:43:1", - "nodeType": "YulIdentifier", - "src": "7025:43:1" - }, - "nativeSrc": "7025:63:1", - "nodeType": "YulFunctionCall", - "src": "7025:63:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "7018:3:1", - "nodeType": "YulIdentifier", - "src": "7018:3:1" - } - ] - }, - { - "nativeSrc": "7101:70:1", - "nodeType": "YulAssignment", - "src": "7101:70:1", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "7164:6:1", - "nodeType": "YulIdentifier", - "src": "7164:6:1" - } - ], - "functionName": { - "name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "7111:52:1", - "nodeType": "YulIdentifier", - "src": "7111:52:1" - }, - "nativeSrc": "7111:60:1", - "nodeType": "YulFunctionCall", - "src": "7111:60:1" - }, - "variableNames": [ - { - "name": "srcPtr", - "nativeSrc": "7101:6:1", - "nodeType": "YulIdentifier", - "src": "7101:6:1" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "6919:1:1", - "nodeType": "YulIdentifier", - "src": "6919:1:1" - }, - { - "name": "length", - "nativeSrc": "6922:6:1", - "nodeType": "YulIdentifier", - "src": "6922:6:1" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "6916:2:1", - "nodeType": "YulIdentifier", - "src": "6916:2:1" - }, - "nativeSrc": "6916:13:1", - "nodeType": "YulFunctionCall", - "src": "6916:13:1" - }, - "nativeSrc": "6897:284:1", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "6930:18:1", - "nodeType": "YulBlock", - "src": "6930:18:1", - "statements": [ - { - "nativeSrc": "6932:14:1", - "nodeType": "YulAssignment", - "src": "6932:14:1", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "6941:1:1", - "nodeType": "YulIdentifier", - "src": "6941:1:1" - }, - { - "kind": "number", - "nativeSrc": "6944:1:1", - "nodeType": "YulLiteral", - "src": "6944:1:1", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6937:3:1", - "nodeType": "YulIdentifier", - "src": "6937:3:1" - }, - "nativeSrc": "6937:9:1", - "nodeType": "YulFunctionCall", - "src": "6937:9:1" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "6932:1:1", - "nodeType": "YulIdentifier", - "src": "6932:1:1" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "6901:14:1", - "nodeType": "YulBlock", - "src": "6901:14:1", - "statements": [ - { - "nativeSrc": "6903:10:1", - "nodeType": "YulVariableDeclaration", - "src": "6903:10:1", - "value": { - "kind": "number", - "nativeSrc": "6912:1:1", - "nodeType": "YulLiteral", - "src": "6912:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "6907:1:1", - "nodeType": "YulTypedName", - "src": "6907:1:1", - "type": "" - } - ] - } - ] - }, - "src": "6897:284:1" - }, - { - "nativeSrc": "7190:10:1", - "nodeType": "YulAssignment", - "src": "7190:10:1", - "value": { - "name": "pos", - "nativeSrc": "7197:3:1", - "nodeType": "YulIdentifier", - "src": "7197:3:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "7190:3:1", - "nodeType": "YulIdentifier", - "src": "7190:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", - "nativeSrc": "6474:732:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "6577:5:1", - "nodeType": "YulTypedName", - "src": "6577:5:1", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "6584:3:1", - "nodeType": "YulTypedName", - "src": "6584:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "6593:3:1", - "nodeType": "YulTypedName", - "src": "6593:3:1", - "type": "" - } - ], - "src": "6474:732:1" - }, - { - "body": { - "nativeSrc": "7360:225:1", - "nodeType": "YulBlock", - "src": "7360:225:1", - "statements": [ - { - "nativeSrc": "7370:26:1", - "nodeType": "YulAssignment", - "src": "7370:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7382:9:1", - "nodeType": "YulIdentifier", - "src": "7382:9:1" - }, - { - "kind": "number", - "nativeSrc": "7393:2:1", - "nodeType": "YulLiteral", - "src": "7393:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7378:3:1", - "nodeType": "YulIdentifier", - "src": "7378:3:1" - }, - "nativeSrc": "7378:18:1", - "nodeType": "YulFunctionCall", - "src": "7378:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7370:4:1", - "nodeType": "YulIdentifier", - "src": "7370:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7417:9:1", - "nodeType": "YulIdentifier", - "src": "7417:9:1" - }, - { - "kind": "number", - "nativeSrc": "7428:1:1", - "nodeType": "YulLiteral", - "src": "7428:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7413:3:1", - "nodeType": "YulIdentifier", - "src": "7413:3:1" - }, - "nativeSrc": "7413:17:1", - "nodeType": "YulFunctionCall", - "src": "7413:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "7436:4:1", - "nodeType": "YulIdentifier", - "src": "7436:4:1" - }, - { - "name": "headStart", - "nativeSrc": "7442:9:1", - "nodeType": "YulIdentifier", - "src": "7442:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7432:3:1", - "nodeType": "YulIdentifier", - "src": "7432:3:1" - }, - "nativeSrc": "7432:20:1", - "nodeType": "YulFunctionCall", - "src": "7432:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7406:6:1", - "nodeType": "YulIdentifier", - "src": "7406:6:1" - }, - "nativeSrc": "7406:47:1", - "nodeType": "YulFunctionCall", - "src": "7406:47:1" - }, - "nativeSrc": "7406:47:1", - "nodeType": "YulExpressionStatement", - "src": "7406:47:1" - }, - { - "nativeSrc": "7462:116:1", - "nodeType": "YulAssignment", - "src": "7462:116:1", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7564:6:1", - "nodeType": "YulIdentifier", - "src": "7564:6:1" - }, - { - "name": "tail", - "nativeSrc": "7573:4:1", - "nodeType": "YulIdentifier", - "src": "7573:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack", - "nativeSrc": "7470:93:1", - "nodeType": "YulIdentifier", - "src": "7470:93:1" - }, - "nativeSrc": "7470:108:1", - "nodeType": "YulFunctionCall", - "src": "7470:108:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7462:4:1", - "nodeType": "YulIdentifier", - "src": "7462:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed", - "nativeSrc": "7212:373:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7332:9:1", - "nodeType": "YulTypedName", - "src": "7332:9:1", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7344:6:1", - "nodeType": "YulTypedName", - "src": "7344:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7355:4:1", - "nodeType": "YulTypedName", - "src": "7355:4:1", - "type": "" - } - ], - "src": "7212:373:1" - }, - { - "body": { - "nativeSrc": "7680:28:1", - "nodeType": "YulBlock", - "src": "7680:28:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7697:1:1", - "nodeType": "YulLiteral", - "src": "7697:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7700:1:1", - "nodeType": "YulLiteral", - "src": "7700:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7690:6:1", - "nodeType": "YulIdentifier", - "src": "7690:6:1" - }, - "nativeSrc": "7690:12:1", - "nodeType": "YulFunctionCall", - "src": "7690:12:1" - }, - "nativeSrc": "7690:12:1", - "nodeType": "YulExpressionStatement", - "src": "7690:12:1" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "7591:117:1", - "nodeType": "YulFunctionDefinition", - "src": "7591:117:1" - }, - { - "body": { - "nativeSrc": "7803:28:1", - "nodeType": "YulBlock", - "src": "7803:28:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7820:1:1", - "nodeType": "YulLiteral", - "src": "7820:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7823:1:1", - "nodeType": "YulLiteral", - "src": "7823:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7813:6:1", - "nodeType": "YulIdentifier", - "src": "7813:6:1" - }, - "nativeSrc": "7813:12:1", - "nodeType": "YulFunctionCall", - "src": "7813:12:1" - }, - "nativeSrc": "7813:12:1", - "nodeType": "YulExpressionStatement", - "src": "7813:12:1" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "7714:117:1", - "nodeType": "YulFunctionDefinition", - "src": "7714:117:1" - }, - { - "body": { - "nativeSrc": "7865:152:1", - "nodeType": "YulBlock", - "src": "7865:152:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7882:1:1", - "nodeType": "YulLiteral", - "src": "7882:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7885:77:1", - "nodeType": "YulLiteral", - "src": "7885:77:1", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7875:6:1", - "nodeType": "YulIdentifier", - "src": "7875:6:1" - }, - "nativeSrc": "7875:88:1", - "nodeType": "YulFunctionCall", - "src": "7875:88:1" - }, - "nativeSrc": "7875:88:1", - "nodeType": "YulExpressionStatement", - "src": "7875:88:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7979:1:1", - "nodeType": "YulLiteral", - "src": "7979:1:1", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "7982:4:1", - "nodeType": "YulLiteral", - "src": "7982:4:1", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7972:6:1", - "nodeType": "YulIdentifier", - "src": "7972:6:1" - }, - "nativeSrc": "7972:15:1", - "nodeType": "YulFunctionCall", - "src": "7972:15:1" - }, - "nativeSrc": "7972:15:1", - "nodeType": "YulExpressionStatement", - "src": "7972:15:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8003:1:1", - "nodeType": "YulLiteral", - "src": "8003:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8006:4:1", - "nodeType": "YulLiteral", - "src": "8006:4:1", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7996:6:1", - "nodeType": "YulIdentifier", - "src": "7996:6:1" - }, - "nativeSrc": "7996:15:1", - "nodeType": "YulFunctionCall", - "src": "7996:15:1" - }, - "nativeSrc": "7996:15:1", - "nodeType": "YulExpressionStatement", - "src": "7996:15:1" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "7837:180:1", - "nodeType": "YulFunctionDefinition", - "src": "7837:180:1" - }, - { - "body": { - "nativeSrc": "8066:238:1", - "nodeType": "YulBlock", - "src": "8066:238:1", - "statements": [ - { - "nativeSrc": "8076:58:1", - "nodeType": "YulVariableDeclaration", - "src": "8076:58:1", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "8098:6:1", - "nodeType": "YulIdentifier", - "src": "8098:6:1" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "8128:4:1", - "nodeType": "YulIdentifier", - "src": "8128:4:1" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "8106:21:1", - "nodeType": "YulIdentifier", - "src": "8106:21:1" - }, - "nativeSrc": "8106:27:1", - "nodeType": "YulFunctionCall", - "src": "8106:27:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8094:3:1", - "nodeType": "YulIdentifier", - "src": "8094:3:1" - }, - "nativeSrc": "8094:40:1", - "nodeType": "YulFunctionCall", - "src": "8094:40:1" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "8080:10:1", - "nodeType": "YulTypedName", - "src": "8080:10:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "8245:22:1", - "nodeType": "YulBlock", - "src": "8245:22:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "8247:16:1", - "nodeType": "YulIdentifier", - "src": "8247:16:1" - }, - "nativeSrc": "8247:18:1", - "nodeType": "YulFunctionCall", - "src": "8247:18:1" - }, - "nativeSrc": "8247:18:1", - "nodeType": "YulExpressionStatement", - "src": "8247:18:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "8188:10:1", - "nodeType": "YulIdentifier", - "src": "8188:10:1" - }, - { - "kind": "number", - "nativeSrc": "8200:18:1", - "nodeType": "YulLiteral", - "src": "8200:18:1", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "8185:2:1", - "nodeType": "YulIdentifier", - "src": "8185:2:1" - }, - "nativeSrc": "8185:34:1", - "nodeType": "YulFunctionCall", - "src": "8185:34:1" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "8224:10:1", - "nodeType": "YulIdentifier", - "src": "8224:10:1" - }, - { - "name": "memPtr", - "nativeSrc": "8236:6:1", - "nodeType": "YulIdentifier", - "src": "8236:6:1" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "8221:2:1", - "nodeType": "YulIdentifier", - "src": "8221:2:1" - }, - "nativeSrc": "8221:22:1", - "nodeType": "YulFunctionCall", - "src": "8221:22:1" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "8182:2:1", - "nodeType": "YulIdentifier", - "src": "8182:2:1" - }, - "nativeSrc": "8182:62:1", - "nodeType": "YulFunctionCall", - "src": "8182:62:1" - }, - "nativeSrc": "8179:88:1", - "nodeType": "YulIf", - "src": "8179:88:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8283:2:1", - "nodeType": "YulLiteral", - "src": "8283:2:1", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "8287:10:1", - "nodeType": "YulIdentifier", - "src": "8287:10:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8276:6:1", - "nodeType": "YulIdentifier", - "src": "8276:6:1" - }, - "nativeSrc": "8276:22:1", - "nodeType": "YulFunctionCall", - "src": "8276:22:1" - }, - "nativeSrc": "8276:22:1", - "nodeType": "YulExpressionStatement", - "src": "8276:22:1" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "8023:281:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "8052:6:1", - "nodeType": "YulTypedName", - "src": "8052:6:1", - "type": "" - }, - { - "name": "size", - "nativeSrc": "8060:4:1", - "nodeType": "YulTypedName", - "src": "8060:4:1", - "type": "" - } - ], - "src": "8023:281:1" - }, - { - "body": { - "nativeSrc": "8351:88:1", - "nodeType": "YulBlock", - "src": "8351:88:1", - "statements": [ - { - "nativeSrc": "8361:30:1", - "nodeType": "YulAssignment", - "src": "8361:30:1", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "8371:18:1", - "nodeType": "YulIdentifier", - "src": "8371:18:1" - }, - "nativeSrc": "8371:20:1", - "nodeType": "YulFunctionCall", - "src": "8371:20:1" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "8361:6:1", - "nodeType": "YulIdentifier", - "src": "8361:6:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "8420:6:1", - "nodeType": "YulIdentifier", - "src": "8420:6:1" - }, - { - "name": "size", - "nativeSrc": "8428:4:1", - "nodeType": "YulIdentifier", - "src": "8428:4:1" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "8400:19:1", - "nodeType": "YulIdentifier", - "src": "8400:19:1" - }, - "nativeSrc": "8400:33:1", - "nodeType": "YulFunctionCall", - "src": "8400:33:1" - }, - "nativeSrc": "8400:33:1", - "nodeType": "YulExpressionStatement", - "src": "8400:33:1" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "8310:129:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "8335:4:1", - "nodeType": "YulTypedName", - "src": "8335:4:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "8344:6:1", - "nodeType": "YulTypedName", - "src": "8344:6:1", - "type": "" - } - ], - "src": "8310:129:1" - }, - { - "body": { - "nativeSrc": "8511:241:1", - "nodeType": "YulBlock", - "src": "8511:241:1", - "statements": [ - { - "body": { - "nativeSrc": "8616:22:1", - "nodeType": "YulBlock", - "src": "8616:22:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "8618:16:1", - "nodeType": "YulIdentifier", - "src": "8618:16:1" - }, - "nativeSrc": "8618:18:1", - "nodeType": "YulFunctionCall", - "src": "8618:18:1" - }, - "nativeSrc": "8618:18:1", - "nodeType": "YulExpressionStatement", - "src": "8618:18:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "8588:6:1", - "nodeType": "YulIdentifier", - "src": "8588:6:1" - }, - { - "kind": "number", - "nativeSrc": "8596:18:1", - "nodeType": "YulLiteral", - "src": "8596:18:1", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "8585:2:1", - "nodeType": "YulIdentifier", - "src": "8585:2:1" - }, - "nativeSrc": "8585:30:1", - "nodeType": "YulFunctionCall", - "src": "8585:30:1" - }, - "nativeSrc": "8582:56:1", - "nodeType": "YulIf", - "src": "8582:56:1" - }, - { - "nativeSrc": "8648:37:1", - "nodeType": "YulAssignment", - "src": "8648:37:1", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "8678:6:1", - "nodeType": "YulIdentifier", - "src": "8678:6:1" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "8656:21:1", - "nodeType": "YulIdentifier", - "src": "8656:21:1" - }, - "nativeSrc": "8656:29:1", - "nodeType": "YulFunctionCall", - "src": "8656:29:1" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "8648:4:1", - "nodeType": "YulIdentifier", - "src": "8648:4:1" - } - ] - }, - { - "nativeSrc": "8722:23:1", - "nodeType": "YulAssignment", - "src": "8722:23:1", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "8734:4:1", - "nodeType": "YulIdentifier", - "src": "8734:4:1" - }, - { - "kind": "number", - "nativeSrc": "8740:4:1", - "nodeType": "YulLiteral", - "src": "8740:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8730:3:1", - "nodeType": "YulIdentifier", - "src": "8730:3:1" - }, - "nativeSrc": "8730:15:1", - "nodeType": "YulFunctionCall", - "src": "8730:15:1" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "8722:4:1", - "nodeType": "YulIdentifier", - "src": "8722:4:1" - } - ] - } - ] - }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "8445:307:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "8495:6:1", - "nodeType": "YulTypedName", - "src": "8495:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "8506:4:1", - "nodeType": "YulTypedName", - "src": "8506:4:1", - "type": "" - } - ], - "src": "8445:307:1" - }, - { - "body": { - "nativeSrc": "8822:82:1", - "nodeType": "YulBlock", - "src": "8822:82:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "8845:3:1", - "nodeType": "YulIdentifier", - "src": "8845:3:1" - }, - { - "name": "src", - "nativeSrc": "8850:3:1", - "nodeType": "YulIdentifier", - "src": "8850:3:1" - }, - { - "name": "length", - "nativeSrc": "8855:6:1", - "nodeType": "YulIdentifier", - "src": "8855:6:1" - } - ], - "functionName": { - "name": "calldatacopy", - "nativeSrc": "8832:12:1", - "nodeType": "YulIdentifier", - "src": "8832:12:1" - }, - "nativeSrc": "8832:30:1", - "nodeType": "YulFunctionCall", - "src": "8832:30:1" - }, - "nativeSrc": "8832:30:1", - "nodeType": "YulExpressionStatement", - "src": "8832:30:1" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "8882:3:1", - "nodeType": "YulIdentifier", - "src": "8882:3:1" - }, - { - "name": "length", - "nativeSrc": "8887:6:1", - "nodeType": "YulIdentifier", - "src": "8887:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8878:3:1", - "nodeType": "YulIdentifier", - "src": "8878:3:1" - }, - "nativeSrc": "8878:16:1", - "nodeType": "YulFunctionCall", - "src": "8878:16:1" - }, - { - "kind": "number", - "nativeSrc": "8896:1:1", - "nodeType": "YulLiteral", - "src": "8896:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8871:6:1", - "nodeType": "YulIdentifier", - "src": "8871:6:1" - }, - "nativeSrc": "8871:27:1", - "nodeType": "YulFunctionCall", - "src": "8871:27:1" - }, - "nativeSrc": "8871:27:1", - "nodeType": "YulExpressionStatement", - "src": "8871:27:1" - } - ] - }, - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "8758:146:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "8804:3:1", - "nodeType": "YulTypedName", - "src": "8804:3:1", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "8809:3:1", - "nodeType": "YulTypedName", - "src": "8809:3:1", - "type": "" - }, - { - "name": "length", - "nativeSrc": "8814:6:1", - "nodeType": "YulTypedName", - "src": "8814:6:1", - "type": "" - } - ], - "src": "8758:146:1" - }, - { - "body": { - "nativeSrc": "8993:340:1", - "nodeType": "YulBlock", - "src": "8993:340:1", - "statements": [ - { - "nativeSrc": "9003:74:1", - "nodeType": "YulAssignment", - "src": "9003:74:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "9069:6:1", - "nodeType": "YulIdentifier", - "src": "9069:6:1" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "9028:40:1", - "nodeType": "YulIdentifier", - "src": "9028:40:1" - }, - "nativeSrc": "9028:48:1", - "nodeType": "YulFunctionCall", - "src": "9028:48:1" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "9012:15:1", - "nodeType": "YulIdentifier", - "src": "9012:15:1" - }, - "nativeSrc": "9012:65:1", - "nodeType": "YulFunctionCall", - "src": "9012:65:1" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "9003:5:1", - "nodeType": "YulIdentifier", - "src": "9003:5:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "9093:5:1", - "nodeType": "YulIdentifier", - "src": "9093:5:1" - }, - { - "name": "length", - "nativeSrc": "9100:6:1", - "nodeType": "YulIdentifier", - "src": "9100:6:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9086:6:1", - "nodeType": "YulIdentifier", - "src": "9086:6:1" - }, - "nativeSrc": "9086:21:1", - "nodeType": "YulFunctionCall", - "src": "9086:21:1" - }, - "nativeSrc": "9086:21:1", - "nodeType": "YulExpressionStatement", - "src": "9086:21:1" - }, - { - "nativeSrc": "9116:27:1", - "nodeType": "YulVariableDeclaration", - "src": "9116:27:1", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "9131:5:1", - "nodeType": "YulIdentifier", - "src": "9131:5:1" - }, - { - "kind": "number", - "nativeSrc": "9138:4:1", - "nodeType": "YulLiteral", - "src": "9138:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9127:3:1", - "nodeType": "YulIdentifier", - "src": "9127:3:1" - }, - "nativeSrc": "9127:16:1", - "nodeType": "YulFunctionCall", - "src": "9127:16:1" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "9120:3:1", - "nodeType": "YulTypedName", - "src": "9120:3:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "9181:83:1", - "nodeType": "YulBlock", - "src": "9181:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "9183:77:1", - "nodeType": "YulIdentifier", - "src": "9183:77:1" - }, - "nativeSrc": "9183:79:1", - "nodeType": "YulFunctionCall", - "src": "9183:79:1" - }, - "nativeSrc": "9183:79:1", - "nodeType": "YulExpressionStatement", - "src": "9183:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "9162:3:1", - "nodeType": "YulIdentifier", - "src": "9162:3:1" - }, - { - "name": "length", - "nativeSrc": "9167:6:1", - "nodeType": "YulIdentifier", - "src": "9167:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9158:3:1", - "nodeType": "YulIdentifier", - "src": "9158:3:1" - }, - "nativeSrc": "9158:16:1", - "nodeType": "YulFunctionCall", - "src": "9158:16:1" - }, - { - "name": "end", - "nativeSrc": "9176:3:1", - "nodeType": "YulIdentifier", - "src": "9176:3:1" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "9155:2:1", - "nodeType": "YulIdentifier", - "src": "9155:2:1" - }, - "nativeSrc": "9155:25:1", - "nodeType": "YulFunctionCall", - "src": "9155:25:1" - }, - "nativeSrc": "9152:112:1", - "nodeType": "YulIf", - "src": "9152:112:1" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "9310:3:1", - "nodeType": "YulIdentifier", - "src": "9310:3:1" - }, - { - "name": "dst", - "nativeSrc": "9315:3:1", - "nodeType": "YulIdentifier", - "src": "9315:3:1" - }, - { - "name": "length", - "nativeSrc": "9320:6:1", - "nodeType": "YulIdentifier", - "src": "9320:6:1" - } - ], - "functionName": { - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "9273:36:1", - "nodeType": "YulIdentifier", - "src": "9273:36:1" - }, - "nativeSrc": "9273:54:1", - "nodeType": "YulFunctionCall", - "src": "9273:54:1" - }, - "nativeSrc": "9273:54:1", - "nodeType": "YulExpressionStatement", - "src": "9273:54:1" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "8910:423:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "8966:3:1", - "nodeType": "YulTypedName", - "src": "8966:3:1", - "type": "" - }, - { - "name": "length", - "nativeSrc": "8971:6:1", - "nodeType": "YulTypedName", - "src": "8971:6:1", - "type": "" - }, - { - "name": "end", - "nativeSrc": "8979:3:1", - "nodeType": "YulTypedName", - "src": "8979:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "8987:5:1", - "nodeType": "YulTypedName", - "src": "8987:5:1", - "type": "" - } - ], - "src": "8910:423:1" - }, - { - "body": { - "nativeSrc": "9413:277:1", - "nodeType": "YulBlock", - "src": "9413:277:1", - "statements": [ - { - "body": { - "nativeSrc": "9462:83:1", - "nodeType": "YulBlock", - "src": "9462:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "9464:77:1", - "nodeType": "YulIdentifier", - "src": "9464:77:1" - }, - "nativeSrc": "9464:79:1", - "nodeType": "YulFunctionCall", - "src": "9464:79:1" - }, - "nativeSrc": "9464:79:1", - "nodeType": "YulExpressionStatement", - "src": "9464:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "9441:6:1", - "nodeType": "YulIdentifier", - "src": "9441:6:1" - }, - { - "kind": "number", - "nativeSrc": "9449:4:1", - "nodeType": "YulLiteral", - "src": "9449:4:1", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9437:3:1", - "nodeType": "YulIdentifier", - "src": "9437:3:1" - }, - "nativeSrc": "9437:17:1", - "nodeType": "YulFunctionCall", - "src": "9437:17:1" - }, - { - "name": "end", - "nativeSrc": "9456:3:1", - "nodeType": "YulIdentifier", - "src": "9456:3:1" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "9433:3:1", - "nodeType": "YulIdentifier", - "src": "9433:3:1" - }, - "nativeSrc": "9433:27:1", - "nodeType": "YulFunctionCall", - "src": "9433:27:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "9426:6:1", - "nodeType": "YulIdentifier", - "src": "9426:6:1" - }, - "nativeSrc": "9426:35:1", - "nodeType": "YulFunctionCall", - "src": "9426:35:1" - }, - "nativeSrc": "9423:122:1", - "nodeType": "YulIf", - "src": "9423:122:1" - }, - { - "nativeSrc": "9554:34:1", - "nodeType": "YulVariableDeclaration", - "src": "9554:34:1", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "9581:6:1", - "nodeType": "YulIdentifier", - "src": "9581:6:1" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9568:12:1", - "nodeType": "YulIdentifier", - "src": "9568:12:1" - }, - "nativeSrc": "9568:20:1", - "nodeType": "YulFunctionCall", - "src": "9568:20:1" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "9558:6:1", - "nodeType": "YulTypedName", - "src": "9558:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "9597:87:1", - "nodeType": "YulAssignment", - "src": "9597:87:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "9657:6:1", - "nodeType": "YulIdentifier", - "src": "9657:6:1" - }, - { - "kind": "number", - "nativeSrc": "9665:4:1", - "nodeType": "YulLiteral", - "src": "9665:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9653:3:1", - "nodeType": "YulIdentifier", - "src": "9653:3:1" - }, - "nativeSrc": "9653:17:1", - "nodeType": "YulFunctionCall", - "src": "9653:17:1" - }, - { - "name": "length", - "nativeSrc": "9672:6:1", - "nodeType": "YulIdentifier", - "src": "9672:6:1" - }, - { - "name": "end", - "nativeSrc": "9680:3:1", - "nodeType": "YulIdentifier", - "src": "9680:3:1" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "9606:46:1", - "nodeType": "YulIdentifier", - "src": "9606:46:1" - }, - "nativeSrc": "9606:78:1", - "nodeType": "YulFunctionCall", - "src": "9606:78:1" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "9597:5:1", - "nodeType": "YulIdentifier", - "src": "9597:5:1" - } - ] - } - ] - }, - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "9352:338:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "9391:6:1", - "nodeType": "YulTypedName", - "src": "9391:6:1", - "type": "" - }, - { - "name": "end", - "nativeSrc": "9399:3:1", - "nodeType": "YulTypedName", - "src": "9399:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "9407:5:1", - "nodeType": "YulTypedName", - "src": "9407:5:1", - "type": "" - } - ], - "src": "9352:338:1" - }, - { - "body": { - "nativeSrc": "9805:688:1", - "nodeType": "YulBlock", - "src": "9805:688:1", - "statements": [ - { - "body": { - "nativeSrc": "9851:83:1", - "nodeType": "YulBlock", - "src": "9851:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "9853:77:1", - "nodeType": "YulIdentifier", - "src": "9853:77:1" - }, - "nativeSrc": "9853:79:1", - "nodeType": "YulFunctionCall", - "src": "9853:79:1" - }, - "nativeSrc": "9853:79:1", - "nodeType": "YulExpressionStatement", - "src": "9853:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "9826:7:1", - "nodeType": "YulIdentifier", - "src": "9826:7:1" - }, - { - "name": "headStart", - "nativeSrc": "9835:9:1", - "nodeType": "YulIdentifier", - "src": "9835:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "9822:3:1", - "nodeType": "YulIdentifier", - "src": "9822:3:1" - }, - "nativeSrc": "9822:23:1", - "nodeType": "YulFunctionCall", - "src": "9822:23:1" - }, - { - "kind": "number", - "nativeSrc": "9847:2:1", - "nodeType": "YulLiteral", - "src": "9847:2:1", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "9818:3:1", - "nodeType": "YulIdentifier", - "src": "9818:3:1" - }, - "nativeSrc": "9818:32:1", - "nodeType": "YulFunctionCall", - "src": "9818:32:1" - }, - "nativeSrc": "9815:119:1", - "nodeType": "YulIf", - "src": "9815:119:1" - }, - { - "nativeSrc": "9944:117:1", - "nodeType": "YulBlock", - "src": "9944:117:1", - "statements": [ - { - "nativeSrc": "9959:15:1", - "nodeType": "YulVariableDeclaration", - "src": "9959:15:1", - "value": { - "kind": "number", - "nativeSrc": "9973:1:1", - "nodeType": "YulLiteral", - "src": "9973:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "9963:6:1", - "nodeType": "YulTypedName", - "src": "9963:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "9988:63:1", - "nodeType": "YulAssignment", - "src": "9988:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10023:9:1", - "nodeType": "YulIdentifier", - "src": "10023:9:1" - }, - { - "name": "offset", - "nativeSrc": "10034:6:1", - "nodeType": "YulIdentifier", - "src": "10034:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10019:3:1", - "nodeType": "YulIdentifier", - "src": "10019:3:1" - }, - "nativeSrc": "10019:22:1", - "nodeType": "YulFunctionCall", - "src": "10019:22:1" - }, - { - "name": "dataEnd", - "nativeSrc": "10043:7:1", - "nodeType": "YulIdentifier", - "src": "10043:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "9998:20:1", - "nodeType": "YulIdentifier", - "src": "9998:20:1" - }, - "nativeSrc": "9998:53:1", - "nodeType": "YulFunctionCall", - "src": "9998:53:1" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "9988:6:1", - "nodeType": "YulIdentifier", - "src": "9988:6:1" - } - ] - } - ] - }, - { - "nativeSrc": "10071:118:1", - "nodeType": "YulBlock", - "src": "10071:118:1", - "statements": [ - { - "nativeSrc": "10086:16:1", - "nodeType": "YulVariableDeclaration", - "src": "10086:16:1", - "value": { - "kind": "number", - "nativeSrc": "10100:2:1", - "nodeType": "YulLiteral", - "src": "10100:2:1", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "10090:6:1", - "nodeType": "YulTypedName", - "src": "10090:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "10116:63:1", - "nodeType": "YulAssignment", - "src": "10116:63:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10151:9:1", - "nodeType": "YulIdentifier", - "src": "10151:9:1" - }, - { - "name": "offset", - "nativeSrc": "10162:6:1", - "nodeType": "YulIdentifier", - "src": "10162:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10147:3:1", - "nodeType": "YulIdentifier", - "src": "10147:3:1" - }, - "nativeSrc": "10147:22:1", - "nodeType": "YulFunctionCall", - "src": "10147:22:1" - }, - { - "name": "dataEnd", - "nativeSrc": "10171:7:1", - "nodeType": "YulIdentifier", - "src": "10171:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "10126:20:1", - "nodeType": "YulIdentifier", - "src": "10126:20:1" - }, - "nativeSrc": "10126:53:1", - "nodeType": "YulFunctionCall", - "src": "10126:53:1" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "10116:6:1", - "nodeType": "YulIdentifier", - "src": "10116:6:1" - } - ] - } - ] - }, - { - "nativeSrc": "10199:287:1", - "nodeType": "YulBlock", - "src": "10199:287:1", - "statements": [ - { - "nativeSrc": "10214:46:1", - "nodeType": "YulVariableDeclaration", - "src": "10214:46:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10245:9:1", - "nodeType": "YulIdentifier", - "src": "10245:9:1" - }, - { - "kind": "number", - "nativeSrc": "10256:2:1", - "nodeType": "YulLiteral", - "src": "10256:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10241:3:1", - "nodeType": "YulIdentifier", - "src": "10241:3:1" - }, - "nativeSrc": "10241:18:1", - "nodeType": "YulFunctionCall", - "src": "10241:18:1" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "10228:12:1", - "nodeType": "YulIdentifier", - "src": "10228:12:1" - }, - "nativeSrc": "10228:32:1", - "nodeType": "YulFunctionCall", - "src": "10228:32:1" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "10218:6:1", - "nodeType": "YulTypedName", - "src": "10218:6:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "10307:83:1", - "nodeType": "YulBlock", - "src": "10307:83:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "10309:77:1", - "nodeType": "YulIdentifier", - "src": "10309:77:1" - }, - "nativeSrc": "10309:79:1", - "nodeType": "YulFunctionCall", - "src": "10309:79:1" - }, - "nativeSrc": "10309:79:1", - "nodeType": "YulExpressionStatement", - "src": "10309:79:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "10279:6:1", - "nodeType": "YulIdentifier", - "src": "10279:6:1" - }, - { - "kind": "number", - "nativeSrc": "10287:18:1", - "nodeType": "YulLiteral", - "src": "10287:18:1", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "10276:2:1", - "nodeType": "YulIdentifier", - "src": "10276:2:1" - }, - "nativeSrc": "10276:30:1", - "nodeType": "YulFunctionCall", - "src": "10276:30:1" - }, - "nativeSrc": "10273:117:1", - "nodeType": "YulIf", - "src": "10273:117:1" - }, - { - "nativeSrc": "10404:72:1", - "nodeType": "YulAssignment", - "src": "10404:72:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10448:9:1", - "nodeType": "YulIdentifier", - "src": "10448:9:1" - }, - { - "name": "offset", - "nativeSrc": "10459:6:1", - "nodeType": "YulIdentifier", - "src": "10459:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10444:3:1", - "nodeType": "YulIdentifier", - "src": "10444:3:1" - }, - "nativeSrc": "10444:22:1", - "nodeType": "YulFunctionCall", - "src": "10444:22:1" - }, - { - "name": "dataEnd", - "nativeSrc": "10468:7:1", - "nodeType": "YulIdentifier", - "src": "10468:7:1" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "10414:29:1", - "nodeType": "YulIdentifier", - "src": "10414:29:1" - }, - "nativeSrc": "10414:62:1", - "nodeType": "YulFunctionCall", - "src": "10414:62:1" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "10404:6:1", - "nodeType": "YulIdentifier", - "src": "10404:6:1" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr", - "nativeSrc": "9696:797:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9759:9:1", - "nodeType": "YulTypedName", - "src": "9759:9:1", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "9770:7:1", - "nodeType": "YulTypedName", - "src": "9770:7:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "9782:6:1", - "nodeType": "YulTypedName", - "src": "9782:6:1", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9790:6:1", - "nodeType": "YulTypedName", - "src": "9790:6:1", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "9798:6:1", - "nodeType": "YulTypedName", - "src": "9798:6:1", - "type": "" - } - ], - "src": "9696:797:1" - }, - { - "body": { - "nativeSrc": "10595:73:1", - "nodeType": "YulBlock", - "src": "10595:73:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "10612:3:1", - "nodeType": "YulIdentifier", - "src": "10612:3:1" - }, - { - "name": "length", - "nativeSrc": "10617:6:1", - "nodeType": "YulIdentifier", - "src": "10617:6:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10605:6:1", - "nodeType": "YulIdentifier", - "src": "10605:6:1" - }, - "nativeSrc": "10605:19:1", - "nodeType": "YulFunctionCall", - "src": "10605:19:1" - }, - "nativeSrc": "10605:19:1", - "nodeType": "YulExpressionStatement", - "src": "10605:19:1" - }, - { - "nativeSrc": "10633:29:1", - "nodeType": "YulAssignment", - "src": "10633:29:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "10652:3:1", - "nodeType": "YulIdentifier", - "src": "10652:3:1" - }, - { - "kind": "number", - "nativeSrc": "10657:4:1", - "nodeType": "YulLiteral", - "src": "10657:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10648:3:1", - "nodeType": "YulIdentifier", - "src": "10648:3:1" - }, - "nativeSrc": "10648:14:1", - "nodeType": "YulFunctionCall", - "src": "10648:14:1" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "10633:11:1", - "nodeType": "YulIdentifier", - "src": "10633:11:1" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "10499:169:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "10567:3:1", - "nodeType": "YulTypedName", - "src": "10567:3:1", - "type": "" - }, - { - "name": "length", - "nativeSrc": "10572:6:1", - "nodeType": "YulTypedName", - "src": "10572:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "10583:11:1", - "nodeType": "YulTypedName", - "src": "10583:11:1", - "type": "" - } - ], - "src": "10499:169:1" - }, - { - "body": { - "nativeSrc": "10780:53:1", - "nodeType": "YulBlock", - "src": "10780:53:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "10802:6:1", - "nodeType": "YulIdentifier", - "src": "10802:6:1" - }, - { - "kind": "number", - "nativeSrc": "10810:1:1", - "nodeType": "YulLiteral", - "src": "10810:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10798:3:1", - "nodeType": "YulIdentifier", - "src": "10798:3:1" - }, - "nativeSrc": "10798:14:1", - "nodeType": "YulFunctionCall", - "src": "10798:14:1" - }, - { - "hexValue": "6e6f74206f776e6572", - "kind": "string", - "nativeSrc": "10814:11:1", - "nodeType": "YulLiteral", - "src": "10814:11:1", - "type": "", - "value": "not owner" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10791:6:1", - "nodeType": "YulIdentifier", - "src": "10791:6:1" - }, - "nativeSrc": "10791:35:1", - "nodeType": "YulFunctionCall", - "src": "10791:35:1" - }, - "nativeSrc": "10791:35:1", - "nodeType": "YulExpressionStatement", - "src": "10791:35:1" - } - ] - }, - "name": "store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e", - "nativeSrc": "10674:159:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "10772:6:1", - "nodeType": "YulTypedName", - "src": "10772:6:1", - "type": "" - } - ], - "src": "10674:159:1" - }, - { - "body": { - "nativeSrc": "10985:219:1", - "nodeType": "YulBlock", - "src": "10985:219:1", - "statements": [ - { - "nativeSrc": "10995:73:1", - "nodeType": "YulAssignment", - "src": "10995:73:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "11061:3:1", - "nodeType": "YulIdentifier", - "src": "11061:3:1" - }, - { - "kind": "number", - "nativeSrc": "11066:1:1", - "nodeType": "YulLiteral", - "src": "11066:1:1", - "type": "", - "value": "9" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "11002:58:1", - "nodeType": "YulIdentifier", - "src": "11002:58:1" - }, - "nativeSrc": "11002:66:1", - "nodeType": "YulFunctionCall", - "src": "11002:66:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "10995:3:1", - "nodeType": "YulIdentifier", - "src": "10995:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "11166:3:1", - "nodeType": "YulIdentifier", - "src": "11166:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e", - "nativeSrc": "11077:88:1", - "nodeType": "YulIdentifier", - "src": "11077:88:1" - }, - "nativeSrc": "11077:93:1", - "nodeType": "YulFunctionCall", - "src": "11077:93:1" - }, - "nativeSrc": "11077:93:1", - "nodeType": "YulExpressionStatement", - "src": "11077:93:1" - }, - { - "nativeSrc": "11179:19:1", - "nodeType": "YulAssignment", - "src": "11179:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "11190:3:1", - "nodeType": "YulIdentifier", - "src": "11190:3:1" - }, - { - "kind": "number", - "nativeSrc": "11195:2:1", - "nodeType": "YulLiteral", - "src": "11195:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11186:3:1", - "nodeType": "YulIdentifier", - "src": "11186:3:1" - }, - "nativeSrc": "11186:12:1", - "nodeType": "YulFunctionCall", - "src": "11186:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "11179:3:1", - "nodeType": "YulIdentifier", - "src": "11179:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack", - "nativeSrc": "10839:365:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "10973:3:1", - "nodeType": "YulTypedName", - "src": "10973:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "10981:3:1", - "nodeType": "YulTypedName", - "src": "10981:3:1", - "type": "" - } - ], - "src": "10839:365:1" - }, - { - "body": { - "nativeSrc": "11381:248:1", - "nodeType": "YulBlock", - "src": "11381:248:1", - "statements": [ - { - "nativeSrc": "11391:26:1", - "nodeType": "YulAssignment", - "src": "11391:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11403:9:1", - "nodeType": "YulIdentifier", - "src": "11403:9:1" - }, - { - "kind": "number", - "nativeSrc": "11414:2:1", - "nodeType": "YulLiteral", - "src": "11414:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11399:3:1", - "nodeType": "YulIdentifier", - "src": "11399:3:1" - }, - "nativeSrc": "11399:18:1", - "nodeType": "YulFunctionCall", - "src": "11399:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "11391:4:1", - "nodeType": "YulIdentifier", - "src": "11391:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11438:9:1", - "nodeType": "YulIdentifier", - "src": "11438:9:1" - }, - { - "kind": "number", - "nativeSrc": "11449:1:1", - "nodeType": "YulLiteral", - "src": "11449:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11434:3:1", - "nodeType": "YulIdentifier", - "src": "11434:3:1" - }, - "nativeSrc": "11434:17:1", - "nodeType": "YulFunctionCall", - "src": "11434:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "11457:4:1", - "nodeType": "YulIdentifier", - "src": "11457:4:1" - }, - { - "name": "headStart", - "nativeSrc": "11463:9:1", - "nodeType": "YulIdentifier", - "src": "11463:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11453:3:1", - "nodeType": "YulIdentifier", - "src": "11453:3:1" - }, - "nativeSrc": "11453:20:1", - "nodeType": "YulFunctionCall", - "src": "11453:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11427:6:1", - "nodeType": "YulIdentifier", - "src": "11427:6:1" - }, - "nativeSrc": "11427:47:1", - "nodeType": "YulFunctionCall", - "src": "11427:47:1" - }, - "nativeSrc": "11427:47:1", - "nodeType": "YulExpressionStatement", - "src": "11427:47:1" - }, - { - "nativeSrc": "11483:139:1", - "nodeType": "YulAssignment", - "src": "11483:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "11617:4:1", - "nodeType": "YulIdentifier", - "src": "11617:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack", - "nativeSrc": "11491:124:1", - "nodeType": "YulIdentifier", - "src": "11491:124:1" - }, - "nativeSrc": "11491:131:1", - "nodeType": "YulFunctionCall", - "src": "11491:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "11483:4:1", - "nodeType": "YulIdentifier", - "src": "11483:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "11210:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11361:9:1", - "nodeType": "YulTypedName", - "src": "11361:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "11376:4:1", - "nodeType": "YulTypedName", - "src": "11376:4:1", - "type": "" - } - ], - "src": "11210:419:1" - }, - { - "body": { - "nativeSrc": "11741:61:1", - "nodeType": "YulBlock", - "src": "11741:61:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "11763:6:1", - "nodeType": "YulIdentifier", - "src": "11763:6:1" - }, - { - "kind": "number", - "nativeSrc": "11771:1:1", - "nodeType": "YulLiteral", - "src": "11771:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11759:3:1", - "nodeType": "YulIdentifier", - "src": "11759:3:1" - }, - "nativeSrc": "11759:14:1", - "nodeType": "YulFunctionCall", - "src": "11759:14:1" - }, - { - "hexValue": "747820646f6573206e6f74206578697374", - "kind": "string", - "nativeSrc": "11775:19:1", - "nodeType": "YulLiteral", - "src": "11775:19:1", - "type": "", - "value": "tx does not exist" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11752:6:1", - "nodeType": "YulIdentifier", - "src": "11752:6:1" - }, - "nativeSrc": "11752:43:1", - "nodeType": "YulFunctionCall", - "src": "11752:43:1" - }, - "nativeSrc": "11752:43:1", - "nodeType": "YulExpressionStatement", - "src": "11752:43:1" - } - ] - }, - "name": "store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251", - "nativeSrc": "11635:167:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "11733:6:1", - "nodeType": "YulTypedName", - "src": "11733:6:1", - "type": "" - } - ], - "src": "11635:167:1" - }, - { - "body": { - "nativeSrc": "11954:220:1", - "nodeType": "YulBlock", - "src": "11954:220:1", - "statements": [ - { - "nativeSrc": "11964:74:1", - "nodeType": "YulAssignment", - "src": "11964:74:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "12030:3:1", - "nodeType": "YulIdentifier", - "src": "12030:3:1" - }, - { - "kind": "number", - "nativeSrc": "12035:2:1", - "nodeType": "YulLiteral", - "src": "12035:2:1", - "type": "", - "value": "17" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "11971:58:1", - "nodeType": "YulIdentifier", - "src": "11971:58:1" - }, - "nativeSrc": "11971:67:1", - "nodeType": "YulFunctionCall", - "src": "11971:67:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "11964:3:1", - "nodeType": "YulIdentifier", - "src": "11964:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "12136:3:1", - "nodeType": "YulIdentifier", - "src": "12136:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251", - "nativeSrc": "12047:88:1", - "nodeType": "YulIdentifier", - "src": "12047:88:1" - }, - "nativeSrc": "12047:93:1", - "nodeType": "YulFunctionCall", - "src": "12047:93:1" - }, - "nativeSrc": "12047:93:1", - "nodeType": "YulExpressionStatement", - "src": "12047:93:1" - }, - { - "nativeSrc": "12149:19:1", - "nodeType": "YulAssignment", - "src": "12149:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "12160:3:1", - "nodeType": "YulIdentifier", - "src": "12160:3:1" - }, - { - "kind": "number", - "nativeSrc": "12165:2:1", - "nodeType": "YulLiteral", - "src": "12165:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12156:3:1", - "nodeType": "YulIdentifier", - "src": "12156:3:1" - }, - "nativeSrc": "12156:12:1", - "nodeType": "YulFunctionCall", - "src": "12156:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "12149:3:1", - "nodeType": "YulIdentifier", - "src": "12149:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack", - "nativeSrc": "11808:366:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "11942:3:1", - "nodeType": "YulTypedName", - "src": "11942:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "11950:3:1", - "nodeType": "YulTypedName", - "src": "11950:3:1", - "type": "" - } - ], - "src": "11808:366:1" - }, - { - "body": { - "nativeSrc": "12351:248:1", - "nodeType": "YulBlock", - "src": "12351:248:1", - "statements": [ - { - "nativeSrc": "12361:26:1", - "nodeType": "YulAssignment", - "src": "12361:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12373:9:1", - "nodeType": "YulIdentifier", - "src": "12373:9:1" - }, - { - "kind": "number", - "nativeSrc": "12384:2:1", - "nodeType": "YulLiteral", - "src": "12384:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12369:3:1", - "nodeType": "YulIdentifier", - "src": "12369:3:1" - }, - "nativeSrc": "12369:18:1", - "nodeType": "YulFunctionCall", - "src": "12369:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "12361:4:1", - "nodeType": "YulIdentifier", - "src": "12361:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12408:9:1", - "nodeType": "YulIdentifier", - "src": "12408:9:1" - }, - { - "kind": "number", - "nativeSrc": "12419:1:1", - "nodeType": "YulLiteral", - "src": "12419:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12404:3:1", - "nodeType": "YulIdentifier", - "src": "12404:3:1" - }, - "nativeSrc": "12404:17:1", - "nodeType": "YulFunctionCall", - "src": "12404:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "12427:4:1", - "nodeType": "YulIdentifier", - "src": "12427:4:1" - }, - { - "name": "headStart", - "nativeSrc": "12433:9:1", - "nodeType": "YulIdentifier", - "src": "12433:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "12423:3:1", - "nodeType": "YulIdentifier", - "src": "12423:3:1" - }, - "nativeSrc": "12423:20:1", - "nodeType": "YulFunctionCall", - "src": "12423:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12397:6:1", - "nodeType": "YulIdentifier", - "src": "12397:6:1" - }, - "nativeSrc": "12397:47:1", - "nodeType": "YulFunctionCall", - "src": "12397:47:1" - }, - "nativeSrc": "12397:47:1", - "nodeType": "YulExpressionStatement", - "src": "12397:47:1" - }, - { - "nativeSrc": "12453:139:1", - "nodeType": "YulAssignment", - "src": "12453:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "12587:4:1", - "nodeType": "YulIdentifier", - "src": "12587:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack", - "nativeSrc": "12461:124:1", - "nodeType": "YulIdentifier", - "src": "12461:124:1" - }, - "nativeSrc": "12461:131:1", - "nodeType": "YulFunctionCall", - "src": "12461:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "12453:4:1", - "nodeType": "YulIdentifier", - "src": "12453:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "12180:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "12331:9:1", - "nodeType": "YulTypedName", - "src": "12331:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "12346:4:1", - "nodeType": "YulTypedName", - "src": "12346:4:1", - "type": "" - } - ], - "src": "12180:419:1" - }, - { - "body": { - "nativeSrc": "12633:152:1", - "nodeType": "YulBlock", - "src": "12633:152:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "12650:1:1", - "nodeType": "YulLiteral", - "src": "12650:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "12653:77:1", - "nodeType": "YulLiteral", - "src": "12653:77:1", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12643:6:1", - "nodeType": "YulIdentifier", - "src": "12643:6:1" - }, - "nativeSrc": "12643:88:1", - "nodeType": "YulFunctionCall", - "src": "12643:88:1" - }, - "nativeSrc": "12643:88:1", - "nodeType": "YulExpressionStatement", - "src": "12643:88:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "12747:1:1", - "nodeType": "YulLiteral", - "src": "12747:1:1", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "12750:4:1", - "nodeType": "YulLiteral", - "src": "12750:4:1", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12740:6:1", - "nodeType": "YulIdentifier", - "src": "12740:6:1" - }, - "nativeSrc": "12740:15:1", - "nodeType": "YulFunctionCall", - "src": "12740:15:1" - }, - "nativeSrc": "12740:15:1", - "nodeType": "YulExpressionStatement", - "src": "12740:15:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "12771:1:1", - "nodeType": "YulLiteral", - "src": "12771:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "12774:4:1", - "nodeType": "YulLiteral", - "src": "12774:4:1", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "12764:6:1", - "nodeType": "YulIdentifier", - "src": "12764:6:1" - }, - "nativeSrc": "12764:15:1", - "nodeType": "YulFunctionCall", - "src": "12764:15:1" - }, - "nativeSrc": "12764:15:1", - "nodeType": "YulExpressionStatement", - "src": "12764:15:1" - } - ] - }, - "name": "panic_error_0x32", - "nativeSrc": "12605:180:1", - "nodeType": "YulFunctionDefinition", - "src": "12605:180:1" - }, - { - "body": { - "nativeSrc": "12897:64:1", - "nodeType": "YulBlock", - "src": "12897:64:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "12919:6:1", - "nodeType": "YulIdentifier", - "src": "12919:6:1" - }, - { - "kind": "number", - "nativeSrc": "12927:1:1", - "nodeType": "YulLiteral", - "src": "12927:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12915:3:1", - "nodeType": "YulIdentifier", - "src": "12915:3:1" - }, - "nativeSrc": "12915:14:1", - "nodeType": "YulFunctionCall", - "src": "12915:14:1" - }, - { - "hexValue": "747820616c726561647920636f6e6669726d6564", - "kind": "string", - "nativeSrc": "12931:22:1", - "nodeType": "YulLiteral", - "src": "12931:22:1", - "type": "", - "value": "tx already confirmed" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12908:6:1", - "nodeType": "YulIdentifier", - "src": "12908:6:1" - }, - "nativeSrc": "12908:46:1", - "nodeType": "YulFunctionCall", - "src": "12908:46:1" - }, - "nativeSrc": "12908:46:1", - "nodeType": "YulExpressionStatement", - "src": "12908:46:1" - } - ] - }, - "name": "store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", - "nativeSrc": "12791:170:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "12889:6:1", - "nodeType": "YulTypedName", - "src": "12889:6:1", - "type": "" - } - ], - "src": "12791:170:1" - }, - { - "body": { - "nativeSrc": "13113:220:1", - "nodeType": "YulBlock", - "src": "13113:220:1", - "statements": [ - { - "nativeSrc": "13123:74:1", - "nodeType": "YulAssignment", - "src": "13123:74:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "13189:3:1", - "nodeType": "YulIdentifier", - "src": "13189:3:1" - }, - { - "kind": "number", - "nativeSrc": "13194:2:1", - "nodeType": "YulLiteral", - "src": "13194:2:1", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "13130:58:1", - "nodeType": "YulIdentifier", - "src": "13130:58:1" - }, - "nativeSrc": "13130:67:1", - "nodeType": "YulFunctionCall", - "src": "13130:67:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "13123:3:1", - "nodeType": "YulIdentifier", - "src": "13123:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "13295:3:1", - "nodeType": "YulIdentifier", - "src": "13295:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626", - "nativeSrc": "13206:88:1", - "nodeType": "YulIdentifier", - "src": "13206:88:1" - }, - "nativeSrc": "13206:93:1", - "nodeType": "YulFunctionCall", - "src": "13206:93:1" - }, - "nativeSrc": "13206:93:1", - "nodeType": "YulExpressionStatement", - "src": "13206:93:1" - }, - { - "nativeSrc": "13308:19:1", - "nodeType": "YulAssignment", - "src": "13308:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "13319:3:1", - "nodeType": "YulIdentifier", - "src": "13319:3:1" - }, - { - "kind": "number", - "nativeSrc": "13324:2:1", - "nodeType": "YulLiteral", - "src": "13324:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13315:3:1", - "nodeType": "YulIdentifier", - "src": "13315:3:1" - }, - "nativeSrc": "13315:12:1", - "nodeType": "YulFunctionCall", - "src": "13315:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "13308:3:1", - "nodeType": "YulIdentifier", - "src": "13308:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack", - "nativeSrc": "12967:366:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "13101:3:1", - "nodeType": "YulTypedName", - "src": "13101:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "13109:3:1", - "nodeType": "YulTypedName", - "src": "13109:3:1", - "type": "" - } - ], - "src": "12967:366:1" - }, - { - "body": { - "nativeSrc": "13510:248:1", - "nodeType": "YulBlock", - "src": "13510:248:1", - "statements": [ - { - "nativeSrc": "13520:26:1", - "nodeType": "YulAssignment", - "src": "13520:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13532:9:1", - "nodeType": "YulIdentifier", - "src": "13532:9:1" - }, - { - "kind": "number", - "nativeSrc": "13543:2:1", - "nodeType": "YulLiteral", - "src": "13543:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13528:3:1", - "nodeType": "YulIdentifier", - "src": "13528:3:1" - }, - "nativeSrc": "13528:18:1", - "nodeType": "YulFunctionCall", - "src": "13528:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "13520:4:1", - "nodeType": "YulIdentifier", - "src": "13520:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13567:9:1", - "nodeType": "YulIdentifier", - "src": "13567:9:1" - }, - { - "kind": "number", - "nativeSrc": "13578:1:1", - "nodeType": "YulLiteral", - "src": "13578:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13563:3:1", - "nodeType": "YulIdentifier", - "src": "13563:3:1" - }, - "nativeSrc": "13563:17:1", - "nodeType": "YulFunctionCall", - "src": "13563:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "13586:4:1", - "nodeType": "YulIdentifier", - "src": "13586:4:1" - }, - { - "name": "headStart", - "nativeSrc": "13592:9:1", - "nodeType": "YulIdentifier", - "src": "13592:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "13582:3:1", - "nodeType": "YulIdentifier", - "src": "13582:3:1" - }, - "nativeSrc": "13582:20:1", - "nodeType": "YulFunctionCall", - "src": "13582:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13556:6:1", - "nodeType": "YulIdentifier", - "src": "13556:6:1" - }, - "nativeSrc": "13556:47:1", - "nodeType": "YulFunctionCall", - "src": "13556:47:1" - }, - "nativeSrc": "13556:47:1", - "nodeType": "YulExpressionStatement", - "src": "13556:47:1" - }, - { - "nativeSrc": "13612:139:1", - "nodeType": "YulAssignment", - "src": "13612:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "13746:4:1", - "nodeType": "YulIdentifier", - "src": "13746:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack", - "nativeSrc": "13620:124:1", - "nodeType": "YulIdentifier", - "src": "13620:124:1" - }, - "nativeSrc": "13620:131:1", - "nodeType": "YulFunctionCall", - "src": "13620:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "13612:4:1", - "nodeType": "YulIdentifier", - "src": "13612:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "13339:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13490:9:1", - "nodeType": "YulTypedName", - "src": "13490:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "13505:4:1", - "nodeType": "YulTypedName", - "src": "13505:4:1", - "type": "" - } - ], - "src": "13339:419:1" - }, - { - "body": { - "nativeSrc": "13870:60:1", - "nodeType": "YulBlock", - "src": "13870:60:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "13892:6:1", - "nodeType": "YulIdentifier", - "src": "13892:6:1" - }, - { - "kind": "number", - "nativeSrc": "13900:1:1", - "nodeType": "YulLiteral", - "src": "13900:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13888:3:1", - "nodeType": "YulIdentifier", - "src": "13888:3:1" - }, - "nativeSrc": "13888:14:1", - "nodeType": "YulFunctionCall", - "src": "13888:14:1" - }, - { - "hexValue": "7478206e6f7420636f6e6669726d6564", - "kind": "string", - "nativeSrc": "13904:18:1", - "nodeType": "YulLiteral", - "src": "13904:18:1", - "type": "", - "value": "tx not confirmed" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13881:6:1", - "nodeType": "YulIdentifier", - "src": "13881:6:1" - }, - "nativeSrc": "13881:42:1", - "nodeType": "YulFunctionCall", - "src": "13881:42:1" - }, - "nativeSrc": "13881:42:1", - "nodeType": "YulExpressionStatement", - "src": "13881:42:1" - } - ] - }, - "name": "store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae", - "nativeSrc": "13764:166:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "13862:6:1", - "nodeType": "YulTypedName", - "src": "13862:6:1", - "type": "" - } - ], - "src": "13764:166:1" - }, - { - "body": { - "nativeSrc": "14082:220:1", - "nodeType": "YulBlock", - "src": "14082:220:1", - "statements": [ - { - "nativeSrc": "14092:74:1", - "nodeType": "YulAssignment", - "src": "14092:74:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "14158:3:1", - "nodeType": "YulIdentifier", - "src": "14158:3:1" - }, - { - "kind": "number", - "nativeSrc": "14163:2:1", - "nodeType": "YulLiteral", - "src": "14163:2:1", - "type": "", - "value": "16" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "14099:58:1", - "nodeType": "YulIdentifier", - "src": "14099:58:1" - }, - "nativeSrc": "14099:67:1", - "nodeType": "YulFunctionCall", - "src": "14099:67:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "14092:3:1", - "nodeType": "YulIdentifier", - "src": "14092:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "14264:3:1", - "nodeType": "YulIdentifier", - "src": "14264:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae", - "nativeSrc": "14175:88:1", - "nodeType": "YulIdentifier", - "src": "14175:88:1" - }, - "nativeSrc": "14175:93:1", - "nodeType": "YulFunctionCall", - "src": "14175:93:1" - }, - "nativeSrc": "14175:93:1", - "nodeType": "YulExpressionStatement", - "src": "14175:93:1" - }, - { - "nativeSrc": "14277:19:1", - "nodeType": "YulAssignment", - "src": "14277:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "14288:3:1", - "nodeType": "YulIdentifier", - "src": "14288:3:1" - }, - { - "kind": "number", - "nativeSrc": "14293:2:1", - "nodeType": "YulLiteral", - "src": "14293:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14284:3:1", - "nodeType": "YulIdentifier", - "src": "14284:3:1" - }, - "nativeSrc": "14284:12:1", - "nodeType": "YulFunctionCall", - "src": "14284:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "14277:3:1", - "nodeType": "YulIdentifier", - "src": "14277:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack", - "nativeSrc": "13936:366:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "14070:3:1", - "nodeType": "YulTypedName", - "src": "14070:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "14078:3:1", - "nodeType": "YulTypedName", - "src": "14078:3:1", - "type": "" - } - ], - "src": "13936:366:1" - }, - { - "body": { - "nativeSrc": "14479:248:1", - "nodeType": "YulBlock", - "src": "14479:248:1", - "statements": [ - { - "nativeSrc": "14489:26:1", - "nodeType": "YulAssignment", - "src": "14489:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14501:9:1", - "nodeType": "YulIdentifier", - "src": "14501:9:1" - }, - { - "kind": "number", - "nativeSrc": "14512:2:1", - "nodeType": "YulLiteral", - "src": "14512:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14497:3:1", - "nodeType": "YulIdentifier", - "src": "14497:3:1" - }, - "nativeSrc": "14497:18:1", - "nodeType": "YulFunctionCall", - "src": "14497:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "14489:4:1", - "nodeType": "YulIdentifier", - "src": "14489:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14536:9:1", - "nodeType": "YulIdentifier", - "src": "14536:9:1" - }, - { - "kind": "number", - "nativeSrc": "14547:1:1", - "nodeType": "YulLiteral", - "src": "14547:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14532:3:1", - "nodeType": "YulIdentifier", - "src": "14532:3:1" - }, - "nativeSrc": "14532:17:1", - "nodeType": "YulFunctionCall", - "src": "14532:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "14555:4:1", - "nodeType": "YulIdentifier", - "src": "14555:4:1" - }, - { - "name": "headStart", - "nativeSrc": "14561:9:1", - "nodeType": "YulIdentifier", - "src": "14561:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "14551:3:1", - "nodeType": "YulIdentifier", - "src": "14551:3:1" - }, - "nativeSrc": "14551:20:1", - "nodeType": "YulFunctionCall", - "src": "14551:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14525:6:1", - "nodeType": "YulIdentifier", - "src": "14525:6:1" - }, - "nativeSrc": "14525:47:1", - "nodeType": "YulFunctionCall", - "src": "14525:47:1" - }, - "nativeSrc": "14525:47:1", - "nodeType": "YulExpressionStatement", - "src": "14525:47:1" - }, - { - "nativeSrc": "14581:139:1", - "nodeType": "YulAssignment", - "src": "14581:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "14715:4:1", - "nodeType": "YulIdentifier", - "src": "14715:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack", - "nativeSrc": "14589:124:1", - "nodeType": "YulIdentifier", - "src": "14589:124:1" - }, - "nativeSrc": "14589:131:1", - "nodeType": "YulFunctionCall", - "src": "14589:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "14581:4:1", - "nodeType": "YulIdentifier", - "src": "14581:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "14308:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "14459:9:1", - "nodeType": "YulTypedName", - "src": "14459:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "14474:4:1", - "nodeType": "YulTypedName", - "src": "14474:4:1", - "type": "" - } - ], - "src": "14308:419:1" - }, - { - "body": { - "nativeSrc": "14761:152:1", - "nodeType": "YulBlock", - "src": "14761:152:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14778:1:1", - "nodeType": "YulLiteral", - "src": "14778:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "14781:77:1", - "nodeType": "YulLiteral", - "src": "14781:77:1", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14771:6:1", - "nodeType": "YulIdentifier", - "src": "14771:6:1" - }, - "nativeSrc": "14771:88:1", - "nodeType": "YulFunctionCall", - "src": "14771:88:1" - }, - "nativeSrc": "14771:88:1", - "nodeType": "YulExpressionStatement", - "src": "14771:88:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14875:1:1", - "nodeType": "YulLiteral", - "src": "14875:1:1", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "14878:4:1", - "nodeType": "YulLiteral", - "src": "14878:4:1", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14868:6:1", - "nodeType": "YulIdentifier", - "src": "14868:6:1" - }, - "nativeSrc": "14868:15:1", - "nodeType": "YulFunctionCall", - "src": "14868:15:1" - }, - "nativeSrc": "14868:15:1", - "nodeType": "YulExpressionStatement", - "src": "14868:15:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14899:1:1", - "nodeType": "YulLiteral", - "src": "14899:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "14902:4:1", - "nodeType": "YulLiteral", - "src": "14902:4:1", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "14892:6:1", - "nodeType": "YulIdentifier", - "src": "14892:6:1" - }, - "nativeSrc": "14892:15:1", - "nodeType": "YulFunctionCall", - "src": "14892:15:1" - }, - "nativeSrc": "14892:15:1", - "nodeType": "YulExpressionStatement", - "src": "14892:15:1" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "14733:180:1", - "nodeType": "YulFunctionDefinition", - "src": "14733:180:1" - }, - { - "body": { - "nativeSrc": "14964:149:1", - "nodeType": "YulBlock", - "src": "14964:149:1", - "statements": [ - { - "nativeSrc": "14974:25:1", - "nodeType": "YulAssignment", - "src": "14974:25:1", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "14997:1:1", - "nodeType": "YulIdentifier", - "src": "14997:1:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "14979:17:1", - "nodeType": "YulIdentifier", - "src": "14979:17:1" - }, - "nativeSrc": "14979:20:1", - "nodeType": "YulFunctionCall", - "src": "14979:20:1" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "14974:1:1", - "nodeType": "YulIdentifier", - "src": "14974:1:1" - } - ] - }, - { - "nativeSrc": "15008:25:1", - "nodeType": "YulAssignment", - "src": "15008:25:1", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "15031:1:1", - "nodeType": "YulIdentifier", - "src": "15031:1:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "15013:17:1", - "nodeType": "YulIdentifier", - "src": "15013:17:1" - }, - "nativeSrc": "15013:20:1", - "nodeType": "YulFunctionCall", - "src": "15013:20:1" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "15008:1:1", - "nodeType": "YulIdentifier", - "src": "15008:1:1" - } - ] - }, - { - "nativeSrc": "15042:17:1", - "nodeType": "YulAssignment", - "src": "15042:17:1", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "15054:1:1", - "nodeType": "YulIdentifier", - "src": "15054:1:1" - }, - { - "name": "y", - "nativeSrc": "15057:1:1", - "nodeType": "YulIdentifier", - "src": "15057:1:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "15050:3:1", - "nodeType": "YulIdentifier", - "src": "15050:3:1" - }, - "nativeSrc": "15050:9:1", - "nodeType": "YulFunctionCall", - "src": "15050:9:1" - }, - "variableNames": [ - { - "name": "diff", - "nativeSrc": "15042:4:1", - "nodeType": "YulIdentifier", - "src": "15042:4:1" - } - ] - }, - { - "body": { - "nativeSrc": "15084:22:1", - "nodeType": "YulBlock", - "src": "15084:22:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "15086:16:1", - "nodeType": "YulIdentifier", - "src": "15086:16:1" - }, - "nativeSrc": "15086:18:1", - "nodeType": "YulFunctionCall", - "src": "15086:18:1" - }, - "nativeSrc": "15086:18:1", - "nodeType": "YulExpressionStatement", - "src": "15086:18:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "diff", - "nativeSrc": "15075:4:1", - "nodeType": "YulIdentifier", - "src": "15075:4:1" - }, - { - "name": "x", - "nativeSrc": "15081:1:1", - "nodeType": "YulIdentifier", - "src": "15081:1:1" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "15072:2:1", - "nodeType": "YulIdentifier", - "src": "15072:2:1" - }, - "nativeSrc": "15072:11:1", - "nodeType": "YulFunctionCall", - "src": "15072:11:1" - }, - "nativeSrc": "15069:37:1", - "nodeType": "YulIf", - "src": "15069:37:1" - } - ] - }, - "name": "checked_sub_t_uint256", - "nativeSrc": "14919:194:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "14950:1:1", - "nodeType": "YulTypedName", - "src": "14950:1:1", - "type": "" - }, - { - "name": "y", - "nativeSrc": "14953:1:1", - "nodeType": "YulTypedName", - "src": "14953:1:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "diff", - "nativeSrc": "14959:4:1", - "nodeType": "YulTypedName", - "src": "14959:4:1", - "type": "" - } - ], - "src": "14919:194:1" - }, - { - "body": { - "nativeSrc": "15147:152:1", - "nodeType": "YulBlock", - "src": "15147:152:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15164:1:1", - "nodeType": "YulLiteral", - "src": "15164:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "15167:77:1", - "nodeType": "YulLiteral", - "src": "15167:77:1", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15157:6:1", - "nodeType": "YulIdentifier", - "src": "15157:6:1" - }, - "nativeSrc": "15157:88:1", - "nodeType": "YulFunctionCall", - "src": "15157:88:1" - }, - "nativeSrc": "15157:88:1", - "nodeType": "YulExpressionStatement", - "src": "15157:88:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15261:1:1", - "nodeType": "YulLiteral", - "src": "15261:1:1", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "15264:4:1", - "nodeType": "YulLiteral", - "src": "15264:4:1", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15254:6:1", - "nodeType": "YulIdentifier", - "src": "15254:6:1" - }, - "nativeSrc": "15254:15:1", - "nodeType": "YulFunctionCall", - "src": "15254:15:1" - }, - "nativeSrc": "15254:15:1", - "nodeType": "YulExpressionStatement", - "src": "15254:15:1" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15285:1:1", - "nodeType": "YulLiteral", - "src": "15285:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "15288:4:1", - "nodeType": "YulLiteral", - "src": "15288:4:1", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "15278:6:1", - "nodeType": "YulIdentifier", - "src": "15278:6:1" - }, - "nativeSrc": "15278:15:1", - "nodeType": "YulFunctionCall", - "src": "15278:15:1" - }, - "nativeSrc": "15278:15:1", - "nodeType": "YulExpressionStatement", - "src": "15278:15:1" - } - ] - }, - "name": "panic_error_0x22", - "nativeSrc": "15119:180:1", - "nodeType": "YulFunctionDefinition", - "src": "15119:180:1" - }, - { - "body": { - "nativeSrc": "15356:269:1", - "nodeType": "YulBlock", - "src": "15356:269:1", - "statements": [ - { - "nativeSrc": "15366:22:1", - "nodeType": "YulAssignment", - "src": "15366:22:1", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "15380:4:1", - "nodeType": "YulIdentifier", - "src": "15380:4:1" - }, - { - "kind": "number", - "nativeSrc": "15386:1:1", - "nodeType": "YulLiteral", - "src": "15386:1:1", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "15376:3:1", - "nodeType": "YulIdentifier", - "src": "15376:3:1" - }, - "nativeSrc": "15376:12:1", - "nodeType": "YulFunctionCall", - "src": "15376:12:1" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "15366:6:1", - "nodeType": "YulIdentifier", - "src": "15366:6:1" - } - ] - }, - { - "nativeSrc": "15397:38:1", - "nodeType": "YulVariableDeclaration", - "src": "15397:38:1", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "15427:4:1", - "nodeType": "YulIdentifier", - "src": "15427:4:1" - }, - { - "kind": "number", - "nativeSrc": "15433:1:1", - "nodeType": "YulLiteral", - "src": "15433:1:1", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "15423:3:1", - "nodeType": "YulIdentifier", - "src": "15423:3:1" - }, - "nativeSrc": "15423:12:1", - "nodeType": "YulFunctionCall", - "src": "15423:12:1" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "15401:18:1", - "nodeType": "YulTypedName", - "src": "15401:18:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "15474:51:1", - "nodeType": "YulBlock", - "src": "15474:51:1", - "statements": [ - { - "nativeSrc": "15488:27:1", - "nodeType": "YulAssignment", - "src": "15488:27:1", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "15502:6:1", - "nodeType": "YulIdentifier", - "src": "15502:6:1" - }, - { - "kind": "number", - "nativeSrc": "15510:4:1", - "nodeType": "YulLiteral", - "src": "15510:4:1", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "15498:3:1", - "nodeType": "YulIdentifier", - "src": "15498:3:1" - }, - "nativeSrc": "15498:17:1", - "nodeType": "YulFunctionCall", - "src": "15498:17:1" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "15488:6:1", - "nodeType": "YulIdentifier", - "src": "15488:6:1" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "15454:18:1", - "nodeType": "YulIdentifier", - "src": "15454:18:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "15447:6:1", - "nodeType": "YulIdentifier", - "src": "15447:6:1" - }, - "nativeSrc": "15447:26:1", - "nodeType": "YulFunctionCall", - "src": "15447:26:1" - }, - "nativeSrc": "15444:81:1", - "nodeType": "YulIf", - "src": "15444:81:1" - }, - { - "body": { - "nativeSrc": "15577:42:1", - "nodeType": "YulBlock", - "src": "15577:42:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nativeSrc": "15591:16:1", - "nodeType": "YulIdentifier", - "src": "15591:16:1" - }, - "nativeSrc": "15591:18:1", - "nodeType": "YulFunctionCall", - "src": "15591:18:1" - }, - "nativeSrc": "15591:18:1", - "nodeType": "YulExpressionStatement", - "src": "15591:18:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "15541:18:1", - "nodeType": "YulIdentifier", - "src": "15541:18:1" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "15564:6:1", - "nodeType": "YulIdentifier", - "src": "15564:6:1" - }, - { - "kind": "number", - "nativeSrc": "15572:2:1", - "nodeType": "YulLiteral", - "src": "15572:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "15561:2:1", - "nodeType": "YulIdentifier", - "src": "15561:2:1" - }, - "nativeSrc": "15561:14:1", - "nodeType": "YulFunctionCall", - "src": "15561:14:1" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "15538:2:1", - "nodeType": "YulIdentifier", - "src": "15538:2:1" - }, - "nativeSrc": "15538:38:1", - "nodeType": "YulFunctionCall", - "src": "15538:38:1" - }, - "nativeSrc": "15535:84:1", - "nodeType": "YulIf", - "src": "15535:84:1" - } - ] - }, - "name": "extract_byte_array_length", - "nativeSrc": "15305:320:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "15340:4:1", - "nodeType": "YulTypedName", - "src": "15340:4:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "15349:6:1", - "nodeType": "YulTypedName", - "src": "15349:6:1", - "type": "" - } - ], - "src": "15305:320:1" - }, - { - "body": { - "nativeSrc": "15675:147:1", - "nodeType": "YulBlock", - "src": "15675:147:1", - "statements": [ - { - "nativeSrc": "15685:25:1", - "nodeType": "YulAssignment", - "src": "15685:25:1", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "15708:1:1", - "nodeType": "YulIdentifier", - "src": "15708:1:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "15690:17:1", - "nodeType": "YulIdentifier", - "src": "15690:17:1" - }, - "nativeSrc": "15690:20:1", - "nodeType": "YulFunctionCall", - "src": "15690:20:1" - }, - "variableNames": [ - { - "name": "x", - "nativeSrc": "15685:1:1", - "nodeType": "YulIdentifier", - "src": "15685:1:1" - } - ] - }, - { - "nativeSrc": "15719:25:1", - "nodeType": "YulAssignment", - "src": "15719:25:1", - "value": { - "arguments": [ - { - "name": "y", - "nativeSrc": "15742:1:1", - "nodeType": "YulIdentifier", - "src": "15742:1:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "15724:17:1", - "nodeType": "YulIdentifier", - "src": "15724:17:1" - }, - "nativeSrc": "15724:20:1", - "nodeType": "YulFunctionCall", - "src": "15724:20:1" - }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "15719:1:1", - "nodeType": "YulIdentifier", - "src": "15719:1:1" - } - ] - }, - { - "nativeSrc": "15753:16:1", - "nodeType": "YulAssignment", - "src": "15753:16:1", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "15764:1:1", - "nodeType": "YulIdentifier", - "src": "15764:1:1" - }, - { - "name": "y", - "nativeSrc": "15767:1:1", - "nodeType": "YulIdentifier", - "src": "15767:1:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15760:3:1", - "nodeType": "YulIdentifier", - "src": "15760:3:1" - }, - "nativeSrc": "15760:9:1", - "nodeType": "YulFunctionCall", - "src": "15760:9:1" - }, - "variableNames": [ - { - "name": "sum", - "nativeSrc": "15753:3:1", - "nodeType": "YulIdentifier", - "src": "15753:3:1" - } - ] - }, - { - "body": { - "nativeSrc": "15793:22:1", - "nodeType": "YulBlock", - "src": "15793:22:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "15795:16:1", - "nodeType": "YulIdentifier", - "src": "15795:16:1" - }, - "nativeSrc": "15795:18:1", - "nodeType": "YulFunctionCall", - "src": "15795:18:1" - }, - "nativeSrc": "15795:18:1", - "nodeType": "YulExpressionStatement", - "src": "15795:18:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "x", - "nativeSrc": "15785:1:1", - "nodeType": "YulIdentifier", - "src": "15785:1:1" - }, - { - "name": "sum", - "nativeSrc": "15788:3:1", - "nodeType": "YulIdentifier", - "src": "15788:3:1" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "15782:2:1", - "nodeType": "YulIdentifier", - "src": "15782:2:1" - }, - "nativeSrc": "15782:10:1", - "nodeType": "YulFunctionCall", - "src": "15782:10:1" - }, - "nativeSrc": "15779:36:1", - "nodeType": "YulIf", - "src": "15779:36:1" - } - ] - }, - "name": "checked_add_t_uint256", - "nativeSrc": "15631:191:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "15662:1:1", - "nodeType": "YulTypedName", - "src": "15662:1:1", - "type": "" - }, - { - "name": "y", - "nativeSrc": "15665:1:1", - "nodeType": "YulTypedName", - "src": "15665:1:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nativeSrc": "15671:3:1", - "nodeType": "YulTypedName", - "src": "15671:3:1", - "type": "" - } - ], - "src": "15631:191:1" - }, - { - "body": { - "nativeSrc": "15881:87:1", - "nodeType": "YulBlock", - "src": "15881:87:1", - "statements": [ - { - "nativeSrc": "15891:11:1", - "nodeType": "YulAssignment", - "src": "15891:11:1", - "value": { - "name": "ptr", - "nativeSrc": "15899:3:1", - "nodeType": "YulIdentifier", - "src": "15899:3:1" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "15891:4:1", - "nodeType": "YulIdentifier", - "src": "15891:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15919:1:1", - "nodeType": "YulLiteral", - "src": "15919:1:1", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nativeSrc": "15922:3:1", - "nodeType": "YulIdentifier", - "src": "15922:3:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15912:6:1", - "nodeType": "YulIdentifier", - "src": "15912:6:1" - }, - "nativeSrc": "15912:14:1", - "nodeType": "YulFunctionCall", - "src": "15912:14:1" - }, - "nativeSrc": "15912:14:1", - "nodeType": "YulExpressionStatement", - "src": "15912:14:1" - }, - { - "nativeSrc": "15935:26:1", - "nodeType": "YulAssignment", - "src": "15935:26:1", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15953:1:1", - "nodeType": "YulLiteral", - "src": "15953:1:1", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "15956:4:1", - "nodeType": "YulLiteral", - "src": "15956:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nativeSrc": "15943:9:1", - "nodeType": "YulIdentifier", - "src": "15943:9:1" - }, - "nativeSrc": "15943:18:1", - "nodeType": "YulFunctionCall", - "src": "15943:18:1" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "15935:4:1", - "nodeType": "YulIdentifier", - "src": "15935:4:1" - } - ] - } - ] - }, - "name": "array_dataslot_t_bytes_storage", - "nativeSrc": "15828:140:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nativeSrc": "15868:3:1", - "nodeType": "YulTypedName", - "src": "15868:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nativeSrc": "15876:4:1", - "nodeType": "YulTypedName", - "src": "15876:4:1", - "type": "" - } - ], - "src": "15828:140:1" - }, - { - "body": { - "nativeSrc": "16018:49:1", - "nodeType": "YulBlock", - "src": "16018:49:1", - "statements": [ - { - "nativeSrc": "16028:33:1", - "nodeType": "YulAssignment", - "src": "16028:33:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "16046:5:1", - "nodeType": "YulIdentifier", - "src": "16046:5:1" - }, - { - "kind": "number", - "nativeSrc": "16053:2:1", - "nodeType": "YulLiteral", - "src": "16053:2:1", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16042:3:1", - "nodeType": "YulIdentifier", - "src": "16042:3:1" - }, - "nativeSrc": "16042:14:1", - "nodeType": "YulFunctionCall", - "src": "16042:14:1" - }, - { - "kind": "number", - "nativeSrc": "16058:2:1", - "nodeType": "YulLiteral", - "src": "16058:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "16038:3:1", - "nodeType": "YulIdentifier", - "src": "16038:3:1" - }, - "nativeSrc": "16038:23:1", - "nodeType": "YulFunctionCall", - "src": "16038:23:1" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "16028:6:1", - "nodeType": "YulIdentifier", - "src": "16028:6:1" - } - ] - } - ] - }, - "name": "divide_by_32_ceil", - "nativeSrc": "15974:93:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "16001:5:1", - "nodeType": "YulTypedName", - "src": "16001:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "16011:6:1", - "nodeType": "YulTypedName", - "src": "16011:6:1", - "type": "" - } - ], - "src": "15974:93:1" - }, - { - "body": { - "nativeSrc": "16126:54:1", - "nodeType": "YulBlock", - "src": "16126:54:1", - "statements": [ - { - "nativeSrc": "16136:37:1", - "nodeType": "YulAssignment", - "src": "16136:37:1", - "value": { - "arguments": [ - { - "name": "bits", - "nativeSrc": "16161:4:1", - "nodeType": "YulIdentifier", - "src": "16161:4:1" - }, - { - "name": "value", - "nativeSrc": "16167:5:1", - "nodeType": "YulIdentifier", - "src": "16167:5:1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "16157:3:1", - "nodeType": "YulIdentifier", - "src": "16157:3:1" - }, - "nativeSrc": "16157:16:1", - "nodeType": "YulFunctionCall", - "src": "16157:16:1" - }, - "variableNames": [ - { - "name": "newValue", - "nativeSrc": "16136:8:1", - "nodeType": "YulIdentifier", - "src": "16136:8:1" - } - ] - } - ] - }, - "name": "shift_left_dynamic", - "nativeSrc": "16073:107:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "bits", - "nativeSrc": "16101:4:1", - "nodeType": "YulTypedName", - "src": "16101:4:1", - "type": "" - }, - { - "name": "value", - "nativeSrc": "16107:5:1", - "nodeType": "YulTypedName", - "src": "16107:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "newValue", - "nativeSrc": "16117:8:1", - "nodeType": "YulTypedName", - "src": "16117:8:1", - "type": "" - } - ], - "src": "16073:107:1" - }, - { - "body": { - "nativeSrc": "16262:317:1", - "nodeType": "YulBlock", - "src": "16262:317:1", - "statements": [ - { - "nativeSrc": "16272:35:1", - "nodeType": "YulVariableDeclaration", - "src": "16272:35:1", - "value": { - "arguments": [ - { - "name": "shiftBytes", - "nativeSrc": "16293:10:1", - "nodeType": "YulIdentifier", - "src": "16293:10:1" - }, - { - "kind": "number", - "nativeSrc": "16305:1:1", - "nodeType": "YulLiteral", - "src": "16305:1:1", - "type": "", - "value": "8" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "16289:3:1", - "nodeType": "YulIdentifier", - "src": "16289:3:1" - }, - "nativeSrc": "16289:18:1", - "nodeType": "YulFunctionCall", - "src": "16289:18:1" - }, - "variables": [ - { - "name": "shiftBits", - "nativeSrc": "16276:9:1", - "nodeType": "YulTypedName", - "src": "16276:9:1", - "type": "" - } - ] - }, - { - "nativeSrc": "16316:109:1", - "nodeType": "YulVariableDeclaration", - "src": "16316:109:1", - "value": { - "arguments": [ - { - "name": "shiftBits", - "nativeSrc": "16347:9:1", - "nodeType": "YulIdentifier", - "src": "16347:9:1" - }, - { - "kind": "number", - "nativeSrc": "16358:66:1", - "nodeType": "YulLiteral", - "src": "16358:66:1", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "16328:18:1", - "nodeType": "YulIdentifier", - "src": "16328:18:1" - }, - "nativeSrc": "16328:97:1", - "nodeType": "YulFunctionCall", - "src": "16328:97:1" - }, - "variables": [ - { - "name": "mask", - "nativeSrc": "16320:4:1", - "nodeType": "YulTypedName", - "src": "16320:4:1", - "type": "" - } - ] - }, - { - "nativeSrc": "16434:51:1", - "nodeType": "YulAssignment", - "src": "16434:51:1", - "value": { - "arguments": [ - { - "name": "shiftBits", - "nativeSrc": "16465:9:1", - "nodeType": "YulIdentifier", - "src": "16465:9:1" - }, - { - "name": "toInsert", - "nativeSrc": "16476:8:1", - "nodeType": "YulIdentifier", - "src": "16476:8:1" - } - ], - "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "16446:18:1", - "nodeType": "YulIdentifier", - "src": "16446:18:1" - }, - "nativeSrc": "16446:39:1", - "nodeType": "YulFunctionCall", - "src": "16446:39:1" - }, - "variableNames": [ - { - "name": "toInsert", - "nativeSrc": "16434:8:1", - "nodeType": "YulIdentifier", - "src": "16434:8:1" - } - ] - }, - { - "nativeSrc": "16494:30:1", - "nodeType": "YulAssignment", - "src": "16494:30:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "16507:5:1", - "nodeType": "YulIdentifier", - "src": "16507:5:1" - }, - { - "arguments": [ - { - "name": "mask", - "nativeSrc": "16518:4:1", - "nodeType": "YulIdentifier", - "src": "16518:4:1" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "16514:3:1", - "nodeType": "YulIdentifier", - "src": "16514:3:1" - }, - "nativeSrc": "16514:9:1", - "nodeType": "YulFunctionCall", - "src": "16514:9:1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "16503:3:1", - "nodeType": "YulIdentifier", - "src": "16503:3:1" - }, - "nativeSrc": "16503:21:1", - "nodeType": "YulFunctionCall", - "src": "16503:21:1" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "16494:5:1", - "nodeType": "YulIdentifier", - "src": "16494:5:1" - } - ] - }, - { - "nativeSrc": "16533:40:1", - "nodeType": "YulAssignment", - "src": "16533:40:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "16546:5:1", - "nodeType": "YulIdentifier", - "src": "16546:5:1" - }, - { - "arguments": [ - { - "name": "toInsert", - "nativeSrc": "16557:8:1", - "nodeType": "YulIdentifier", - "src": "16557:8:1" - }, - { - "name": "mask", - "nativeSrc": "16567:4:1", - "nodeType": "YulIdentifier", - "src": "16567:4:1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "16553:3:1", - "nodeType": "YulIdentifier", - "src": "16553:3:1" - }, - "nativeSrc": "16553:19:1", - "nodeType": "YulFunctionCall", - "src": "16553:19:1" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "16543:2:1", - "nodeType": "YulIdentifier", - "src": "16543:2:1" - }, - "nativeSrc": "16543:30:1", - "nodeType": "YulFunctionCall", - "src": "16543:30:1" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "16533:6:1", - "nodeType": "YulIdentifier", - "src": "16533:6:1" - } - ] - } - ] - }, - "name": "update_byte_slice_dynamic32", - "nativeSrc": "16186:393:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "16223:5:1", - "nodeType": "YulTypedName", - "src": "16223:5:1", - "type": "" - }, - { - "name": "shiftBytes", - "nativeSrc": "16230:10:1", - "nodeType": "YulTypedName", - "src": "16230:10:1", - "type": "" - }, - { - "name": "toInsert", - "nativeSrc": "16242:8:1", - "nodeType": "YulTypedName", - "src": "16242:8:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "16255:6:1", - "nodeType": "YulTypedName", - "src": "16255:6:1", - "type": "" - } - ], - "src": "16186:393:1" - }, - { - "body": { - "nativeSrc": "16617:28:1", - "nodeType": "YulBlock", - "src": "16617:28:1", - "statements": [ - { - "nativeSrc": "16627:12:1", - "nodeType": "YulAssignment", - "src": "16627:12:1", - "value": { - "name": "value", - "nativeSrc": "16634:5:1", - "nodeType": "YulIdentifier", - "src": "16634:5:1" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "16627:3:1", - "nodeType": "YulIdentifier", - "src": "16627:3:1" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "16585:60:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "16603:5:1", - "nodeType": "YulTypedName", - "src": "16603:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "16613:3:1", - "nodeType": "YulTypedName", - "src": "16613:3:1", - "type": "" - } - ], - "src": "16585:60:1" - }, - { - "body": { - "nativeSrc": "16711:82:1", - "nodeType": "YulBlock", - "src": "16711:82:1", - "statements": [ - { - "nativeSrc": "16721:66:1", - "nodeType": "YulAssignment", - "src": "16721:66:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "16779:5:1", - "nodeType": "YulIdentifier", - "src": "16779:5:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "16761:17:1", - "nodeType": "YulIdentifier", - "src": "16761:17:1" - }, - "nativeSrc": "16761:24:1", - "nodeType": "YulFunctionCall", - "src": "16761:24:1" - } - ], - "functionName": { - "name": "identity", - "nativeSrc": "16752:8:1", - "nodeType": "YulIdentifier", - "src": "16752:8:1" - }, - "nativeSrc": "16752:34:1", - "nodeType": "YulFunctionCall", - "src": "16752:34:1" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "16734:17:1", - "nodeType": "YulIdentifier", - "src": "16734:17:1" - }, - "nativeSrc": "16734:53:1", - "nodeType": "YulFunctionCall", - "src": "16734:53:1" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "16721:9:1", - "nodeType": "YulIdentifier", - "src": "16721:9:1" - } - ] - } - ] - }, - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "16651:142:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "16691:5:1", - "nodeType": "YulTypedName", - "src": "16691:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "16701:9:1", - "nodeType": "YulTypedName", - "src": "16701:9:1", - "type": "" - } - ], - "src": "16651:142:1" - }, - { - "body": { - "nativeSrc": "16846:28:1", - "nodeType": "YulBlock", - "src": "16846:28:1", - "statements": [ - { - "nativeSrc": "16856:12:1", - "nodeType": "YulAssignment", - "src": "16856:12:1", - "value": { - "name": "value", - "nativeSrc": "16863:5:1", - "nodeType": "YulIdentifier", - "src": "16863:5:1" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "16856:3:1", - "nodeType": "YulIdentifier", - "src": "16856:3:1" - } - ] - } - ] - }, - "name": "prepare_store_t_uint256", - "nativeSrc": "16799:75:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "16832:5:1", - "nodeType": "YulTypedName", - "src": "16832:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "16842:3:1", - "nodeType": "YulTypedName", - "src": "16842:3:1", - "type": "" - } - ], - "src": "16799:75:1" - }, - { - "body": { - "nativeSrc": "16956:193:1", - "nodeType": "YulBlock", - "src": "16956:193:1", - "statements": [ - { - "nativeSrc": "16966:63:1", - "nodeType": "YulVariableDeclaration", - "src": "16966:63:1", - "value": { - "arguments": [ - { - "name": "value_0", - "nativeSrc": "17021:7:1", - "nodeType": "YulIdentifier", - "src": "17021:7:1" - } - ], - "functionName": { - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "16990:30:1", - "nodeType": "YulIdentifier", - "src": "16990:30:1" - }, - "nativeSrc": "16990:39:1", - "nodeType": "YulFunctionCall", - "src": "16990:39:1" - }, - "variables": [ - { - "name": "convertedValue_0", - "nativeSrc": "16970:16:1", - "nodeType": "YulTypedName", - "src": "16970:16:1", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "17045:4:1", - "nodeType": "YulIdentifier", - "src": "17045:4:1" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "slot", - "nativeSrc": "17085:4:1", - "nodeType": "YulIdentifier", - "src": "17085:4:1" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "17079:5:1", - "nodeType": "YulIdentifier", - "src": "17079:5:1" - }, - "nativeSrc": "17079:11:1", - "nodeType": "YulFunctionCall", - "src": "17079:11:1" - }, - { - "name": "offset", - "nativeSrc": "17092:6:1", - "nodeType": "YulIdentifier", - "src": "17092:6:1" - }, - { - "arguments": [ - { - "name": "convertedValue_0", - "nativeSrc": "17124:16:1", - "nodeType": "YulIdentifier", - "src": "17124:16:1" - } - ], - "functionName": { - "name": "prepare_store_t_uint256", - "nativeSrc": "17100:23:1", - "nodeType": "YulIdentifier", - "src": "17100:23:1" - }, - "nativeSrc": "17100:41:1", - "nodeType": "YulFunctionCall", - "src": "17100:41:1" - } - ], - "functionName": { - "name": "update_byte_slice_dynamic32", - "nativeSrc": "17051:27:1", - "nodeType": "YulIdentifier", - "src": "17051:27:1" - }, - "nativeSrc": "17051:91:1", - "nodeType": "YulFunctionCall", - "src": "17051:91:1" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "17038:6:1", - "nodeType": "YulIdentifier", - "src": "17038:6:1" - }, - "nativeSrc": "17038:105:1", - "nodeType": "YulFunctionCall", - "src": "17038:105:1" - }, - "nativeSrc": "17038:105:1", - "nodeType": "YulExpressionStatement", - "src": "17038:105:1" - } - ] - }, - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "16880:269:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nativeSrc": "16933:4:1", - "nodeType": "YulTypedName", - "src": "16933:4:1", - "type": "" - }, - { - "name": "offset", - "nativeSrc": "16939:6:1", - "nodeType": "YulTypedName", - "src": "16939:6:1", - "type": "" - }, - { - "name": "value_0", - "nativeSrc": "16947:7:1", - "nodeType": "YulTypedName", - "src": "16947:7:1", - "type": "" - } - ], - "src": "16880:269:1" - }, - { - "body": { - "nativeSrc": "17204:24:1", - "nodeType": "YulBlock", - "src": "17204:24:1", - "statements": [ - { - "nativeSrc": "17214:8:1", - "nodeType": "YulAssignment", - "src": "17214:8:1", - "value": { - "kind": "number", - "nativeSrc": "17221:1:1", - "nodeType": "YulLiteral", - "src": "17221:1:1", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "17214:3:1", - "nodeType": "YulIdentifier", - "src": "17214:3:1" - } - ] - } - ] - }, - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "17155:73:1", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "17200:3:1", - "nodeType": "YulTypedName", - "src": "17200:3:1", - "type": "" - } - ], - "src": "17155:73:1" - }, - { - "body": { - "nativeSrc": "17287:136:1", - "nodeType": "YulBlock", - "src": "17287:136:1", - "statements": [ - { - "nativeSrc": "17297:46:1", - "nodeType": "YulVariableDeclaration", - "src": "17297:46:1", - "value": { - "arguments": [], - "functionName": { - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "17311:30:1", - "nodeType": "YulIdentifier", - "src": "17311:30:1" - }, - "nativeSrc": "17311:32:1", - "nodeType": "YulFunctionCall", - "src": "17311:32:1" - }, - "variables": [ - { - "name": "zero_0", - "nativeSrc": "17301:6:1", - "nodeType": "YulTypedName", - "src": "17301:6:1", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "17396:4:1", - "nodeType": "YulIdentifier", - "src": "17396:4:1" - }, - { - "name": "offset", - "nativeSrc": "17402:6:1", - "nodeType": "YulIdentifier", - "src": "17402:6:1" - }, - { - "name": "zero_0", - "nativeSrc": "17410:6:1", - "nodeType": "YulIdentifier", - "src": "17410:6:1" - } - ], - "functionName": { - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "17352:43:1", - "nodeType": "YulIdentifier", - "src": "17352:43:1" - }, - "nativeSrc": "17352:65:1", - "nodeType": "YulFunctionCall", - "src": "17352:65:1" - }, - "nativeSrc": "17352:65:1", - "nodeType": "YulExpressionStatement", - "src": "17352:65:1" - } - ] - }, - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "17234:189:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nativeSrc": "17273:4:1", - "nodeType": "YulTypedName", - "src": "17273:4:1", - "type": "" - }, - { - "name": "offset", - "nativeSrc": "17279:6:1", - "nodeType": "YulTypedName", - "src": "17279:6:1", - "type": "" - } - ], - "src": "17234:189:1" - }, - { - "body": { - "nativeSrc": "17479:136:1", - "nodeType": "YulBlock", - "src": "17479:136:1", - "statements": [ - { - "body": { - "nativeSrc": "17546:63:1", - "nodeType": "YulBlock", - "src": "17546:63:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "start", - "nativeSrc": "17590:5:1", - "nodeType": "YulIdentifier", - "src": "17590:5:1" - }, - { - "kind": "number", - "nativeSrc": "17597:1:1", - "nodeType": "YulLiteral", - "src": "17597:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "17560:29:1", - "nodeType": "YulIdentifier", - "src": "17560:29:1" - }, - "nativeSrc": "17560:39:1", - "nodeType": "YulFunctionCall", - "src": "17560:39:1" - }, - "nativeSrc": "17560:39:1", - "nodeType": "YulExpressionStatement", - "src": "17560:39:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "start", - "nativeSrc": "17499:5:1", - "nodeType": "YulIdentifier", - "src": "17499:5:1" - }, - { - "name": "end", - "nativeSrc": "17506:3:1", - "nodeType": "YulIdentifier", - "src": "17506:3:1" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "17496:2:1", - "nodeType": "YulIdentifier", - "src": "17496:2:1" - }, - "nativeSrc": "17496:14:1", - "nodeType": "YulFunctionCall", - "src": "17496:14:1" - }, - "nativeSrc": "17489:120:1", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "17511:26:1", - "nodeType": "YulBlock", - "src": "17511:26:1", - "statements": [ - { - "nativeSrc": "17513:22:1", - "nodeType": "YulAssignment", - "src": "17513:22:1", - "value": { - "arguments": [ - { - "name": "start", - "nativeSrc": "17526:5:1", - "nodeType": "YulIdentifier", - "src": "17526:5:1" - }, - { - "kind": "number", - "nativeSrc": "17533:1:1", - "nodeType": "YulLiteral", - "src": "17533:1:1", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17522:3:1", - "nodeType": "YulIdentifier", - "src": "17522:3:1" - }, - "nativeSrc": "17522:13:1", - "nodeType": "YulFunctionCall", - "src": "17522:13:1" - }, - "variableNames": [ - { - "name": "start", - "nativeSrc": "17513:5:1", - "nodeType": "YulIdentifier", - "src": "17513:5:1" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "17493:2:1", - "nodeType": "YulBlock", - "src": "17493:2:1", - "statements": [] - }, - "src": "17489:120:1" - } - ] - }, - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "17429:186:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "start", - "nativeSrc": "17467:5:1", - "nodeType": "YulTypedName", - "src": "17467:5:1", - "type": "" - }, - { - "name": "end", - "nativeSrc": "17474:3:1", - "nodeType": "YulTypedName", - "src": "17474:3:1", - "type": "" - } - ], - "src": "17429:186:1" - }, - { - "body": { - "nativeSrc": "17699:463:1", - "nodeType": "YulBlock", - "src": "17699:463:1", - "statements": [ - { - "body": { - "nativeSrc": "17725:430:1", - "nodeType": "YulBlock", - "src": "17725:430:1", - "statements": [ - { - "nativeSrc": "17739:53:1", - "nodeType": "YulVariableDeclaration", - "src": "17739:53:1", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "17786:5:1", - "nodeType": "YulIdentifier", - "src": "17786:5:1" - } - ], - "functionName": { - "name": "array_dataslot_t_bytes_storage", - "nativeSrc": "17755:30:1", - "nodeType": "YulIdentifier", - "src": "17755:30:1" - }, - "nativeSrc": "17755:37:1", - "nodeType": "YulFunctionCall", - "src": "17755:37:1" - }, - "variables": [ - { - "name": "dataArea", - "nativeSrc": "17743:8:1", - "nodeType": "YulTypedName", - "src": "17743:8:1", - "type": "" - } - ] - }, - { - "nativeSrc": "17805:63:1", - "nodeType": "YulVariableDeclaration", - "src": "17805:63:1", - "value": { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "17828:8:1", - "nodeType": "YulIdentifier", - "src": "17828:8:1" - }, - { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "17856:10:1", - "nodeType": "YulIdentifier", - "src": "17856:10:1" - } - ], - "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "17838:17:1", - "nodeType": "YulIdentifier", - "src": "17838:17:1" - }, - "nativeSrc": "17838:29:1", - "nodeType": "YulFunctionCall", - "src": "17838:29:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17824:3:1", - "nodeType": "YulIdentifier", - "src": "17824:3:1" - }, - "nativeSrc": "17824:44:1", - "nodeType": "YulFunctionCall", - "src": "17824:44:1" - }, - "variables": [ - { - "name": "deleteStart", - "nativeSrc": "17809:11:1", - "nodeType": "YulTypedName", - "src": "17809:11:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "18025:27:1", - "nodeType": "YulBlock", - "src": "18025:27:1", - "statements": [ - { - "nativeSrc": "18027:23:1", - "nodeType": "YulAssignment", - "src": "18027:23:1", - "value": { - "name": "dataArea", - "nativeSrc": "18042:8:1", - "nodeType": "YulIdentifier", - "src": "18042:8:1" - }, - "variableNames": [ - { - "name": "deleteStart", - "nativeSrc": "18027:11:1", - "nodeType": "YulIdentifier", - "src": "18027:11:1" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "18009:10:1", - "nodeType": "YulIdentifier", - "src": "18009:10:1" - }, - { - "kind": "number", - "nativeSrc": "18021:2:1", - "nodeType": "YulLiteral", - "src": "18021:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "18006:2:1", - "nodeType": "YulIdentifier", - "src": "18006:2:1" - }, - "nativeSrc": "18006:18:1", - "nodeType": "YulFunctionCall", - "src": "18006:18:1" - }, - "nativeSrc": "18003:49:1", - "nodeType": "YulIf", - "src": "18003:49:1" - }, - { - "expression": { - "arguments": [ - { - "name": "deleteStart", - "nativeSrc": "18094:11:1", - "nodeType": "YulIdentifier", - "src": "18094:11:1" - }, - { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "18111:8:1", - "nodeType": "YulIdentifier", - "src": "18111:8:1" - }, - { - "arguments": [ - { - "name": "len", - "nativeSrc": "18139:3:1", - "nodeType": "YulIdentifier", - "src": "18139:3:1" - } - ], - "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "18121:17:1", - "nodeType": "YulIdentifier", - "src": "18121:17:1" - }, - "nativeSrc": "18121:22:1", - "nodeType": "YulFunctionCall", - "src": "18121:22:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18107:3:1", - "nodeType": "YulIdentifier", - "src": "18107:3:1" - }, - "nativeSrc": "18107:37:1", - "nodeType": "YulFunctionCall", - "src": "18107:37:1" - } - ], - "functionName": { - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "18065:28:1", - "nodeType": "YulIdentifier", - "src": "18065:28:1" - }, - "nativeSrc": "18065:80:1", - "nodeType": "YulFunctionCall", - "src": "18065:80:1" - }, - "nativeSrc": "18065:80:1", - "nodeType": "YulExpressionStatement", - "src": "18065:80:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nativeSrc": "17716:3:1", - "nodeType": "YulIdentifier", - "src": "17716:3:1" - }, - { - "kind": "number", - "nativeSrc": "17721:2:1", - "nodeType": "YulLiteral", - "src": "17721:2:1", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "17713:2:1", - "nodeType": "YulIdentifier", - "src": "17713:2:1" - }, - "nativeSrc": "17713:11:1", - "nodeType": "YulFunctionCall", - "src": "17713:11:1" - }, - "nativeSrc": "17710:445:1", - "nodeType": "YulIf", - "src": "17710:445:1" - } - ] - }, - "name": "clean_up_bytearray_end_slots_t_bytes_storage", - "nativeSrc": "17621:541:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "array", - "nativeSrc": "17675:5:1", - "nodeType": "YulTypedName", - "src": "17675:5:1", - "type": "" - }, - { - "name": "len", - "nativeSrc": "17682:3:1", - "nodeType": "YulTypedName", - "src": "17682:3:1", - "type": "" - }, - { - "name": "startIndex", - "nativeSrc": "17687:10:1", - "nodeType": "YulTypedName", - "src": "17687:10:1", - "type": "" - } - ], - "src": "17621:541:1" - }, - { - "body": { - "nativeSrc": "18231:54:1", - "nodeType": "YulBlock", - "src": "18231:54:1", - "statements": [ - { - "nativeSrc": "18241:37:1", - "nodeType": "YulAssignment", - "src": "18241:37:1", - "value": { - "arguments": [ - { - "name": "bits", - "nativeSrc": "18266:4:1", - "nodeType": "YulIdentifier", - "src": "18266:4:1" - }, - { - "name": "value", - "nativeSrc": "18272:5:1", - "nodeType": "YulIdentifier", - "src": "18272:5:1" - } - ], - "functionName": { - "name": "shr", - "nativeSrc": "18262:3:1", - "nodeType": "YulIdentifier", - "src": "18262:3:1" - }, - "nativeSrc": "18262:16:1", - "nodeType": "YulFunctionCall", - "src": "18262:16:1" - }, - "variableNames": [ - { - "name": "newValue", - "nativeSrc": "18241:8:1", - "nodeType": "YulIdentifier", - "src": "18241:8:1" - } - ] - } - ] - }, - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "18168:117:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "bits", - "nativeSrc": "18206:4:1", - "nodeType": "YulTypedName", - "src": "18206:4:1", - "type": "" - }, - { - "name": "value", - "nativeSrc": "18212:5:1", - "nodeType": "YulTypedName", - "src": "18212:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "newValue", - "nativeSrc": "18222:8:1", - "nodeType": "YulTypedName", - "src": "18222:8:1", - "type": "" - } - ], - "src": "18168:117:1" - }, - { - "body": { - "nativeSrc": "18342:118:1", - "nodeType": "YulBlock", - "src": "18342:118:1", - "statements": [ - { - "nativeSrc": "18352:68:1", - "nodeType": "YulVariableDeclaration", - "src": "18352:68:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18401:1:1", - "nodeType": "YulLiteral", - "src": "18401:1:1", - "type": "", - "value": "8" - }, - { - "name": "bytes", - "nativeSrc": "18404:5:1", - "nodeType": "YulIdentifier", - "src": "18404:5:1" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "18397:3:1", - "nodeType": "YulIdentifier", - "src": "18397:3:1" - }, - "nativeSrc": "18397:13:1", - "nodeType": "YulFunctionCall", - "src": "18397:13:1" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18416:1:1", - "nodeType": "YulLiteral", - "src": "18416:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "18412:3:1", - "nodeType": "YulIdentifier", - "src": "18412:3:1" - }, - "nativeSrc": "18412:6:1", - "nodeType": "YulFunctionCall", - "src": "18412:6:1" - } - ], - "functionName": { - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "18368:28:1", - "nodeType": "YulIdentifier", - "src": "18368:28:1" - }, - "nativeSrc": "18368:51:1", - "nodeType": "YulFunctionCall", - "src": "18368:51:1" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "18364:3:1", - "nodeType": "YulIdentifier", - "src": "18364:3:1" - }, - "nativeSrc": "18364:56:1", - "nodeType": "YulFunctionCall", - "src": "18364:56:1" - }, - "variables": [ - { - "name": "mask", - "nativeSrc": "18356:4:1", - "nodeType": "YulTypedName", - "src": "18356:4:1", - "type": "" - } - ] - }, - { - "nativeSrc": "18429:25:1", - "nodeType": "YulAssignment", - "src": "18429:25:1", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "18443:4:1", - "nodeType": "YulIdentifier", - "src": "18443:4:1" - }, - { - "name": "mask", - "nativeSrc": "18449:4:1", - "nodeType": "YulIdentifier", - "src": "18449:4:1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "18439:3:1", - "nodeType": "YulIdentifier", - "src": "18439:3:1" - }, - "nativeSrc": "18439:15:1", - "nodeType": "YulFunctionCall", - "src": "18439:15:1" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "18429:6:1", - "nodeType": "YulIdentifier", - "src": "18429:6:1" - } - ] - } - ] - }, - "name": "mask_bytes_dynamic", - "nativeSrc": "18291:169:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "18319:4:1", - "nodeType": "YulTypedName", - "src": "18319:4:1", - "type": "" - }, - { - "name": "bytes", - "nativeSrc": "18325:5:1", - "nodeType": "YulTypedName", - "src": "18325:5:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "18335:6:1", - "nodeType": "YulTypedName", - "src": "18335:6:1", - "type": "" - } - ], - "src": "18291:169:1" - }, - { - "body": { - "nativeSrc": "18546:214:1", - "nodeType": "YulBlock", - "src": "18546:214:1", - "statements": [ - { - "nativeSrc": "18679:37:1", - "nodeType": "YulAssignment", - "src": "18679:37:1", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "18706:4:1", - "nodeType": "YulIdentifier", - "src": "18706:4:1" - }, - { - "name": "len", - "nativeSrc": "18712:3:1", - "nodeType": "YulIdentifier", - "src": "18712:3:1" - } - ], - "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "18687:18:1", - "nodeType": "YulIdentifier", - "src": "18687:18:1" - }, - "nativeSrc": "18687:29:1", - "nodeType": "YulFunctionCall", - "src": "18687:29:1" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "18679:4:1", - "nodeType": "YulIdentifier", - "src": "18679:4:1" - } - ] - }, - { - "nativeSrc": "18725:29:1", - "nodeType": "YulAssignment", - "src": "18725:29:1", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "18736:4:1", - "nodeType": "YulIdentifier", - "src": "18736:4:1" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18746:1:1", - "nodeType": "YulLiteral", - "src": "18746:1:1", - "type": "", - "value": "2" - }, - { - "name": "len", - "nativeSrc": "18749:3:1", - "nodeType": "YulIdentifier", - "src": "18749:3:1" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "18742:3:1", - "nodeType": "YulIdentifier", - "src": "18742:3:1" - }, - "nativeSrc": "18742:11:1", - "nodeType": "YulFunctionCall", - "src": "18742:11:1" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "18733:2:1", - "nodeType": "YulIdentifier", - "src": "18733:2:1" - }, - "nativeSrc": "18733:21:1", - "nodeType": "YulFunctionCall", - "src": "18733:21:1" - }, - "variableNames": [ - { - "name": "used", - "nativeSrc": "18725:4:1", - "nodeType": "YulIdentifier", - "src": "18725:4:1" - } - ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "18465:295:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "18527:4:1", - "nodeType": "YulTypedName", - "src": "18527:4:1", - "type": "" - }, - { - "name": "len", - "nativeSrc": "18533:3:1", - "nodeType": "YulTypedName", - "src": "18533:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nativeSrc": "18541:4:1", - "nodeType": "YulTypedName", - "src": "18541:4:1", - "type": "" - } - ], - "src": "18465:295:1" - }, - { - "body": { - "nativeSrc": "18855:1300:1", - "nodeType": "YulBlock", - "src": "18855:1300:1", - "statements": [ - { - "nativeSrc": "18866:50:1", - "nodeType": "YulVariableDeclaration", - "src": "18866:50:1", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "18912:3:1", - "nodeType": "YulIdentifier", - "src": "18912:3:1" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "18880:31:1", - "nodeType": "YulIdentifier", - "src": "18880:31:1" - }, - "nativeSrc": "18880:36:1", - "nodeType": "YulFunctionCall", - "src": "18880:36:1" - }, - "variables": [ - { - "name": "newLen", - "nativeSrc": "18870:6:1", - "nodeType": "YulTypedName", - "src": "18870:6:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "19001:22:1", - "nodeType": "YulBlock", - "src": "19001:22:1", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "19003:16:1", - "nodeType": "YulIdentifier", - "src": "19003:16:1" - }, - "nativeSrc": "19003:18:1", - "nodeType": "YulFunctionCall", - "src": "19003:18:1" - }, - "nativeSrc": "19003:18:1", - "nodeType": "YulExpressionStatement", - "src": "19003:18:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "18973:6:1", - "nodeType": "YulIdentifier", - "src": "18973:6:1" - }, - { - "kind": "number", - "nativeSrc": "18981:18:1", - "nodeType": "YulLiteral", - "src": "18981:18:1", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "18970:2:1", - "nodeType": "YulIdentifier", - "src": "18970:2:1" - }, - "nativeSrc": "18970:30:1", - "nodeType": "YulFunctionCall", - "src": "18970:30:1" - }, - "nativeSrc": "18967:56:1", - "nodeType": "YulIf", - "src": "18967:56:1" - }, - { - "nativeSrc": "19033:52:1", - "nodeType": "YulVariableDeclaration", - "src": "19033:52:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "slot", - "nativeSrc": "19079:4:1", - "nodeType": "YulIdentifier", - "src": "19079:4:1" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "19073:5:1", - "nodeType": "YulIdentifier", - "src": "19073:5:1" - }, - "nativeSrc": "19073:11:1", - "nodeType": "YulFunctionCall", - "src": "19073:11:1" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nativeSrc": "19047:25:1", - "nodeType": "YulIdentifier", - "src": "19047:25:1" - }, - "nativeSrc": "19047:38:1", - "nodeType": "YulFunctionCall", - "src": "19047:38:1" - }, - "variables": [ - { - "name": "oldLen", - "nativeSrc": "19037:6:1", - "nodeType": "YulTypedName", - "src": "19037:6:1", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "19177:4:1", - "nodeType": "YulIdentifier", - "src": "19177:4:1" - }, - { - "name": "oldLen", - "nativeSrc": "19183:6:1", - "nodeType": "YulIdentifier", - "src": "19183:6:1" - }, - { - "name": "newLen", - "nativeSrc": "19191:6:1", - "nodeType": "YulIdentifier", - "src": "19191:6:1" - } - ], - "functionName": { - "name": "clean_up_bytearray_end_slots_t_bytes_storage", - "nativeSrc": "19132:44:1", - "nodeType": "YulIdentifier", - "src": "19132:44:1" - }, - "nativeSrc": "19132:66:1", - "nodeType": "YulFunctionCall", - "src": "19132:66:1" - }, - "nativeSrc": "19132:66:1", - "nodeType": "YulExpressionStatement", - "src": "19132:66:1" - }, - { - "nativeSrc": "19208:18:1", - "nodeType": "YulVariableDeclaration", - "src": "19208:18:1", - "value": { - "kind": "number", - "nativeSrc": "19225:1:1", - "nodeType": "YulLiteral", - "src": "19225:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nativeSrc": "19212:9:1", - "nodeType": "YulTypedName", - "src": "19212:9:1", - "type": "" - } - ] - }, - { - "nativeSrc": "19236:17:1", - "nodeType": "YulAssignment", - "src": "19236:17:1", - "value": { - "kind": "number", - "nativeSrc": "19249:4:1", - "nodeType": "YulLiteral", - "src": "19249:4:1", - "type": "", - "value": "0x20" - }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "19236:9:1", - "nodeType": "YulIdentifier", - "src": "19236:9:1" - } - ] - }, - { - "cases": [ - { - "body": { - "nativeSrc": "19300:610:1", - "nodeType": "YulBlock", - "src": "19300:610:1", - "statements": [ - { - "nativeSrc": "19314:37:1", - "nodeType": "YulVariableDeclaration", - "src": "19314:37:1", - "value": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "19333:6:1", - "nodeType": "YulIdentifier", - "src": "19333:6:1" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "19345:4:1", - "nodeType": "YulLiteral", - "src": "19345:4:1", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "19341:3:1", - "nodeType": "YulIdentifier", - "src": "19341:3:1" - }, - "nativeSrc": "19341:9:1", - "nodeType": "YulFunctionCall", - "src": "19341:9:1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "19329:3:1", - "nodeType": "YulIdentifier", - "src": "19329:3:1" - }, - "nativeSrc": "19329:22:1", - "nodeType": "YulFunctionCall", - "src": "19329:22:1" - }, - "variables": [ - { - "name": "loopEnd", - "nativeSrc": "19318:7:1", - "nodeType": "YulTypedName", - "src": "19318:7:1", - "type": "" - } - ] - }, - { - "nativeSrc": "19365:50:1", - "nodeType": "YulVariableDeclaration", - "src": "19365:50:1", - "value": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "19410:4:1", - "nodeType": "YulIdentifier", - "src": "19410:4:1" - } - ], - "functionName": { - "name": "array_dataslot_t_bytes_storage", - "nativeSrc": "19379:30:1", - "nodeType": "YulIdentifier", - "src": "19379:30:1" - }, - "nativeSrc": "19379:36:1", - "nodeType": "YulFunctionCall", - "src": "19379:36:1" - }, - "variables": [ - { - "name": "dstPtr", - "nativeSrc": "19369:6:1", - "nodeType": "YulTypedName", - "src": "19369:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "19428:10:1", - "nodeType": "YulVariableDeclaration", - "src": "19428:10:1", - "value": { - "kind": "number", - "nativeSrc": "19437:1:1", - "nodeType": "YulLiteral", - "src": "19437:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "19432:1:1", - "nodeType": "YulTypedName", - "src": "19432:1:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "19496:163:1", - "nodeType": "YulBlock", - "src": "19496:163:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "19521:6:1", - "nodeType": "YulIdentifier", - "src": "19521:6:1" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "19539:3:1", - "nodeType": "YulIdentifier", - "src": "19539:3:1" - }, - { - "name": "srcOffset", - "nativeSrc": "19544:9:1", - "nodeType": "YulIdentifier", - "src": "19544:9:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19535:3:1", - "nodeType": "YulIdentifier", - "src": "19535:3:1" - }, - "nativeSrc": "19535:19:1", - "nodeType": "YulFunctionCall", - "src": "19535:19:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19529:5:1", - "nodeType": "YulIdentifier", - "src": "19529:5:1" - }, - "nativeSrc": "19529:26:1", - "nodeType": "YulFunctionCall", - "src": "19529:26:1" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "19514:6:1", - "nodeType": "YulIdentifier", - "src": "19514:6:1" - }, - "nativeSrc": "19514:42:1", - "nodeType": "YulFunctionCall", - "src": "19514:42:1" - }, - "nativeSrc": "19514:42:1", - "nodeType": "YulExpressionStatement", - "src": "19514:42:1" - }, - { - "nativeSrc": "19573:24:1", - "nodeType": "YulAssignment", - "src": "19573:24:1", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "19587:6:1", - "nodeType": "YulIdentifier", - "src": "19587:6:1" - }, - { - "kind": "number", - "nativeSrc": "19595:1:1", - "nodeType": "YulLiteral", - "src": "19595:1:1", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19583:3:1", - "nodeType": "YulIdentifier", - "src": "19583:3:1" - }, - "nativeSrc": "19583:14:1", - "nodeType": "YulFunctionCall", - "src": "19583:14:1" - }, - "variableNames": [ - { - "name": "dstPtr", - "nativeSrc": "19573:6:1", - "nodeType": "YulIdentifier", - "src": "19573:6:1" - } - ] - }, - { - "nativeSrc": "19614:31:1", - "nodeType": "YulAssignment", - "src": "19614:31:1", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nativeSrc": "19631:9:1", - "nodeType": "YulIdentifier", - "src": "19631:9:1" - }, - { - "kind": "number", - "nativeSrc": "19642:2:1", - "nodeType": "YulLiteral", - "src": "19642:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19627:3:1", - "nodeType": "YulIdentifier", - "src": "19627:3:1" - }, - "nativeSrc": "19627:18:1", - "nodeType": "YulFunctionCall", - "src": "19627:18:1" - }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "19614:9:1", - "nodeType": "YulIdentifier", - "src": "19614:9:1" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "19462:1:1", - "nodeType": "YulIdentifier", - "src": "19462:1:1" - }, - { - "name": "loopEnd", - "nativeSrc": "19465:7:1", - "nodeType": "YulIdentifier", - "src": "19465:7:1" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "19459:2:1", - "nodeType": "YulIdentifier", - "src": "19459:2:1" - }, - "nativeSrc": "19459:14:1", - "nodeType": "YulFunctionCall", - "src": "19459:14:1" - }, - "nativeSrc": "19451:208:1", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "19474:21:1", - "nodeType": "YulBlock", - "src": "19474:21:1", - "statements": [ - { - "nativeSrc": "19476:17:1", - "nodeType": "YulAssignment", - "src": "19476:17:1", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "19485:1:1", - "nodeType": "YulIdentifier", - "src": "19485:1:1" - }, - { - "kind": "number", - "nativeSrc": "19488:4:1", - "nodeType": "YulLiteral", - "src": "19488:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19481:3:1", - "nodeType": "YulIdentifier", - "src": "19481:3:1" - }, - "nativeSrc": "19481:12:1", - "nodeType": "YulFunctionCall", - "src": "19481:12:1" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "19476:1:1", - "nodeType": "YulIdentifier", - "src": "19476:1:1" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "19455:3:1", - "nodeType": "YulBlock", - "src": "19455:3:1", - "statements": [] - }, - "src": "19451:208:1" - }, - { - "body": { - "nativeSrc": "19695:156:1", - "nodeType": "YulBlock", - "src": "19695:156:1", - "statements": [ - { - "nativeSrc": "19713:43:1", - "nodeType": "YulVariableDeclaration", - "src": "19713:43:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "19740:3:1", - "nodeType": "YulIdentifier", - "src": "19740:3:1" - }, - { - "name": "srcOffset", - "nativeSrc": "19745:9:1", - "nodeType": "YulIdentifier", - "src": "19745:9:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19736:3:1", - "nodeType": "YulIdentifier", - "src": "19736:3:1" - }, - "nativeSrc": "19736:19:1", - "nodeType": "YulFunctionCall", - "src": "19736:19:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19730:5:1", - "nodeType": "YulIdentifier", - "src": "19730:5:1" - }, - "nativeSrc": "19730:26:1", - "nodeType": "YulFunctionCall", - "src": "19730:26:1" - }, - "variables": [ - { - "name": "lastValue", - "nativeSrc": "19717:9:1", - "nodeType": "YulTypedName", - "src": "19717:9:1", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "19780:6:1", - "nodeType": "YulIdentifier", - "src": "19780:6:1" - }, - { - "arguments": [ - { - "name": "lastValue", - "nativeSrc": "19807:9:1", - "nodeType": "YulIdentifier", - "src": "19807:9:1" - }, - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "19822:6:1", - "nodeType": "YulIdentifier", - "src": "19822:6:1" - }, - { - "kind": "number", - "nativeSrc": "19830:4:1", - "nodeType": "YulLiteral", - "src": "19830:4:1", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "19818:3:1", - "nodeType": "YulIdentifier", - "src": "19818:3:1" - }, - "nativeSrc": "19818:17:1", - "nodeType": "YulFunctionCall", - "src": "19818:17:1" - } - ], - "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "19788:18:1", - "nodeType": "YulIdentifier", - "src": "19788:18:1" - }, - "nativeSrc": "19788:48:1", - "nodeType": "YulFunctionCall", - "src": "19788:48:1" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "19773:6:1", - "nodeType": "YulIdentifier", - "src": "19773:6:1" - }, - "nativeSrc": "19773:64:1", - "nodeType": "YulFunctionCall", - "src": "19773:64:1" - }, - "nativeSrc": "19773:64:1", - "nodeType": "YulExpressionStatement", - "src": "19773:64:1" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nativeSrc": "19678:7:1", - "nodeType": "YulIdentifier", - "src": "19678:7:1" - }, - { - "name": "newLen", - "nativeSrc": "19687:6:1", - "nodeType": "YulIdentifier", - "src": "19687:6:1" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "19675:2:1", - "nodeType": "YulIdentifier", - "src": "19675:2:1" - }, - "nativeSrc": "19675:19:1", - "nodeType": "YulFunctionCall", - "src": "19675:19:1" - }, - "nativeSrc": "19672:179:1", - "nodeType": "YulIf", - "src": "19672:179:1" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "19871:4:1", - "nodeType": "YulIdentifier", - "src": "19871:4:1" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "19885:6:1", - "nodeType": "YulIdentifier", - "src": "19885:6:1" - }, - { - "kind": "number", - "nativeSrc": "19893:1:1", - "nodeType": "YulLiteral", - "src": "19893:1:1", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "19881:3:1", - "nodeType": "YulIdentifier", - "src": "19881:3:1" - }, - "nativeSrc": "19881:14:1", - "nodeType": "YulFunctionCall", - "src": "19881:14:1" - }, - { - "kind": "number", - "nativeSrc": "19897:1:1", - "nodeType": "YulLiteral", - "src": "19897:1:1", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19877:3:1", - "nodeType": "YulIdentifier", - "src": "19877:3:1" - }, - "nativeSrc": "19877:22:1", - "nodeType": "YulFunctionCall", - "src": "19877:22:1" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "19864:6:1", - "nodeType": "YulIdentifier", - "src": "19864:6:1" - }, - "nativeSrc": "19864:36:1", - "nodeType": "YulFunctionCall", - "src": "19864:36:1" - }, - "nativeSrc": "19864:36:1", - "nodeType": "YulExpressionStatement", - "src": "19864:36:1" - } - ] - }, - "nativeSrc": "19293:617:1", - "nodeType": "YulCase", - "src": "19293:617:1", - "value": { - "kind": "number", - "nativeSrc": "19298:1:1", - "nodeType": "YulLiteral", - "src": "19298:1:1", - "type": "", - "value": "1" - } - }, - { - "body": { - "nativeSrc": "19927:222:1", - "nodeType": "YulBlock", - "src": "19927:222:1", - "statements": [ - { - "nativeSrc": "19941:14:1", - "nodeType": "YulVariableDeclaration", - "src": "19941:14:1", - "value": { - "kind": "number", - "nativeSrc": "19954:1:1", - "nodeType": "YulLiteral", - "src": "19954:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "19945:5:1", - "nodeType": "YulTypedName", - "src": "19945:5:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "19978:67:1", - "nodeType": "YulBlock", - "src": "19978:67:1", - "statements": [ - { - "nativeSrc": "19996:35:1", - "nodeType": "YulAssignment", - "src": "19996:35:1", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "20015:3:1", - "nodeType": "YulIdentifier", - "src": "20015:3:1" - }, - { - "name": "srcOffset", - "nativeSrc": "20020:9:1", - "nodeType": "YulIdentifier", - "src": "20020:9:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20011:3:1", - "nodeType": "YulIdentifier", - "src": "20011:3:1" - }, - "nativeSrc": "20011:19:1", - "nodeType": "YulFunctionCall", - "src": "20011:19:1" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "20005:5:1", - "nodeType": "YulIdentifier", - "src": "20005:5:1" - }, - "nativeSrc": "20005:26:1", - "nodeType": "YulFunctionCall", - "src": "20005:26:1" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "19996:5:1", - "nodeType": "YulIdentifier", - "src": "19996:5:1" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nativeSrc": "19971:6:1", - "nodeType": "YulIdentifier", - "src": "19971:6:1" - }, - "nativeSrc": "19968:77:1", - "nodeType": "YulIf", - "src": "19968:77:1" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "20065:4:1", - "nodeType": "YulIdentifier", - "src": "20065:4:1" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "20124:5:1", - "nodeType": "YulIdentifier", - "src": "20124:5:1" - }, - { - "name": "newLen", - "nativeSrc": "20131:6:1", - "nodeType": "YulIdentifier", - "src": "20131:6:1" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "20071:52:1", - "nodeType": "YulIdentifier", - "src": "20071:52:1" - }, - "nativeSrc": "20071:67:1", - "nodeType": "YulFunctionCall", - "src": "20071:67:1" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "20058:6:1", - "nodeType": "YulIdentifier", - "src": "20058:6:1" - }, - "nativeSrc": "20058:81:1", - "nodeType": "YulFunctionCall", - "src": "20058:81:1" - }, - "nativeSrc": "20058:81:1", - "nodeType": "YulExpressionStatement", - "src": "20058:81:1" - } - ] - }, - "nativeSrc": "19919:230:1", - "nodeType": "YulCase", - "src": "19919:230:1", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "19273:6:1", - "nodeType": "YulIdentifier", - "src": "19273:6:1" - }, - { - "kind": "number", - "nativeSrc": "19281:2:1", - "nodeType": "YulLiteral", - "src": "19281:2:1", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "19270:2:1", - "nodeType": "YulIdentifier", - "src": "19270:2:1" - }, - "nativeSrc": "19270:14:1", - "nodeType": "YulFunctionCall", - "src": "19270:14:1" - }, - "nativeSrc": "19263:886:1", - "nodeType": "YulSwitch", - "src": "19263:886:1" - } - ] - }, - "name": "copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage", - "nativeSrc": "18765:1390:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nativeSrc": "18844:4:1", - "nodeType": "YulTypedName", - "src": "18844:4:1", - "type": "" - }, - { - "name": "src", - "nativeSrc": "18850:3:1", - "nodeType": "YulTypedName", - "src": "18850:3:1", - "type": "" - } - ], - "src": "18765:1390:1" - }, - { - "body": { - "nativeSrc": "20305:275:1", - "nodeType": "YulBlock", - "src": "20305:275:1", - "statements": [ - { - "nativeSrc": "20315:26:1", - "nodeType": "YulAssignment", - "src": "20315:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20327:9:1", - "nodeType": "YulIdentifier", - "src": "20327:9:1" - }, - { - "kind": "number", - "nativeSrc": "20338:2:1", - "nodeType": "YulLiteral", - "src": "20338:2:1", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20323:3:1", - "nodeType": "YulIdentifier", - "src": "20323:3:1" - }, - "nativeSrc": "20323:18:1", - "nodeType": "YulFunctionCall", - "src": "20323:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "20315:4:1", - "nodeType": "YulIdentifier", - "src": "20315:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "20395:6:1", - "nodeType": "YulIdentifier", - "src": "20395:6:1" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20408:9:1", - "nodeType": "YulIdentifier", - "src": "20408:9:1" - }, - { - "kind": "number", - "nativeSrc": "20419:1:1", - "nodeType": "YulLiteral", - "src": "20419:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20404:3:1", - "nodeType": "YulIdentifier", - "src": "20404:3:1" - }, - "nativeSrc": "20404:17:1", - "nodeType": "YulFunctionCall", - "src": "20404:17:1" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "20351:43:1", - "nodeType": "YulIdentifier", - "src": "20351:43:1" - }, - "nativeSrc": "20351:71:1", - "nodeType": "YulFunctionCall", - "src": "20351:71:1" - }, - "nativeSrc": "20351:71:1", - "nodeType": "YulExpressionStatement", - "src": "20351:71:1" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20443:9:1", - "nodeType": "YulIdentifier", - "src": "20443:9:1" - }, - { - "kind": "number", - "nativeSrc": "20454:2:1", - "nodeType": "YulLiteral", - "src": "20454:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20439:3:1", - "nodeType": "YulIdentifier", - "src": "20439:3:1" - }, - "nativeSrc": "20439:18:1", - "nodeType": "YulFunctionCall", - "src": "20439:18:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "20463:4:1", - "nodeType": "YulIdentifier", - "src": "20463:4:1" - }, - { - "name": "headStart", - "nativeSrc": "20469:9:1", - "nodeType": "YulIdentifier", - "src": "20469:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "20459:3:1", - "nodeType": "YulIdentifier", - "src": "20459:3:1" - }, - "nativeSrc": "20459:20:1", - "nodeType": "YulFunctionCall", - "src": "20459:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20432:6:1", - "nodeType": "YulIdentifier", - "src": "20432:6:1" - }, - "nativeSrc": "20432:48:1", - "nodeType": "YulFunctionCall", - "src": "20432:48:1" - }, - "nativeSrc": "20432:48:1", - "nodeType": "YulExpressionStatement", - "src": "20432:48:1" - }, - { - "nativeSrc": "20489:84:1", - "nodeType": "YulAssignment", - "src": "20489:84:1", - "value": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "20559:6:1", - "nodeType": "YulIdentifier", - "src": "20559:6:1" - }, - { - "name": "tail", - "nativeSrc": "20568:4:1", - "nodeType": "YulIdentifier", - "src": "20568:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "20497:61:1", - "nodeType": "YulIdentifier", - "src": "20497:61:1" - }, - "nativeSrc": "20497:76:1", - "nodeType": "YulFunctionCall", - "src": "20497:76:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "20489:4:1", - "nodeType": "YulIdentifier", - "src": "20489:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "20161:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "20269:9:1", - "nodeType": "YulTypedName", - "src": "20269:9:1", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "20281:6:1", - "nodeType": "YulTypedName", - "src": "20281:6:1", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "20289:6:1", - "nodeType": "YulTypedName", - "src": "20289:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "20300:4:1", - "nodeType": "YulTypedName", - "src": "20300:4:1", - "type": "" - } - ], - "src": "20161:419:1" - }, - { - "body": { - "nativeSrc": "20692:61:1", - "nodeType": "YulBlock", - "src": "20692:61:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "20714:6:1", - "nodeType": "YulIdentifier", - "src": "20714:6:1" - }, - { - "kind": "number", - "nativeSrc": "20722:1:1", - "nodeType": "YulLiteral", - "src": "20722:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20710:3:1", - "nodeType": "YulIdentifier", - "src": "20710:3:1" - }, - "nativeSrc": "20710:14:1", - "nodeType": "YulFunctionCall", - "src": "20710:14:1" - }, - { - "hexValue": "63616e6e6f742065786563757465207478", - "kind": "string", - "nativeSrc": "20726:19:1", - "nodeType": "YulLiteral", - "src": "20726:19:1", - "type": "", - "value": "cannot execute tx" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20703:6:1", - "nodeType": "YulIdentifier", - "src": "20703:6:1" - }, - "nativeSrc": "20703:43:1", - "nodeType": "YulFunctionCall", - "src": "20703:43:1" - }, - "nativeSrc": "20703:43:1", - "nodeType": "YulExpressionStatement", - "src": "20703:43:1" - } - ] - }, - "name": "store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513", - "nativeSrc": "20586:167:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "20684:6:1", - "nodeType": "YulTypedName", - "src": "20684:6:1", - "type": "" - } - ], - "src": "20586:167:1" - }, - { - "body": { - "nativeSrc": "20905:220:1", - "nodeType": "YulBlock", - "src": "20905:220:1", - "statements": [ - { - "nativeSrc": "20915:74:1", - "nodeType": "YulAssignment", - "src": "20915:74:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "20981:3:1", - "nodeType": "YulIdentifier", - "src": "20981:3:1" - }, - { - "kind": "number", - "nativeSrc": "20986:2:1", - "nodeType": "YulLiteral", - "src": "20986:2:1", - "type": "", - "value": "17" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "20922:58:1", - "nodeType": "YulIdentifier", - "src": "20922:58:1" - }, - "nativeSrc": "20922:67:1", - "nodeType": "YulFunctionCall", - "src": "20922:67:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "20915:3:1", - "nodeType": "YulIdentifier", - "src": "20915:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "21087:3:1", - "nodeType": "YulIdentifier", - "src": "21087:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513", - "nativeSrc": "20998:88:1", - "nodeType": "YulIdentifier", - "src": "20998:88:1" - }, - "nativeSrc": "20998:93:1", - "nodeType": "YulFunctionCall", - "src": "20998:93:1" - }, - "nativeSrc": "20998:93:1", - "nodeType": "YulExpressionStatement", - "src": "20998:93:1" - }, - { - "nativeSrc": "21100:19:1", - "nodeType": "YulAssignment", - "src": "21100:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "21111:3:1", - "nodeType": "YulIdentifier", - "src": "21111:3:1" - }, - { - "kind": "number", - "nativeSrc": "21116:2:1", - "nodeType": "YulLiteral", - "src": "21116:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21107:3:1", - "nodeType": "YulIdentifier", - "src": "21107:3:1" - }, - "nativeSrc": "21107:12:1", - "nodeType": "YulFunctionCall", - "src": "21107:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "21100:3:1", - "nodeType": "YulIdentifier", - "src": "21100:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack", - "nativeSrc": "20759:366:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "20893:3:1", - "nodeType": "YulTypedName", - "src": "20893:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "20901:3:1", - "nodeType": "YulTypedName", - "src": "20901:3:1", - "type": "" - } - ], - "src": "20759:366:1" - }, - { - "body": { - "nativeSrc": "21302:248:1", - "nodeType": "YulBlock", - "src": "21302:248:1", - "statements": [ - { - "nativeSrc": "21312:26:1", - "nodeType": "YulAssignment", - "src": "21312:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21324:9:1", - "nodeType": "YulIdentifier", - "src": "21324:9:1" - }, - { - "kind": "number", - "nativeSrc": "21335:2:1", - "nodeType": "YulLiteral", - "src": "21335:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21320:3:1", - "nodeType": "YulIdentifier", - "src": "21320:3:1" - }, - "nativeSrc": "21320:18:1", - "nodeType": "YulFunctionCall", - "src": "21320:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "21312:4:1", - "nodeType": "YulIdentifier", - "src": "21312:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21359:9:1", - "nodeType": "YulIdentifier", - "src": "21359:9:1" - }, - { - "kind": "number", - "nativeSrc": "21370:1:1", - "nodeType": "YulLiteral", - "src": "21370:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21355:3:1", - "nodeType": "YulIdentifier", - "src": "21355:3:1" - }, - "nativeSrc": "21355:17:1", - "nodeType": "YulFunctionCall", - "src": "21355:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "21378:4:1", - "nodeType": "YulIdentifier", - "src": "21378:4:1" - }, - { - "name": "headStart", - "nativeSrc": "21384:9:1", - "nodeType": "YulIdentifier", - "src": "21384:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "21374:3:1", - "nodeType": "YulIdentifier", - "src": "21374:3:1" - }, - "nativeSrc": "21374:20:1", - "nodeType": "YulFunctionCall", - "src": "21374:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21348:6:1", - "nodeType": "YulIdentifier", - "src": "21348:6:1" - }, - "nativeSrc": "21348:47:1", - "nodeType": "YulFunctionCall", - "src": "21348:47:1" - }, - "nativeSrc": "21348:47:1", - "nodeType": "YulExpressionStatement", - "src": "21348:47:1" - }, - { - "nativeSrc": "21404:139:1", - "nodeType": "YulAssignment", - "src": "21404:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "21538:4:1", - "nodeType": "YulIdentifier", - "src": "21538:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack", - "nativeSrc": "21412:124:1", - "nodeType": "YulIdentifier", - "src": "21412:124:1" - }, - "nativeSrc": "21412:131:1", - "nodeType": "YulFunctionCall", - "src": "21412:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "21404:4:1", - "nodeType": "YulIdentifier", - "src": "21404:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "21131:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "21282:9:1", - "nodeType": "YulTypedName", - "src": "21282:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "21297:4:1", - "nodeType": "YulTypedName", - "src": "21297:4:1", - "type": "" - } - ], - "src": "21131:419:1" - }, - { - "body": { - "nativeSrc": "21669:34:1", - "nodeType": "YulBlock", - "src": "21669:34:1", - "statements": [ - { - "nativeSrc": "21679:18:1", - "nodeType": "YulAssignment", - "src": "21679:18:1", - "value": { - "name": "pos", - "nativeSrc": "21694:3:1", - "nodeType": "YulIdentifier", - "src": "21694:3:1" - }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "21679:11:1", - "nodeType": "YulIdentifier", - "src": "21679:11:1" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "21556:147:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "21641:3:1", - "nodeType": "YulTypedName", - "src": "21641:3:1", - "type": "" - }, - { - "name": "length", - "nativeSrc": "21646:6:1", - "nodeType": "YulTypedName", - "src": "21646:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "21657:11:1", - "nodeType": "YulTypedName", - "src": "21657:11:1", - "type": "" - } - ], - "src": "21556:147:1" - }, - { - "body": { - "nativeSrc": "21836:765:1", - "nodeType": "YulBlock", - "src": "21836:765:1", - "statements": [ - { - "nativeSrc": "21846:29:1", - "nodeType": "YulVariableDeclaration", - "src": "21846:29:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "21869:5:1", - "nodeType": "YulIdentifier", - "src": "21869:5:1" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "21863:5:1", - "nodeType": "YulIdentifier", - "src": "21863:5:1" - }, - "nativeSrc": "21863:12:1", - "nodeType": "YulFunctionCall", - "src": "21863:12:1" - }, - "variables": [ - { - "name": "slotValue", - "nativeSrc": "21850:9:1", - "nodeType": "YulTypedName", - "src": "21850:9:1", - "type": "" - } - ] - }, - { - "nativeSrc": "21884:50:1", - "nodeType": "YulVariableDeclaration", - "src": "21884:50:1", - "value": { - "arguments": [ - { - "name": "slotValue", - "nativeSrc": "21924:9:1", - "nodeType": "YulIdentifier", - "src": "21924:9:1" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nativeSrc": "21898:25:1", - "nodeType": "YulIdentifier", - "src": "21898:25:1" - }, - "nativeSrc": "21898:36:1", - "nodeType": "YulFunctionCall", - "src": "21898:36:1" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "21888:6:1", - "nodeType": "YulTypedName", - "src": "21888:6:1", - "type": "" - } - ] - }, - { - "nativeSrc": "21943:95:1", - "nodeType": "YulAssignment", - "src": "21943:95:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "22026:3:1", - "nodeType": "YulIdentifier", - "src": "22026:3:1" - }, - { - "name": "length", - "nativeSrc": "22031:6:1", - "nodeType": "YulIdentifier", - "src": "22031:6:1" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "21950:75:1", - "nodeType": "YulIdentifier", - "src": "21950:75:1" - }, - "nativeSrc": "21950:88:1", - "nodeType": "YulFunctionCall", - "src": "21950:88:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "21943:3:1", - "nodeType": "YulIdentifier", - "src": "21943:3:1" - } - ] - }, - { - "cases": [ - { - "body": { - "nativeSrc": "22087:159:1", - "nodeType": "YulBlock", - "src": "22087:159:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "22140:3:1", - "nodeType": "YulIdentifier", - "src": "22140:3:1" - }, - { - "arguments": [ - { - "name": "slotValue", - "nativeSrc": "22149:9:1", - "nodeType": "YulIdentifier", - "src": "22149:9:1" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22164:4:1", - "nodeType": "YulLiteral", - "src": "22164:4:1", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "22160:3:1", - "nodeType": "YulIdentifier", - "src": "22160:3:1" - }, - "nativeSrc": "22160:9:1", - "nodeType": "YulFunctionCall", - "src": "22160:9:1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "22145:3:1", - "nodeType": "YulIdentifier", - "src": "22145:3:1" - }, - "nativeSrc": "22145:25:1", - "nodeType": "YulFunctionCall", - "src": "22145:25:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22133:6:1", - "nodeType": "YulIdentifier", - "src": "22133:6:1" - }, - "nativeSrc": "22133:38:1", - "nodeType": "YulFunctionCall", - "src": "22133:38:1" - }, - "nativeSrc": "22133:38:1", - "nodeType": "YulExpressionStatement", - "src": "22133:38:1" - }, - { - "nativeSrc": "22184:52:1", - "nodeType": "YulAssignment", - "src": "22184:52:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "22195:3:1", - "nodeType": "YulIdentifier", - "src": "22195:3:1" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "22204:6:1", - "nodeType": "YulIdentifier", - "src": "22204:6:1" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "22226:6:1", - "nodeType": "YulIdentifier", - "src": "22226:6:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "22219:6:1", - "nodeType": "YulIdentifier", - "src": "22219:6:1" - }, - "nativeSrc": "22219:14:1", - "nodeType": "YulFunctionCall", - "src": "22219:14:1" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "22212:6:1", - "nodeType": "YulIdentifier", - "src": "22212:6:1" - }, - "nativeSrc": "22212:22:1", - "nodeType": "YulFunctionCall", - "src": "22212:22:1" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "22200:3:1", - "nodeType": "YulIdentifier", - "src": "22200:3:1" - }, - "nativeSrc": "22200:35:1", - "nodeType": "YulFunctionCall", - "src": "22200:35:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22191:3:1", - "nodeType": "YulIdentifier", - "src": "22191:3:1" - }, - "nativeSrc": "22191:45:1", - "nodeType": "YulFunctionCall", - "src": "22191:45:1" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "22184:3:1", - "nodeType": "YulIdentifier", - "src": "22184:3:1" - } - ] - } - ] - }, - "nativeSrc": "22080:166:1", - "nodeType": "YulCase", - "src": "22080:166:1", - "value": { - "kind": "number", - "nativeSrc": "22085:1:1", - "nodeType": "YulLiteral", - "src": "22085:1:1", - "type": "", - "value": "0" - } - }, - { - "body": { - "nativeSrc": "22262:333:1", - "nodeType": "YulBlock", - "src": "22262:333:1", - "statements": [ - { - "nativeSrc": "22307:52:1", - "nodeType": "YulVariableDeclaration", - "src": "22307:52:1", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "22353:5:1", - "nodeType": "YulIdentifier", - "src": "22353:5:1" - } - ], - "functionName": { - "name": "array_dataslot_t_bytes_storage", - "nativeSrc": "22322:30:1", - "nodeType": "YulIdentifier", - "src": "22322:30:1" - }, - "nativeSrc": "22322:37:1", - "nodeType": "YulFunctionCall", - "src": "22322:37:1" - }, - "variables": [ - { - "name": "dataPos", - "nativeSrc": "22311:7:1", - "nodeType": "YulTypedName", - "src": "22311:7:1", - "type": "" - } - ] - }, - { - "nativeSrc": "22372:10:1", - "nodeType": "YulVariableDeclaration", - "src": "22372:10:1", - "value": { - "kind": "number", - "nativeSrc": "22381:1:1", - "nodeType": "YulLiteral", - "src": "22381:1:1", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "22376:1:1", - "nodeType": "YulTypedName", - "src": "22376:1:1", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "22439:110:1", - "nodeType": "YulBlock", - "src": "22439:110:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "22468:3:1", - "nodeType": "YulIdentifier", - "src": "22468:3:1" - }, - { - "name": "i", - "nativeSrc": "22473:1:1", - "nodeType": "YulIdentifier", - "src": "22473:1:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22464:3:1", - "nodeType": "YulIdentifier", - "src": "22464:3:1" - }, - "nativeSrc": "22464:11:1", - "nodeType": "YulFunctionCall", - "src": "22464:11:1" - }, - { - "arguments": [ - { - "name": "dataPos", - "nativeSrc": "22483:7:1", - "nodeType": "YulIdentifier", - "src": "22483:7:1" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "22477:5:1", - "nodeType": "YulIdentifier", - "src": "22477:5:1" - }, - "nativeSrc": "22477:14:1", - "nodeType": "YulFunctionCall", - "src": "22477:14:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22457:6:1", - "nodeType": "YulIdentifier", - "src": "22457:6:1" - }, - "nativeSrc": "22457:35:1", - "nodeType": "YulFunctionCall", - "src": "22457:35:1" - }, - "nativeSrc": "22457:35:1", - "nodeType": "YulExpressionStatement", - "src": "22457:35:1" - }, - { - "nativeSrc": "22509:26:1", - "nodeType": "YulAssignment", - "src": "22509:26:1", - "value": { - "arguments": [ - { - "name": "dataPos", - "nativeSrc": "22524:7:1", - "nodeType": "YulIdentifier", - "src": "22524:7:1" - }, - { - "kind": "number", - "nativeSrc": "22533:1:1", - "nodeType": "YulLiteral", - "src": "22533:1:1", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22520:3:1", - "nodeType": "YulIdentifier", - "src": "22520:3:1" - }, - "nativeSrc": "22520:15:1", - "nodeType": "YulFunctionCall", - "src": "22520:15:1" - }, - "variableNames": [ - { - "name": "dataPos", - "nativeSrc": "22509:7:1", - "nodeType": "YulIdentifier", - "src": "22509:7:1" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "22406:1:1", - "nodeType": "YulIdentifier", - "src": "22406:1:1" - }, - { - "name": "length", - "nativeSrc": "22409:6:1", - "nodeType": "YulIdentifier", - "src": "22409:6:1" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "22403:2:1", - "nodeType": "YulIdentifier", - "src": "22403:2:1" - }, - "nativeSrc": "22403:13:1", - "nodeType": "YulFunctionCall", - "src": "22403:13:1" - }, - "nativeSrc": "22395:154:1", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "22417:21:1", - "nodeType": "YulBlock", - "src": "22417:21:1", - "statements": [ - { - "nativeSrc": "22419:17:1", - "nodeType": "YulAssignment", - "src": "22419:17:1", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "22428:1:1", - "nodeType": "YulIdentifier", - "src": "22428:1:1" - }, - { - "kind": "number", - "nativeSrc": "22431:4:1", - "nodeType": "YulLiteral", - "src": "22431:4:1", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22424:3:1", - "nodeType": "YulIdentifier", - "src": "22424:3:1" - }, - "nativeSrc": "22424:12:1", - "nodeType": "YulFunctionCall", - "src": "22424:12:1" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "22419:1:1", - "nodeType": "YulIdentifier", - "src": "22419:1:1" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "22399:3:1", - "nodeType": "YulBlock", - "src": "22399:3:1", - "statements": [] - }, - "src": "22395:154:1" - }, - { - "nativeSrc": "22562:23:1", - "nodeType": "YulAssignment", - "src": "22562:23:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "22573:3:1", - "nodeType": "YulIdentifier", - "src": "22573:3:1" - }, - { - "name": "length", - "nativeSrc": "22578:6:1", - "nodeType": "YulIdentifier", - "src": "22578:6:1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22569:3:1", - "nodeType": "YulIdentifier", - "src": "22569:3:1" - }, - "nativeSrc": "22569:16:1", - "nodeType": "YulFunctionCall", - "src": "22569:16:1" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "22562:3:1", - "nodeType": "YulIdentifier", - "src": "22562:3:1" - } - ] - } - ] - }, - "nativeSrc": "22255:340:1", - "nodeType": "YulCase", - "src": "22255:340:1", - "value": { - "kind": "number", - "nativeSrc": "22260:1:1", - "nodeType": "YulLiteral", - "src": "22260:1:1", - "type": "", - "value": "1" - } - } - ], - "expression": { - "arguments": [ - { - "name": "slotValue", - "nativeSrc": "22058:9:1", - "nodeType": "YulIdentifier", - "src": "22058:9:1" - }, - { - "kind": "number", - "nativeSrc": "22069:1:1", - "nodeType": "YulLiteral", - "src": "22069:1:1", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "22054:3:1", - "nodeType": "YulIdentifier", - "src": "22054:3:1" - }, - "nativeSrc": "22054:17:1", - "nodeType": "YulFunctionCall", - "src": "22054:17:1" - }, - "nativeSrc": "22047:548:1", - "nodeType": "YulSwitch", - "src": "22047:548:1" - } - ] - }, - "name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "21731:870:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "21817:5:1", - "nodeType": "YulTypedName", - "src": "21817:5:1", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "21824:3:1", - "nodeType": "YulTypedName", - "src": "21824:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "21832:3:1", - "nodeType": "YulTypedName", - "src": "21832:3:1", - "type": "" - } - ], - "src": "21731:870:1" - }, - { - "body": { - "nativeSrc": "22738:134:1", - "nodeType": "YulBlock", - "src": "22738:134:1", - "statements": [ - { - "nativeSrc": "22749:97:1", - "nodeType": "YulAssignment", - "src": "22749:97:1", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "22833:6:1", - "nodeType": "YulIdentifier", - "src": "22833:6:1" - }, - { - "name": "pos", - "nativeSrc": "22842:3:1", - "nodeType": "YulIdentifier", - "src": "22842:3:1" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "22756:76:1", - "nodeType": "YulIdentifier", - "src": "22756:76:1" - }, - "nativeSrc": "22756:90:1", - "nodeType": "YulFunctionCall", - "src": "22756:90:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "22749:3:1", - "nodeType": "YulIdentifier", - "src": "22749:3:1" - } - ] - }, - { - "nativeSrc": "22856:10:1", - "nodeType": "YulAssignment", - "src": "22856:10:1", - "value": { - "name": "pos", - "nativeSrc": "22863:3:1", - "nodeType": "YulIdentifier", - "src": "22863:3:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "22856:3:1", - "nodeType": "YulIdentifier", - "src": "22856:3:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "22607:265:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "22717:3:1", - "nodeType": "YulTypedName", - "src": "22717:3:1", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "22723:6:1", - "nodeType": "YulTypedName", - "src": "22723:6:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "22734:3:1", - "nodeType": "YulTypedName", - "src": "22734:3:1", - "type": "" - } - ], - "src": "22607:265:1" - }, - { - "body": { - "nativeSrc": "22984:53:1", - "nodeType": "YulBlock", - "src": "22984:53:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "23006:6:1", - "nodeType": "YulIdentifier", - "src": "23006:6:1" - }, - { - "kind": "number", - "nativeSrc": "23014:1:1", - "nodeType": "YulLiteral", - "src": "23014:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23002:3:1", - "nodeType": "YulIdentifier", - "src": "23002:3:1" - }, - "nativeSrc": "23002:14:1", - "nodeType": "YulFunctionCall", - "src": "23002:14:1" - }, - { - "hexValue": "7478206661696c6564", - "kind": "string", - "nativeSrc": "23018:11:1", - "nodeType": "YulLiteral", - "src": "23018:11:1", - "type": "", - "value": "tx failed" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22995:6:1", - "nodeType": "YulIdentifier", - "src": "22995:6:1" - }, - "nativeSrc": "22995:35:1", - "nodeType": "YulFunctionCall", - "src": "22995:35:1" - }, - "nativeSrc": "22995:35:1", - "nodeType": "YulExpressionStatement", - "src": "22995:35:1" - } - ] - }, - "name": "store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2", - "nativeSrc": "22878:159:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "22976:6:1", - "nodeType": "YulTypedName", - "src": "22976:6:1", - "type": "" - } - ], - "src": "22878:159:1" - }, - { - "body": { - "nativeSrc": "23189:219:1", - "nodeType": "YulBlock", - "src": "23189:219:1", - "statements": [ - { - "nativeSrc": "23199:73:1", - "nodeType": "YulAssignment", - "src": "23199:73:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "23265:3:1", - "nodeType": "YulIdentifier", - "src": "23265:3:1" - }, - { - "kind": "number", - "nativeSrc": "23270:1:1", - "nodeType": "YulLiteral", - "src": "23270:1:1", - "type": "", - "value": "9" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "23206:58:1", - "nodeType": "YulIdentifier", - "src": "23206:58:1" - }, - "nativeSrc": "23206:66:1", - "nodeType": "YulFunctionCall", - "src": "23206:66:1" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "23199:3:1", - "nodeType": "YulIdentifier", - "src": "23199:3:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "23370:3:1", - "nodeType": "YulIdentifier", - "src": "23370:3:1" - } - ], - "functionName": { - "name": "store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2", - "nativeSrc": "23281:88:1", - "nodeType": "YulIdentifier", - "src": "23281:88:1" - }, - "nativeSrc": "23281:93:1", - "nodeType": "YulFunctionCall", - "src": "23281:93:1" - }, - "nativeSrc": "23281:93:1", - "nodeType": "YulExpressionStatement", - "src": "23281:93:1" - }, - { - "nativeSrc": "23383:19:1", - "nodeType": "YulAssignment", - "src": "23383:19:1", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "23394:3:1", - "nodeType": "YulIdentifier", - "src": "23394:3:1" - }, - { - "kind": "number", - "nativeSrc": "23399:2:1", - "nodeType": "YulLiteral", - "src": "23399:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23390:3:1", - "nodeType": "YulIdentifier", - "src": "23390:3:1" - }, - "nativeSrc": "23390:12:1", - "nodeType": "YulFunctionCall", - "src": "23390:12:1" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "23383:3:1", - "nodeType": "YulIdentifier", - "src": "23383:3:1" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack", - "nativeSrc": "23043:365:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "23177:3:1", - "nodeType": "YulTypedName", - "src": "23177:3:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "23185:3:1", - "nodeType": "YulTypedName", - "src": "23185:3:1", - "type": "" - } - ], - "src": "23043:365:1" - }, - { - "body": { - "nativeSrc": "23585:248:1", - "nodeType": "YulBlock", - "src": "23585:248:1", - "statements": [ - { - "nativeSrc": "23595:26:1", - "nodeType": "YulAssignment", - "src": "23595:26:1", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "23607:9:1", - "nodeType": "YulIdentifier", - "src": "23607:9:1" - }, - { - "kind": "number", - "nativeSrc": "23618:2:1", - "nodeType": "YulLiteral", - "src": "23618:2:1", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23603:3:1", - "nodeType": "YulIdentifier", - "src": "23603:3:1" - }, - "nativeSrc": "23603:18:1", - "nodeType": "YulFunctionCall", - "src": "23603:18:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "23595:4:1", - "nodeType": "YulIdentifier", - "src": "23595:4:1" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "23642:9:1", - "nodeType": "YulIdentifier", - "src": "23642:9:1" - }, - { - "kind": "number", - "nativeSrc": "23653:1:1", - "nodeType": "YulLiteral", - "src": "23653:1:1", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23638:3:1", - "nodeType": "YulIdentifier", - "src": "23638:3:1" - }, - "nativeSrc": "23638:17:1", - "nodeType": "YulFunctionCall", - "src": "23638:17:1" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "23661:4:1", - "nodeType": "YulIdentifier", - "src": "23661:4:1" - }, - { - "name": "headStart", - "nativeSrc": "23667:9:1", - "nodeType": "YulIdentifier", - "src": "23667:9:1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "23657:3:1", - "nodeType": "YulIdentifier", - "src": "23657:3:1" - }, - "nativeSrc": "23657:20:1", - "nodeType": "YulFunctionCall", - "src": "23657:20:1" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "23631:6:1", - "nodeType": "YulIdentifier", - "src": "23631:6:1" - }, - "nativeSrc": "23631:47:1", - "nodeType": "YulFunctionCall", - "src": "23631:47:1" - }, - "nativeSrc": "23631:47:1", - "nodeType": "YulExpressionStatement", - "src": "23631:47:1" - }, - { - "nativeSrc": "23687:139:1", - "nodeType": "YulAssignment", - "src": "23687:139:1", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "23821:4:1", - "nodeType": "YulIdentifier", - "src": "23821:4:1" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack", - "nativeSrc": "23695:124:1", - "nodeType": "YulIdentifier", - "src": "23695:124:1" - }, - "nativeSrc": "23695:131:1", - "nodeType": "YulFunctionCall", - "src": "23695:131:1" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "23687:4:1", - "nodeType": "YulIdentifier", - "src": "23687:4:1" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "23414:419:1", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "23565:9:1", - "nodeType": "YulTypedName", - "src": "23565:9:1", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "23580:4:1", - "nodeType": "YulTypedName", - "src": "23580:4:1", - "type": "" - } - ], - "src": "23414:419:1" - } - ] - }, - "contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bool_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_bool_to_t_bool_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e(memPtr) {\n\n mstore(add(memPtr, 0), \"not owner\")\n\n }\n\n function abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 9)\n store_literal_in_memory_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f2881edc58d5a08d0243d7f8afdab31d949d85825e628e4b88558657a031f74e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251(memPtr) {\n\n mstore(add(memPtr, 0), \"tx does not exist\")\n\n }\n\n function abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_84e2d1a509546c41d5a3a56640858a8269898dd2016ac58ebf7c14e22ec6f251_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626(memPtr) {\n\n mstore(add(memPtr, 0), \"tx already confirmed\")\n\n }\n\n function abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8d5c8a10b5398946b9d5a279c8cb394ee9c79020b58133c6ebded99a47602626_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae(memPtr) {\n\n mstore(add(memPtr, 0), \"tx not confirmed\")\n\n }\n\n function abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e04ab5b4b41c3ea5301e7bc8bc140c17a16480c5d3b8c462ee1e7e75e09d10ae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function array_dataslot_t_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_bytes_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n let newLen := array_length_t_bytes_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_bytes_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513(memPtr) {\n\n mstore(add(memPtr, 0), \"cannot execute tx\")\n\n }\n\n function abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n store_literal_in_memory_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f09dd648f7116184af5d4169f291914ab80ec58178e12cee02a7badeb36f8513_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_bytes_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, length)\n }\n }\n\n function abi_encode_tuple_packed_t_bytes_storage__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2(memPtr) {\n\n mstore(add(memPtr, 0), \"tx failed\")\n\n }\n\n function abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 9)\n store_literal_in_memory_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7c05a956646a564f0a6d3eaa0a2277c6b7125ab174100307087ca8bd8beaa3b2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", - "id": 1, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x9ACE38C2 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x9ACE38C2 EQ PUSH2 0x253 JUMPI DUP1 PUSH4 0xA0E67E2B EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0xC01A8C84 EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0xC6427474 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xD0549B85 EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0xEE22610B EQ PUSH2 0x33C JUMPI PUSH2 0x102 JUMP JUMPDEST DUP1 PUSH4 0x25E7C27 EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0x20EA8D86 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x2E7700F0 EQ PUSH2 0x16D JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x198 JUMPI DUP1 PUSH4 0x33EA3DC8 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x80F59A65 EQ PUSH2 0x216 JUMPI PUSH2 0x102 JUMP JUMPDEST CALLDATASIZE PUSH2 0x102 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x90890809C654F11D6E72A28FA60149770A0D11EC6C92319D6CEB2BB0A4EA1A15 CALLVALUE SELFBALANCE PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP3 SWAP2 SWAP1 PUSH2 0x116D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x113 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x365 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13B SWAP2 SWAP1 PUSH2 0x1244 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x166 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x3A4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH2 0x67E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x125F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CC SWAP2 SWAP1 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F7 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x6AB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x13F3 JUMP JUMPDEST PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x12EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A9 PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B6 SWAP2 SWAP1 PUSH2 0x14F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0x976 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x1648 JUMP JUMPDEST PUSH2 0xC53 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x326 PUSH2 0xE56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x125F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x363 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35E SWAP2 SWAP1 PUSH2 0x11D6 JUMP JUMPDEST PUSH2 0xE5C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x375 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x427 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x478 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46F SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x48D JUMPI PUSH2 0x48C PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4EC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E3 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x502 JUMPI PUSH2 0x501 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x5AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A6 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x5C4 SWAP2 SWAP1 PUSH2 0x18D6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0DCA620E2E81F7841D07BCC105E1704FB01475B278A9D4C236E1C62945EDD55 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x4 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x6C9 JUMPI PUSH2 0x6C8 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 ADD SLOAD DUP3 PUSH1 0x2 ADD DUP4 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP5 PUSH1 0x4 ADD SLOAD DUP3 DUP1 SLOAD PUSH2 0x72A SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x756 SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7A3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x778 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7A3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x786 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP3 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP SWAP6 POP POP SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x7FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x84C SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x878 SWAP1 PUSH2 0x1939 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8C5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x89A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8C5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8A8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 POP DUP6 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x96C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x922 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0xA4A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA41 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xA5F JUMPI PUSH2 0xA5E PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xABE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAB5 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x3 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xB5D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB54 SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xB73 JUMPI PUSH2 0xB72 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x4 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB98 SWAP2 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5CBE105E36805F7820E291F799D5794FF948AF2A5F664E580382DEFB63390041 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xCDF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCD6 SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP1 SLOAD SWAP1 POP SWAP1 POP PUSH1 0x4 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xDBB SWAP2 SWAP1 PUSH2 0x1B4A JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE POP POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xD5A05BF70715AD82A09A756320284A1B54C9FF74CD0F8CCE6219E79B563FE59D DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xE48 SWAP3 SWAP2 SWAP1 PUSH2 0x1C1C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xEE8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEDF SWAP1 PUSH2 0x1714 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0xF30 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF27 SWAP1 PUSH2 0x1780 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x4 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xF45 JUMPI PUSH2 0xF44 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xFA4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF9B SWAP1 PUSH2 0x181B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xFBA JUMPI PUSH2 0xFB9 PUSH2 0x17A0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x5 MUL ADD SWAP1 POP PUSH1 0x2 SLOAD DUP2 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0x1013 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x100A SWAP1 PUSH2 0x1C98 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x2 ADD PUSH1 0x40 MLOAD PUSH2 0x1083 SWAP2 SWAP1 PUSH2 0x1D46 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x10C0 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x10C5 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1109 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1100 SWAP1 PUSH2 0x1DA9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5445F318F4F5FCFB66592E68E0CC5822AA15664039BD5F0FFDE24C5A8142B1AC PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1167 DUP2 PUSH2 0x1154 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1182 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x115E JUMP JUMPDEST PUSH2 0x118F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11B3 DUP2 PUSH2 0x1154 JUMP JUMPDEST DUP2 EQ PUSH2 0x11BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11D0 DUP2 PUSH2 0x11AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11EC JUMPI PUSH2 0x11EB PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11FA DUP5 DUP3 DUP6 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122E DUP3 PUSH2 0x1203 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x123E DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1259 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1235 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1274 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1283 DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP2 EQ PUSH2 0x128E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12A0 DUP2 PUSH2 0x127A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12BC JUMPI PUSH2 0x12BB PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12CA DUP5 DUP3 DUP6 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E8 DUP2 PUSH2 0x12D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1303 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x12DF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1343 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1328 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x136B DUP3 PUSH2 0x1309 JUMP JUMPDEST PUSH2 0x1375 DUP2 DUP6 PUSH2 0x1314 JUMP JUMPDEST SWAP4 POP PUSH2 0x1385 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1325 JUMP JUMPDEST PUSH2 0x138E DUP2 PUSH2 0x134F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x13AE PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x1235 JUMP JUMPDEST PUSH2 0x13BB PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x115E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x13CD DUP2 DUP7 PUSH2 0x1360 JUMP JUMPDEST SWAP1 POP PUSH2 0x13DC PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x12DF JUMP JUMPDEST PUSH2 0x13E9 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x115E JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x140A JUMPI PUSH2 0x1409 PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1418 DUP6 DUP3 DUP7 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1429 DUP6 DUP3 DUP7 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1468 DUP2 PUSH2 0x1223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x147A DUP4 DUP4 PUSH2 0x145F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x149E DUP3 PUSH2 0x1433 JUMP JUMPDEST PUSH2 0x14A8 DUP2 DUP6 PUSH2 0x143E JUMP JUMPDEST SWAP4 POP PUSH2 0x14B3 DUP4 PUSH2 0x144F JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14E4 JUMPI DUP2 MLOAD PUSH2 0x14CB DUP9 DUP3 PUSH2 0x146E JUMP JUMPDEST SWAP8 POP PUSH2 0x14D6 DUP4 PUSH2 0x1486 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x14B7 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x150B DUP2 DUP5 PUSH2 0x1493 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1555 DUP3 PUSH2 0x134F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1574 JUMPI PUSH2 0x1573 PUSH2 0x151D JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1587 PUSH2 0x1196 JUMP JUMPDEST SWAP1 POP PUSH2 0x1593 DUP3 DUP3 PUSH2 0x154C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x15B3 JUMPI PUSH2 0x15B2 PUSH2 0x151D JUMP JUMPDEST JUMPDEST PUSH2 0x15BC DUP3 PUSH2 0x134F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15EB PUSH2 0x15E6 DUP5 PUSH2 0x1598 JUMP JUMPDEST PUSH2 0x157D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1607 JUMPI PUSH2 0x1606 PUSH2 0x1518 JUMP JUMPDEST JUMPDEST PUSH2 0x1612 DUP5 DUP3 DUP6 PUSH2 0x15C9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x162F JUMPI PUSH2 0x162E PUSH2 0x1513 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x163F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x15D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1661 JUMPI PUSH2 0x1660 PUSH2 0x11A0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166F DUP7 DUP3 DUP8 ADD PUSH2 0x1291 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1680 DUP7 DUP3 DUP8 ADD PUSH2 0x11C1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16A1 JUMPI PUSH2 0x16A0 PUSH2 0x11A5 JUMP JUMPDEST JUMPDEST PUSH2 0x16AD DUP7 DUP3 DUP8 ADD PUSH2 0x161A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x6E6F74206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16FE PUSH1 0x9 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1709 DUP3 PUSH2 0x16C8 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x172D DUP2 PUSH2 0x16F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x747820646F6573206E6F74206578697374000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x176A PUSH1 0x11 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1775 DUP3 PUSH2 0x1734 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1799 DUP2 PUSH2 0x175D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x747820616C726561647920636F6E6669726D6564000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1805 PUSH1 0x14 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1810 DUP3 PUSH2 0x17CF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1834 DUP2 PUSH2 0x17F8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x7478206E6F7420636F6E6669726D656400000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1871 PUSH1 0x10 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x187C DUP3 PUSH2 0x183B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x18A0 DUP2 PUSH2 0x1864 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18E1 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP2 POP PUSH2 0x18EC DUP4 PUSH2 0x1154 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1904 JUMPI PUSH2 0x1903 PUSH2 0x18A7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1951 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1964 JUMPI PUSH2 0x1963 PUSH2 0x190A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1975 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP2 POP PUSH2 0x1980 DUP4 PUSH2 0x1154 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1998 JUMPI PUSH2 0x1997 PUSH2 0x18A7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x1A00 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x19C3 JUMP JUMPDEST PUSH2 0x1A0A DUP7 DUP4 PUSH2 0x19C3 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A47 PUSH2 0x1A42 PUSH2 0x1A3D DUP5 PUSH2 0x1154 JUMP JUMPDEST PUSH2 0x1A22 JUMP JUMPDEST PUSH2 0x1154 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A61 DUP4 PUSH2 0x1A2C JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A6D DUP3 PUSH2 0x1A4E JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x19D0 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x1A8A PUSH2 0x1A7D JUMP JUMPDEST PUSH2 0x1A95 DUP2 DUP5 DUP5 PUSH2 0x1A58 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1AB9 JUMPI PUSH2 0x1AAE PUSH1 0x0 DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1A9B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1AFE JUMPI PUSH2 0x1ACF DUP2 PUSH2 0x199E JUMP JUMPDEST PUSH2 0x1AD8 DUP5 PUSH2 0x19B3 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1AE7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1AFB PUSH2 0x1AF3 DUP6 PUSH2 0x19B3 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1A9A JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B21 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1B03 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B3A DUP4 DUP4 PUSH2 0x1B10 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B53 DUP3 PUSH2 0x1309 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6C JUMPI PUSH2 0x1B6B PUSH2 0x151D JUMP JUMPDEST JUMPDEST PUSH2 0x1B76 DUP3 SLOAD PUSH2 0x1939 JUMP JUMPDEST PUSH2 0x1B81 DUP3 DUP3 DUP6 PUSH2 0x1ABD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1BA2 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1BAC DUP6 DUP3 PUSH2 0x1B2E JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1C14 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1BC2 DUP7 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1BEA JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1BC5 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1C07 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1C03 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1B10 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C31 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x115E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1C43 DUP2 DUP5 PUSH2 0x1360 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x63616E6E6F742065786563757465207478000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C82 PUSH1 0x11 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C8D DUP3 PUSH2 0x1C4C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1CB1 DUP2 PUSH2 0x1C75 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x1CD0 DUP2 PUSH2 0x1939 JUMP JUMPDEST PUSH2 0x1CDA DUP2 DUP7 PUSH2 0x1CB8 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x1CF5 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x1D0A JUMPI PUSH2 0x1D3D JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x1D3D JUMP JUMPDEST PUSH2 0x1D13 DUP6 PUSH2 0x199E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1D35 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1D16 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D52 DUP3 DUP5 PUSH2 0x1CC3 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x7478206661696C65640000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D93 PUSH1 0x9 DUP4 PUSH2 0x16B7 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D9E DUP3 PUSH2 0x1D5D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1DC2 DUP2 PUSH2 0x1D86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0xA8 SLOAD 0xF MSIZE SWAP1 CODESIZE 0xE4 PUSH21 0x56A3383A941318CFDEBBDCE2F2C455DC79E7B7EC9A 0xE6 0xF8 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "235:4744:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2321:10;2313:53;;;2333:9;2344:21;2313:53;;;;;;;:::i;:::-;;;;;;;;235:4744;;;;;727:23;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3840:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4352:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;757:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4459:518;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;992:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1059:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;4256:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2862:403;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2379:477;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;803:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3271:563;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;727:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3840:410::-;1138:7;:19;1146:10;1138:19;;;;;;;;;;;;;;;;;;;;;;;;;1130:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;3923:8:::1;1257:12;:19;;;;1246:8;:30;1238:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3945:8:::2;1515:12;1528:8;1515:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:31;;;;;;;;;;;;1514:32;1506:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3965:31:::3;3999:12;4012:8;3999:22;;;;;;;;:::i;:::-;;;;;;;;;;;;3965:56;;4039:11;:21;4051:8;4039:21;;;;;;;;;;;:33;4061:10;4039:33;;;;;;;;;;;;;;;;;;;;;;;;;4031:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;4135:1;4103:11;:28;;;:33;;;;;;;:::i;:::-;;;;;;;;4182:5;4146:11;:21;4158:8;4146:21;;;;;;;;;;;:33;4168:10;4146:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;4234:8;4222:10;4203:40;;;;;;;;;;;;3955:295;1308:1:::2;1181::::1;3840:410:::0;:::o;4352:101::-;4404:4;4427:12;:19;;;;4420:26;;4352:101;:::o;757:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;4459:518::-;4570:10;4594;4618:17;4649:13;4676:21;4722:31;4756:12;4769:8;4756:22;;;;;;;;:::i;:::-;;;;;;;;;;;;4722:56;;4809:11;:14;;;;;;;;;;;;4837:11;:17;;;4868:11;:16;;4898:11;:20;;;;;;;;;;;;4932:11;:28;;;4788:182;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4459:518;;;;;;;:::o;992:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1059:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4256:90::-;4298:16;4333:6;4326:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4256:90;:::o;2862:403::-;1138:7;:19;1146:10;1138:19;;;;;;;;;;;;;;;;;;;;;;;;;1130:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2969:8:::1;1257:12;:19;;;;1246:8;:30;1238:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2999:8:::2;1515:12;1528:8;1515:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:31;;;;;;;;;;;;1514:32;1506:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3030:8:::3;1378:11;:21;1390:8;1378:21;;;;;;;;;;;:33;1400:10;1378:33;;;;;;;;;;;;;;;;;;;;;;;;;1377:34;1369:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3054:31:::4;3088:12;3101:8;3088:22;;;;;;;;:::i;:::-;;;;;;;;;;;;3054:56;;3152:1;3120:11;:28;;;:33;;;;;;;:::i;:::-;;;;;;;;3199:4;3163:11;:21;3175:8;3163:21;;;;;;;;;;;:33;3185:10;3163:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;3249:8;3237:10;3218:40;;;;;;;;;;;;3044:221;1581:1:::3;1308::::2;1181::::1;2862:403:::0;:::o;2379:477::-;1138:7;:19;1146:10;1138:19;;;;;;;;;;;;;;;;;;;;;;;;;1130:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2509:12:::1;2524;:19;;;;2509:34;;2553:12;2584:182;;;;;;;;2618:3;2584:182;;;;;;2646:6;2584:182;;;;2676:5;2584:182;;;;2709:5;2584:182;;;;;;2750:1;2584:182;;::::0;2553:223:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2830:3;2791:58;;2821:7;2809:10;2791:58;;;2835:6;2843:5;2791:58;;;;;;;:::i;:::-;;;;;;;;2499:357;2379:477:::0;;;:::o;803:36::-;;;;:::o;3271:563::-;1138:7;:19;1146:10;1138:19;;;;;;;;;;;;;;;;;;;;;;;;;1130:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;3354:8:::1;1257:12;:19;;;;1246:8;:30;1238:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3376:8:::2;1515:12;1528:8;1515:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:31;;;;;;;;;;;;1514:32;1506:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3396:31:::3;3430:12;3443:8;3430:22;;;;;;;;:::i;:::-;;;;;;;;;;;;3396:56;;3515:24;;3483:11;:28;;;:56;;3462:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3615:4;3592:11;:20;;;:27;;;;;;;;;;;;;;;;;;3630:12;3648:11;:14;;;;;;;;;;;;:19;;3675:11;:17;;;3707:11;:16;;3648:85;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3629:104;;;3751:7;3743:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;3818:8;3806:10;3787:40;;;;;;;;;;;;3386:448;;1308:1:::2;1181::::1;3271:563:::0;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:332::-;335:4;373:2;362:9;358:18;350:26;;386:71;454:1;443:9;439:17;430:6;386:71;:::i;:::-;467:72;535:2;524:9;520:18;511:6;467:72;:::i;:::-;214:332;;;;;:::o;552:75::-;585:6;618:2;612:9;602:19;;552:75;:::o;633:117::-;742:1;739;732:12;756:117;865:1;862;855:12;879:122;952:24;970:5;952:24;:::i;:::-;945:5;942:35;932:63;;991:1;988;981:12;932:63;879:122;:::o;1007:139::-;1053:5;1091:6;1078:20;1069:29;;1107:33;1134:5;1107:33;:::i;:::-;1007:139;;;;:::o;1152:329::-;1211:6;1260:2;1248:9;1239:7;1235:23;1231:32;1228:119;;;1266:79;;:::i;:::-;1228:119;1386:1;1411:53;1456:7;1447:6;1436:9;1432:22;1411:53;:::i;:::-;1401:63;;1357:117;1152:329;;;;:::o;1487:126::-;1524:7;1564:42;1557:5;1553:54;1542:65;;1487:126;;;:::o;1619:96::-;1656:7;1685:24;1703:5;1685:24;:::i;:::-;1674:35;;1619:96;;;:::o;1721:118::-;1808:24;1826:5;1808:24;:::i;:::-;1803:3;1796:37;1721:118;;:::o;1845:222::-;1938:4;1976:2;1965:9;1961:18;1953:26;;1989:71;2057:1;2046:9;2042:17;2033:6;1989:71;:::i;:::-;1845:222;;;;:::o;2073:::-;2166:4;2204:2;2193:9;2189:18;2181:26;;2217:71;2285:1;2274:9;2270:17;2261:6;2217:71;:::i;:::-;2073:222;;;;:::o;2301:122::-;2374:24;2392:5;2374:24;:::i;:::-;2367:5;2364:35;2354:63;;2413:1;2410;2403:12;2354:63;2301:122;:::o;2429:139::-;2475:5;2513:6;2500:20;2491:29;;2529:33;2556:5;2529:33;:::i;:::-;2429:139;;;;:::o;2574:329::-;2633:6;2682:2;2670:9;2661:7;2657:23;2653:32;2650:119;;;2688:79;;:::i;:::-;2650:119;2808:1;2833:53;2878:7;2869:6;2858:9;2854:22;2833:53;:::i;:::-;2823:63;;2779:117;2574:329;;;;:::o;2909:90::-;2943:7;2986:5;2979:13;2972:21;2961:32;;2909:90;;;:::o;3005:109::-;3086:21;3101:5;3086:21;:::i;:::-;3081:3;3074:34;3005:109;;:::o;3120:210::-;3207:4;3245:2;3234:9;3230:18;3222:26;;3258:65;3320:1;3309:9;3305:17;3296:6;3258:65;:::i;:::-;3120:210;;;;:::o;3336:98::-;3387:6;3421:5;3415:12;3405:22;;3336:98;;;:::o;3440:168::-;3523:11;3557:6;3552:3;3545:19;3597:4;3592:3;3588:14;3573:29;;3440:168;;;;:::o;3614:246::-;3695:1;3705:113;3719:6;3716:1;3713:13;3705:113;;;3804:1;3799:3;3795:11;3789:18;3785:1;3780:3;3776:11;3769:39;3741:2;3738:1;3734:10;3729:15;;3705:113;;;3852:1;3843:6;3838:3;3834:16;3827:27;3676:184;3614:246;;;:::o;3866:102::-;3907:6;3958:2;3954:7;3949:2;3942:5;3938:14;3934:28;3924:38;;3866:102;;;:::o;3974:373::-;4060:3;4088:38;4120:5;4088:38;:::i;:::-;4142:70;4205:6;4200:3;4142:70;:::i;:::-;4135:77;;4221:65;4279:6;4274:3;4267:4;4260:5;4256:16;4221:65;:::i;:::-;4311:29;4333:6;4311:29;:::i;:::-;4306:3;4302:39;4295:46;;4064:283;3974:373;;;;:::o;4353:739::-;4570:4;4608:3;4597:9;4593:19;4585:27;;4622:71;4690:1;4679:9;4675:17;4666:6;4622:71;:::i;:::-;4703:72;4771:2;4760:9;4756:18;4747:6;4703:72;:::i;:::-;4822:9;4816:4;4812:20;4807:2;4796:9;4792:18;4785:48;4850:76;4921:4;4912:6;4850:76;:::i;:::-;4842:84;;4936:66;4998:2;4987:9;4983:18;4974:6;4936:66;:::i;:::-;5012:73;5080:3;5069:9;5065:19;5056:6;5012:73;:::i;:::-;4353:739;;;;;;;;:::o;5098:474::-;5166:6;5174;5223:2;5211:9;5202:7;5198:23;5194:32;5191:119;;;5229:79;;:::i;:::-;5191:119;5349:1;5374:53;5419:7;5410:6;5399:9;5395:22;5374:53;:::i;:::-;5364:63;;5320:117;5476:2;5502:53;5547:7;5538:6;5527:9;5523:22;5502:53;:::i;:::-;5492:63;;5447:118;5098:474;;;;;:::o;5578:114::-;5645:6;5679:5;5673:12;5663:22;;5578:114;;;:::o;5698:184::-;5797:11;5831:6;5826:3;5819:19;5871:4;5866:3;5862:14;5847:29;;5698:184;;;;:::o;5888:132::-;5955:4;5978:3;5970:11;;6008:4;6003:3;5999:14;5991:22;;5888:132;;;:::o;6026:108::-;6103:24;6121:5;6103:24;:::i;:::-;6098:3;6091:37;6026:108;;:::o;6140:179::-;6209:10;6230:46;6272:3;6264:6;6230:46;:::i;:::-;6308:4;6303:3;6299:14;6285:28;;6140:179;;;;:::o;6325:113::-;6395:4;6427;6422:3;6418:14;6410:22;;6325:113;;;:::o;6474:732::-;6593:3;6622:54;6670:5;6622:54;:::i;:::-;6692:86;6771:6;6766:3;6692:86;:::i;:::-;6685:93;;6802:56;6852:5;6802:56;:::i;:::-;6881:7;6912:1;6897:284;6922:6;6919:1;6916:13;6897:284;;;6998:6;6992:13;7025:63;7084:3;7069:13;7025:63;:::i;:::-;7018:70;;7111:60;7164:6;7111:60;:::i;:::-;7101:70;;6957:224;6944:1;6941;6937:9;6932:14;;6897:284;;;6901:14;7197:3;7190:10;;6598:608;;;6474:732;;;;:::o;7212:373::-;7355:4;7393:2;7382:9;7378:18;7370:26;;7442:9;7436:4;7432:20;7428:1;7417:9;7413:17;7406:47;7470:108;7573:4;7564:6;7470:108;:::i;:::-;7462:116;;7212:373;;;;:::o;7591:117::-;7700:1;7697;7690:12;7714:117;7823:1;7820;7813:12;7837:180;7885:77;7882:1;7875:88;7982:4;7979:1;7972:15;8006:4;8003:1;7996:15;8023:281;8106:27;8128:4;8106:27;:::i;:::-;8098:6;8094:40;8236:6;8224:10;8221:22;8200:18;8188:10;8185:34;8182:62;8179:88;;;8247:18;;:::i;:::-;8179:88;8287:10;8283:2;8276:22;8066:238;8023:281;;:::o;8310:129::-;8344:6;8371:20;;:::i;:::-;8361:30;;8400:33;8428:4;8420:6;8400:33;:::i;:::-;8310:129;;;:::o;8445:307::-;8506:4;8596:18;8588:6;8585:30;8582:56;;;8618:18;;:::i;:::-;8582:56;8656:29;8678:6;8656:29;:::i;:::-;8648:37;;8740:4;8734;8730:15;8722:23;;8445:307;;;:::o;8758:146::-;8855:6;8850:3;8845;8832:30;8896:1;8887:6;8882:3;8878:16;8871:27;8758:146;;;:::o;8910:423::-;8987:5;9012:65;9028:48;9069:6;9028:48;:::i;:::-;9012:65;:::i;:::-;9003:74;;9100:6;9093:5;9086:21;9138:4;9131:5;9127:16;9176:3;9167:6;9162:3;9158:16;9155:25;9152:112;;;9183:79;;:::i;:::-;9152:112;9273:54;9320:6;9315:3;9310;9273:54;:::i;:::-;8993:340;8910:423;;;;;:::o;9352:338::-;9407:5;9456:3;9449:4;9441:6;9437:17;9433:27;9423:122;;9464:79;;:::i;:::-;9423:122;9581:6;9568:20;9606:78;9680:3;9672:6;9665:4;9657:6;9653:17;9606:78;:::i;:::-;9597:87;;9413:277;9352:338;;;;:::o;9696:797::-;9782:6;9790;9798;9847:2;9835:9;9826:7;9822:23;9818:32;9815:119;;;9853:79;;:::i;:::-;9815:119;9973:1;9998:53;10043:7;10034:6;10023:9;10019:22;9998:53;:::i;:::-;9988:63;;9944:117;10100:2;10126:53;10171:7;10162:6;10151:9;10147:22;10126:53;:::i;:::-;10116:63;;10071:118;10256:2;10245:9;10241:18;10228:32;10287:18;10279:6;10276:30;10273:117;;;10309:79;;:::i;:::-;10273:117;10414:62;10468:7;10459:6;10448:9;10444:22;10414:62;:::i;:::-;10404:72;;10199:287;9696:797;;;;;:::o;10499:169::-;10583:11;10617:6;10612:3;10605:19;10657:4;10652:3;10648:14;10633:29;;10499:169;;;;:::o;10674:159::-;10814:11;10810:1;10802:6;10798:14;10791:35;10674:159;:::o;10839:365::-;10981:3;11002:66;11066:1;11061:3;11002:66;:::i;:::-;10995:73;;11077:93;11166:3;11077:93;:::i;:::-;11195:2;11190:3;11186:12;11179:19;;10839:365;;;:::o;11210:419::-;11376:4;11414:2;11403:9;11399:18;11391:26;;11463:9;11457:4;11453:20;11449:1;11438:9;11434:17;11427:47;11491:131;11617:4;11491:131;:::i;:::-;11483:139;;11210:419;;;:::o;11635:167::-;11775:19;11771:1;11763:6;11759:14;11752:43;11635:167;:::o;11808:366::-;11950:3;11971:67;12035:2;12030:3;11971:67;:::i;:::-;11964:74;;12047:93;12136:3;12047:93;:::i;:::-;12165:2;12160:3;12156:12;12149:19;;11808:366;;;:::o;12180:419::-;12346:4;12384:2;12373:9;12369:18;12361:26;;12433:9;12427:4;12423:20;12419:1;12408:9;12404:17;12397:47;12461:131;12587:4;12461:131;:::i;:::-;12453:139;;12180:419;;;:::o;12605:180::-;12653:77;12650:1;12643:88;12750:4;12747:1;12740:15;12774:4;12771:1;12764:15;12791:170;12931:22;12927:1;12919:6;12915:14;12908:46;12791:170;:::o;12967:366::-;13109:3;13130:67;13194:2;13189:3;13130:67;:::i;:::-;13123:74;;13206:93;13295:3;13206:93;:::i;:::-;13324:2;13319:3;13315:12;13308:19;;12967:366;;;:::o;13339:419::-;13505:4;13543:2;13532:9;13528:18;13520:26;;13592:9;13586:4;13582:20;13578:1;13567:9;13563:17;13556:47;13620:131;13746:4;13620:131;:::i;:::-;13612:139;;13339:419;;;:::o;13764:166::-;13904:18;13900:1;13892:6;13888:14;13881:42;13764:166;:::o;13936:366::-;14078:3;14099:67;14163:2;14158:3;14099:67;:::i;:::-;14092:74;;14175:93;14264:3;14175:93;:::i;:::-;14293:2;14288:3;14284:12;14277:19;;13936:366;;;:::o;14308:419::-;14474:4;14512:2;14501:9;14497:18;14489:26;;14561:9;14555:4;14551:20;14547:1;14536:9;14532:17;14525:47;14589:131;14715:4;14589:131;:::i;:::-;14581:139;;14308:419;;;:::o;14733:180::-;14781:77;14778:1;14771:88;14878:4;14875:1;14868:15;14902:4;14899:1;14892:15;14919:194;14959:4;14979:20;14997:1;14979:20;:::i;:::-;14974:25;;15013:20;15031:1;15013:20;:::i;:::-;15008:25;;15057:1;15054;15050:9;15042:17;;15081:1;15075:4;15072:11;15069:37;;;15086:18;;:::i;:::-;15069:37;14919:194;;;;:::o;15119:180::-;15167:77;15164:1;15157:88;15264:4;15261:1;15254:15;15288:4;15285:1;15278:15;15305:320;15349:6;15386:1;15380:4;15376:12;15366:22;;15433:1;15427:4;15423:12;15454:18;15444:81;;15510:4;15502:6;15498:17;15488:27;;15444:81;15572:2;15564:6;15561:14;15541:18;15538:38;15535:84;;15591:18;;:::i;:::-;15535:84;15356:269;15305:320;;;:::o;15631:191::-;15671:3;15690:20;15708:1;15690:20;:::i;:::-;15685:25;;15724:20;15742:1;15724:20;:::i;:::-;15719:25;;15767:1;15764;15760:9;15753:16;;15788:3;15785:1;15782:10;15779:36;;;15795:18;;:::i;:::-;15779:36;15631:191;;;;:::o;15828:140::-;15876:4;15899:3;15891:11;;15922:3;15919:1;15912:14;15956:4;15953:1;15943:18;15935:26;;15828:140;;;:::o;15974:93::-;16011:6;16058:2;16053;16046:5;16042:14;16038:23;16028:33;;15974:93;;;:::o;16073:107::-;16117:8;16167:5;16161:4;16157:16;16136:37;;16073:107;;;;:::o;16186:393::-;16255:6;16305:1;16293:10;16289:18;16328:97;16358:66;16347:9;16328:97;:::i;:::-;16446:39;16476:8;16465:9;16446:39;:::i;:::-;16434:51;;16518:4;16514:9;16507:5;16503:21;16494:30;;16567:4;16557:8;16553:19;16546:5;16543:30;16533:40;;16262:317;;16186:393;;;;;:::o;16585:60::-;16613:3;16634:5;16627:12;;16585:60;;;:::o;16651:142::-;16701:9;16734:53;16752:34;16761:24;16779:5;16761:24;:::i;:::-;16752:34;:::i;:::-;16734:53;:::i;:::-;16721:66;;16651:142;;;:::o;16799:75::-;16842:3;16863:5;16856:12;;16799:75;;;:::o;16880:269::-;16990:39;17021:7;16990:39;:::i;:::-;17051:91;17100:41;17124:16;17100:41;:::i;:::-;17092:6;17085:4;17079:11;17051:91;:::i;:::-;17045:4;17038:105;16956:193;16880:269;;;:::o;17155:73::-;17200:3;17155:73;:::o;17234:189::-;17311:32;;:::i;:::-;17352:65;17410:6;17402;17396:4;17352:65;:::i;:::-;17287:136;17234:189;;:::o;17429:186::-;17489:120;17506:3;17499:5;17496:14;17489:120;;;17560:39;17597:1;17590:5;17560:39;:::i;:::-;17533:1;17526:5;17522:13;17513:22;;17489:120;;;17429:186;;:::o;17621:541::-;17721:2;17716:3;17713:11;17710:445;;;17755:37;17786:5;17755:37;:::i;:::-;17838:29;17856:10;17838:29;:::i;:::-;17828:8;17824:44;18021:2;18009:10;18006:18;18003:49;;;18042:8;18027:23;;18003:49;18065:80;18121:22;18139:3;18121:22;:::i;:::-;18111:8;18107:37;18094:11;18065:80;:::i;:::-;17725:430;;17710:445;17621:541;;;:::o;18168:117::-;18222:8;18272:5;18266:4;18262:16;18241:37;;18168:117;;;;:::o;18291:169::-;18335:6;18368:51;18416:1;18412:6;18404:5;18401:1;18397:13;18368:51;:::i;:::-;18364:56;18449:4;18443;18439:15;18429:25;;18342:118;18291:169;;;;:::o;18465:295::-;18541:4;18687:29;18712:3;18706:4;18687:29;:::i;:::-;18679:37;;18749:3;18746:1;18742:11;18736:4;18733:21;18725:29;;18465:295;;;;:::o;18765:1390::-;18880:36;18912:3;18880:36;:::i;:::-;18981:18;18973:6;18970:30;18967:56;;;19003:18;;:::i;:::-;18967:56;19047:38;19079:4;19073:11;19047:38;:::i;:::-;19132:66;19191:6;19183;19177:4;19132:66;:::i;:::-;19225:1;19249:4;19236:17;;19281:2;19273:6;19270:14;19298:1;19293:617;;;;19954:1;19971:6;19968:77;;;20020:9;20015:3;20011:19;20005:26;19996:35;;19968:77;20071:67;20131:6;20124:5;20071:67;:::i;:::-;20065:4;20058:81;19927:222;19263:886;;19293:617;19345:4;19341:9;19333:6;19329:22;19379:36;19410:4;19379:36;:::i;:::-;19437:1;19451:208;19465:7;19462:1;19459:14;19451:208;;;19544:9;19539:3;19535:19;19529:26;19521:6;19514:42;19595:1;19587:6;19583:14;19573:24;;19642:2;19631:9;19627:18;19614:31;;19488:4;19485:1;19481:12;19476:17;;19451:208;;;19687:6;19678:7;19675:19;19672:179;;;19745:9;19740:3;19736:19;19730:26;19788:48;19830:4;19822:6;19818:17;19807:9;19788:48;:::i;:::-;19780:6;19773:64;19695:156;19672:179;19897:1;19893;19885:6;19881:14;19877:22;19871:4;19864:36;19300:610;;;19263:886;;18855:1300;;;18765:1390;;:::o;20161:419::-;20300:4;20338:2;20327:9;20323:18;20315:26;;20351:71;20419:1;20408:9;20404:17;20395:6;20351:71;:::i;:::-;20469:9;20463:4;20459:20;20454:2;20443:9;20439:18;20432:48;20497:76;20568:4;20559:6;20497:76;:::i;:::-;20489:84;;20161:419;;;;;:::o;20586:167::-;20726:19;20722:1;20714:6;20710:14;20703:43;20586:167;:::o;20759:366::-;20901:3;20922:67;20986:2;20981:3;20922:67;:::i;:::-;20915:74;;20998:93;21087:3;20998:93;:::i;:::-;21116:2;21111:3;21107:12;21100:19;;20759:366;;;:::o;21131:419::-;21297:4;21335:2;21324:9;21320:18;21312:26;;21384:9;21378:4;21374:20;21370:1;21359:9;21355:17;21348:47;21412:131;21538:4;21412:131;:::i;:::-;21404:139;;21131:419;;;:::o;21556:147::-;21657:11;21694:3;21679:18;;21556:147;;;;:::o;21731:870::-;21832:3;21869:5;21863:12;21898:36;21924:9;21898:36;:::i;:::-;21950:88;22031:6;22026:3;21950:88;:::i;:::-;21943:95;;22069:1;22058:9;22054:17;22085:1;22080:166;;;;22260:1;22255:340;;;;22047:548;;22080:166;22164:4;22160:9;22149;22145:25;22140:3;22133:38;22226:6;22219:14;22212:22;22204:6;22200:35;22195:3;22191:45;22184:52;;22080:166;;22255:340;22322:37;22353:5;22322:37;:::i;:::-;22381:1;22395:154;22409:6;22406:1;22403:13;22395:154;;;22483:7;22477:14;22473:1;22468:3;22464:11;22457:35;22533:1;22524:7;22520:15;22509:26;;22431:4;22428:1;22424:12;22419:17;;22395:154;;;22578:6;22573:3;22569:16;22562:23;;22262:333;;22047:548;;21836:765;;21731:870;;;;:::o;22607:265::-;22734:3;22756:90;22842:3;22833:6;22756:90;:::i;:::-;22749:97;;22863:3;22856:10;;22607:265;;;;:::o;22878:159::-;23018:11;23014:1;23006:6;23002:14;22995:35;22878:159;:::o;23043:365::-;23185:3;23206:66;23270:1;23265:3;23206:66;:::i;:::-;23199:73;;23281:93;23370:3;23281:93;:::i;:::-;23399:2;23394:3;23390:12;23383:19;;23043:365;;;:::o;23414:419::-;23580:4;23618:2;23607:9;23603:18;23595:26;;23667:9;23661:4;23657:20;23653:1;23642:9;23638:17;23631:47;23695:131;23821:4;23695:131;:::i;:::-;23687:139;;23414:419;;;:::o" - }, - "methodIdentifiers": { - "confirmTransaction(uint256)": "c01a8c84", - "executeTransaction(uint256)": "ee22610b", - "getOwners()": "a0e67e2b", - "getTransaction(uint256)": "33ea3dc8", - "getTransactionCount()": "2e7700f0", - "isConfirmed(uint256,address)": "80f59a65", - "isOwner(address)": "2f54bf6e", - "numConfirmationsRequired()": "d0549b85", - "owners(uint256)": "025e7c27", - "revokeConfirmation(uint256)": "20ea8d86", - "submitTransaction(address,uint256,bytes)": "c6427474", - "transactions(uint256)": "9ace38c2" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_numConfirmationsRequired\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"txIndex\",\"type\":\"uint256\"}],\"name\":\"ConfirmTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"txIndex\",\"type\":\"uint256\"}],\"name\":\"ExecuteTransaction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"txIndex\",\"type\":\"uint256\"}],\"name\":\"RevokeConfirmation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owener\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"txIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SubmitTransaction\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_txIndex\",\"type\":\"uint256\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_txIndex\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_txIndex\",\"type\":\"uint256\"}],\"name\":\"getTransaction\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"numConfirmations\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTransactionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isConfirmed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numConfirmationsRequired\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_txIndex\",\"type\":\"uint256\"}],\"name\":\"revokeConfirmation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"submitTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transactions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"numConfirmations\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/MultiSigWallet.sol\":\"MultiSigWallet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/MultiSigWallet.sol\":{\"keccak256\":\"0x31b5a0b5d6ed9cfc087631dae354d286a48459d9a5da00c844e6eb1ea6a85643\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d392db6a949ec88855d23451b79deb94c0ecdbb8c02320dd1a9ae33518aebe7\",\"dweb:/ipfs/Qmb6Y2JiHeZT5hvDpSWCpq2ZCvByp3KgEpnXnkkfz494vK\"]}},\"version\":1}" - } - } - } - } -} \ No newline at end of file diff --git a/contract/ignition/deployments/chain-80002/deployed_addresses.json b/contract/ignition/deployments/chain-80002/deployed_addresses.json deleted file mode 100644 index f323cbc..0000000 --- a/contract/ignition/deployments/chain-80002/deployed_addresses.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "MultiSigWallet#MultiSigWallet": "0x375A5bbF574Cd10EaDCd9B632369Ce3644AcaE15" -} diff --git a/contract/ignition/deployments/chain-80002/journal.jsonl b/contract/ignition/deployments/chain-80002/journal.jsonl deleted file mode 100644 index d3ff34c..0000000 --- a/contract/ignition/deployments/chain-80002/journal.jsonl +++ /dev/null @@ -1,7 +0,0 @@ - -{"chainId":80002,"type":"DEPLOYMENT_INITIALIZE"} -{"artifactId":"MultiSigWallet#MultiSigWallet","constructorArgs":[["0xfE87F7EF2a58a1f363a444332df6c131C683e35f"],1],"contractName":"MultiSigWallet","dependencies":[],"from":"0xfe87f7ef2a58a1f363a444332df6c131c683e35f","futureId":"MultiSigWallet#MultiSigWallet","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"MultiSigWallet#MultiSigWallet","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b50604051620025a8380380620025a8833981810160405281019062000037919062000505565b60008251116200007e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200007590620005cc565b60405180910390fd5b60008111801562000090575081518111155b620000d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c99062000664565b60405180910390fd5b60005b8251811015620002cc576000838281518110620000f757620000f662000686565b5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200016a9062000705565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161562000203576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001fa9062000777565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508080600101915050620000d5565b5080600281905550505062000799565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034082620002f5565b810181811067ffffffffffffffff8211171562000362576200036162000306565b5b80604052505050565b600062000377620002dc565b905062000385828262000335565b919050565b600067ffffffffffffffff821115620003a857620003a762000306565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003eb82620003be565b9050919050565b620003fd81620003de565b81146200040957600080fd5b50565b6000815190506200041d81620003f2565b92915050565b60006200043a62000434846200038a565b6200036b565b9050808382526020820190506020840283018581111562000460576200045f620003b9565b5b835b818110156200048d57806200047888826200040c565b84526020840193505060208101905062000462565b5050509392505050565b600082601f830112620004af57620004ae620002f0565b5b8151620004c184826020860162000423565b91505092915050565b6000819050919050565b620004df81620004ca565b8114620004eb57600080fd5b50565b600081519050620004ff81620004d4565b92915050565b600080604083850312156200051f576200051e620002e6565b5b600083015167ffffffffffffffff81111562000540576200053f620002eb565b5b6200054e8582860162000497565b92505060206200056185828601620004ee565b9150509250929050565b600082825260208201905092915050565b7f6f776e6572732072657175697265640000000000000000000000000000000000600082015250565b6000620005b4600f836200056b565b9150620005c1826200057c565b602082019050919050565b60006020820190508181036000830152620005e781620005a5565b9050919050565b7f696e76616c6964206e756d626572206f6620726571756972656420636f6e666960008201527f726d6174696f6e73000000000000000000000000000000000000000000000000602082015250565b60006200064c6028836200056b565b91506200065982620005ee565b604082019050919050565b600060208201905081810360008301526200067f816200063d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f696e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b6000620006ed600d836200056b565b9150620006fa82620006b5565b602082019050919050565b600060208201905081810360008301526200072081620006de565b9050919050565b7f6f776e6572206e6f7420756e6971756500000000000000000000000000000000600082015250565b60006200075f6010836200056b565b91506200076c8262000727565b602082019050919050565b60006020820190508181036000830152620007928162000750565b9050919050565b611dff80620007a96000396000f3fe6080604052600436106100ab5760003560e01c80639ace38c2116100645780639ace38c214610253578063a0e67e2b14610294578063c01a8c84146102bf578063c6427474146102e8578063d0549b8514610311578063ee22610b1461033c57610102565b8063025e7c271461010757806320ea8d86146101445780632e7700f01461016d5780632f54bf6e1461019857806333ea3dc8146101d557806380f59a651461021657610102565b36610102573373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1534476040516100f892919061116d565b60405180910390a2005b600080fd5b34801561011357600080fd5b5061012e600480360381019061012991906111d6565b610365565b60405161013b9190611244565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906111d6565b6103a4565b005b34801561017957600080fd5b5061018261067e565b60405161018f919061125f565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba91906112a6565b61068b565b6040516101cc91906112ee565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f791906111d6565b6106ab565b60405161020d959493929190611399565b60405180910390f35b34801561022257600080fd5b5061023d600480360381019061023891906113f3565b6107be565b60405161024a91906112ee565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906111d6565b6107ed565b60405161028b959493929190611399565b60405180910390f35b3480156102a057600080fd5b506102a96108e8565b6040516102b691906114f1565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906111d6565b610976565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611648565b610c53565b005b34801561031d57600080fd5b50610326610e56565b604051610333919061125f565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e91906111d6565b610e5c565b005b6000818154811061037557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790611714565b60405180910390fd5b806004805490508110610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046f90611780565b60405180910390fd5b816004818154811061048d5761048c6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff16156104ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e39061181b565b60405180910390fd5b600060048481548110610502576105016117a0565b5b906000526020600020906005020190506003600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a690611887565b60405180910390fd5b60018160040160008282546105c491906118d6565b9250508190555060006003600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550833373ffffffffffffffffffffffffffffffffffffffff167ff0dca620e2e81f7841d07bcc105e1704fb01475b278a9d4c236e1c62945edd5560405160405180910390a350505050565b6000600480549050905090565b60016020528060005260406000206000915054906101000a900460ff1681565b60008060606000806000600487815481106106c9576106c86117a0565b5b906000526020600020906005020190508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010154826002018360030160009054906101000a900460ff16846004015482805461072a90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461075690611939565b80156107a35780601f10610778576101008083540402835291602001916107a3565b820191906000526020600020905b81548152906001019060200180831161078657829003601f168201915b50505050509250955095509550955095505091939590929450565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600481815481106107fd57600080fd5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201805461084c90611939565b80601f016020809104026020016040519081016040528092919081815260200182805461087890611939565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050908060030160009054906101000a900460ff16908060040154905085565b6060600080548060200260200160405190810160405280929190818152602001828054801561096c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610922575b5050505050905090565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f990611714565b60405180910390fd5b806004805490508110610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190611780565b60405180910390fd5b8160048181548110610a5f57610a5e6117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061181b565b60405180910390fd5b826003600082815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b549061181b565b60405180910390fd5b600060048581548110610b7357610b726117a0565b5b906000526020600020906005020190506001816004016000828254610b98919061196a565b9250508190555060016003600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f5cbe105e36805f7820e291f799d5794ff948af2a5f664e580382defb6339004160405160405180910390a35050505050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd690611714565b60405180910390fd5b6000600480549050905060046040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019081610dbb9190611b4a565b5060608201518160030160006101000a81548160ff0219169083151502179055506080820151816004015550508373ffffffffffffffffffffffffffffffffffffffff16813373ffffffffffffffffffffffffffffffffffffffff167fd5a05bf70715ad82a09a756320284a1b54c9ff74cd0f8cce6219e79b563fe59d8686604051610e48929190611c1c565b60405180910390a450505050565b60025481565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf90611714565b60405180910390fd5b806004805490508110610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790611780565b60405180910390fd5b8160048181548110610f4557610f446117a0565b5b906000526020600020906005020160030160009054906101000a900460ff1615610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b9061181b565b60405180910390fd5b600060048481548110610fba57610fb96117a0565b5b9060005260206000209060050201905060025481600401541015611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a90611c98565b60405180910390fd5b60018160030160006101000a81548160ff02191690831515021790555060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040516110839190611d46565b60006040518083038185875af1925050503d80600081146110c0576040519150601f19603f3d011682016040523d82523d6000602084013e6110c5565b606091505b5050905080611109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110090611da9565b60405180910390fd5b843373ffffffffffffffffffffffffffffffffffffffff167f5445f318f4f5fcfb66592e68e0cc5822aa15664039bd5f0ffde24c5a8142b1ac60405160405180910390a35050505050565b6000819050919050565b61116781611154565b82525050565b6000604082019050611182600083018561115e565b61118f602083018461115e565b9392505050565b6000604051905090565b600080fd5b600080fd5b6111b381611154565b81146111be57600080fd5b50565b6000813590506111d0816111aa565b92915050565b6000602082840312156111ec576111eb6111a0565b5b60006111fa848285016111c1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061122e82611203565b9050919050565b61123e81611223565b82525050565b60006020820190506112596000830184611235565b92915050565b6000602082019050611274600083018461115e565b92915050565b61128381611223565b811461128e57600080fd5b50565b6000813590506112a08161127a565b92915050565b6000602082840312156112bc576112bb6111a0565b5b60006112ca84828501611291565b91505092915050565b60008115159050919050565b6112e8816112d3565b82525050565b600060208201905061130360008301846112df565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611343578082015181840152602081019050611328565b60008484015250505050565b6000601f19601f8301169050919050565b600061136b82611309565b6113758185611314565b9350611385818560208601611325565b61138e8161134f565b840191505092915050565b600060a0820190506113ae6000830188611235565b6113bb602083018761115e565b81810360408301526113cd8186611360565b90506113dc60608301856112df565b6113e9608083018461115e565b9695505050505050565b6000806040838503121561140a576114096111a0565b5b6000611418858286016111c1565b925050602061142985828601611291565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61146881611223565b82525050565b600061147a838361145f565b60208301905092915050565b6000602082019050919050565b600061149e82611433565b6114a8818561143e565b93506114b38361144f565b8060005b838110156114e45781516114cb888261146e565b97506114d683611486565b9250506001810190506114b7565b5085935050505092915050565b6000602082019050818103600083015261150b8184611493565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6115558261134f565b810181811067ffffffffffffffff821117156115745761157361151d565b5b80604052505050565b6000611587611196565b9050611593828261154c565b919050565b600067ffffffffffffffff8211156115b3576115b261151d565b5b6115bc8261134f565b9050602081019050919050565b82818337600083830152505050565b60006115eb6115e684611598565b61157d565b90508281526020810184848401111561160757611606611518565b5b6116128482856115c9565b509392505050565b600082601f83011261162f5761162e611513565b5b813561163f8482602086016115d8565b91505092915050565b600080600060608486031215611661576116606111a0565b5b600061166f86828701611291565b9350506020611680868287016111c1565b925050604084013567ffffffffffffffff8111156116a1576116a06111a5565b5b6116ad8682870161161a565b9150509250925092565b600082825260208201905092915050565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b60006116fe6009836116b7565b9150611709826116c8565b602082019050919050565b6000602082019050818103600083015261172d816116f1565b9050919050565b7f747820646f6573206e6f74206578697374000000000000000000000000000000600082015250565b600061176a6011836116b7565b915061177582611734565b602082019050919050565b600060208201905081810360008301526117998161175d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f747820616c726561647920636f6e6669726d6564000000000000000000000000600082015250565b60006118056014836116b7565b9150611810826117cf565b602082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f7478206e6f7420636f6e6669726d656400000000000000000000000000000000600082015250565b60006118716010836116b7565b915061187c8261183b565b602082019050919050565b600060208201905081810360008301526118a081611864565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006118e182611154565b91506118ec83611154565b9250828203905081811115611904576119036118a7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061195157607f821691505b6020821081036119645761196361190a565b5b50919050565b600061197582611154565b915061198083611154565b9250828201905080821115611998576119976118a7565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826119c3565b611a0a86836119c3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000611a47611a42611a3d84611154565b611a22565b611154565b9050919050565b6000819050919050565b611a6183611a2c565b611a75611a6d82611a4e565b8484546119d0565b825550505050565b600090565b611a8a611a7d565b611a95818484611a58565b505050565b5b81811015611ab957611aae600082611a82565b600181019050611a9b565b5050565b601f821115611afe57611acf8161199e565b611ad8846119b3565b81016020851015611ae7578190505b611afb611af3856119b3565b830182611a9a565b50505b505050565b600082821c905092915050565b6000611b2160001984600802611b03565b1980831691505092915050565b6000611b3a8383611b10565b9150826002028217905092915050565b611b5382611309565b67ffffffffffffffff811115611b6c57611b6b61151d565b5b611b768254611939565b611b81828285611abd565b600060209050601f831160018114611bb45760008415611ba2578287015190505b611bac8582611b2e565b865550611c14565b601f198416611bc28661199e565b60005b82811015611bea57848901518255600182019150602085019450602081019050611bc5565b86831015611c075784890151611c03601f891682611b10565b8355505b6001600288020188555050505b505050505050565b6000604082019050611c31600083018561115e565b8181036020830152611c438184611360565b90509392505050565b7f63616e6e6f742065786563757465207478000000000000000000000000000000600082015250565b6000611c826011836116b7565b9150611c8d82611c4c565b602082019050919050565b60006020820190508181036000830152611cb181611c75565b9050919050565b600081905092915050565b60008154611cd081611939565b611cda8186611cb8565b94506001821660008114611cf55760018114611d0a57611d3d565b60ff1983168652811515820286019350611d3d565b611d138561199e565b60005b83811015611d3557815481890152600182019150602081019050611d16565b838801955050505b50505092915050565b6000611d528284611cc3565b915081905092915050565b7f7478206661696c65640000000000000000000000000000000000000000000000600082015250565b6000611d936009836116b7565b9150611d9e82611d5d565b602082019050919050565b60006020820190508181036000830152611dc281611d86565b905091905056fea264697066735822122013a8540f599038e47456a3383a941318cfdebbdce2f2c455dc79e7b7ec9ae6f864736f6c63430008180033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000fe87f7ef2a58a1f363a444332df6c131c683e35f","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"MultiSigWallet#MultiSigWallet","networkInteractionId":1,"nonce":0,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000000030"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000000"}},"hash":"0xd4dc229a0bf62662a2eb7b9d694a6ff854384b882fb2d1189fb83b6716f86ad1"},"type":"TRANSACTION_SEND"} -{"futureId":"MultiSigWallet#MultiSigWallet","hash":"0xd4dc229a0bf62662a2eb7b9d694a6ff854384b882fb2d1189fb83b6716f86ad1","networkInteractionId":1,"receipt":{"blockHash":"0x6f0664bbe1deab735065e919dc9ae82b486cd5ab63b8acfcd590acbd37f846c4","blockNumber":6731326,"contractAddress":"0x375A5bbF574Cd10EaDCd9B632369Ce3644AcaE15","logs":[{"address":"0x0000000000000000000000000000000000001010","data":"0x000000000000000000000000000000000000000000000000000678305e88060000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000004eb13811938060cb7800000000000000000000000000000000000000000000000002c012c05c8bfa0000000000000000000000000000000000000000000000004eb13e89c3dee8d178","logIndex":8,"topics":["0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63","0x0000000000000000000000000000000000000000000000000000000000001010","0x000000000000000000000000fe87f7ef2a58a1f363a444332df6c131c683e35f","0x00000000000000000000000022b64229c41429a023549fdab3385893b579327a"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"MultiSigWallet#MultiSigWallet","result":{"address":"0x375A5bbF574Cd10EaDCd9B632369Ce3644AcaE15","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/contract/package-lock.json b/contract/package-lock.json deleted file mode 100644 index a10a71b..0000000 --- a/contract/package-lock.json +++ /dev/null @@ -1,7360 +0,0 @@ -{ - "name": "contract", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "dotenv": "^16.4.5" - }, - "devDependencies": { - "@nomicfoundation/hardhat-toolbox": "^5.0.0", - "@types/chai": "^4.3.14", - "@types/mocha": "^10.0.6", - "@types/node": "^20.12.8", - "chai": "^4.4.1", - "hardhat": "^2.22.3", - "ts-node": "^10.9.2", - "typescript": "^5.4.5" - } - }, - "node_modules/@adraffy/ens-normalize": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", - "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", - "dev": true, - "peer": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@ethereumjs/rlp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", - "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", - "dev": true, - "peer": true, - "bin": { - "rlp": "bin/rlp" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@ethereumjs/util": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", - "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", - "dev": true, - "peer": true, - "dependencies": { - "@ethereumjs/rlp": "^4.0.1", - "ethereum-cryptography": "^2.0.0", - "micro-ftch": "^0.3.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@ethereumjs/util/node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/hashes": "1.3.3" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@ethereumjs/util/node_modules/@scure/bip32": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", - "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/curves": "~1.3.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@ethereumjs/util/node_modules/@scure/bip39": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", - "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", - "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/curves": "1.3.0", - "@noble/hashes": "1.3.3", - "@scure/bip32": "1.3.3", - "@scure/bip39": "1.2.2" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", - "dev": true, - "peer": true - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", - "dev": true, - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "peer": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "peer": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nomicfoundation/edr": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.3.7.tgz", - "integrity": "sha512-v2JFWnFKRsnOa6PDUrD+sr8amcdhxnG/YbL7LzmgRGU1odWEyOF4/EwNeUajQr4ZNKVWrYnJ6XjydXtUge5OBQ==", - "dev": true, - "engines": { - "node": ">= 18" - }, - "optionalDependencies": { - "@nomicfoundation/edr-darwin-arm64": "0.3.7", - "@nomicfoundation/edr-darwin-x64": "0.3.7", - "@nomicfoundation/edr-linux-arm64-gnu": "0.3.7", - "@nomicfoundation/edr-linux-arm64-musl": "0.3.7", - "@nomicfoundation/edr-linux-x64-gnu": "0.3.7", - "@nomicfoundation/edr-linux-x64-musl": "0.3.7", - "@nomicfoundation/edr-win32-x64-msvc": "0.3.7" - } - }, - "node_modules/@nomicfoundation/edr-darwin-arm64": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.3.7.tgz", - "integrity": "sha512-6tK9Lv/lSfyBvpEQ4nsTfgxyDT1y1Uv/x8Wa+aB+E8qGo3ToexQ1BMVjxJk6PChXCDOWxB3B4KhqaZFjdhl3Ow==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 18" - } - }, - "node_modules/@nomicfoundation/edr-darwin-x64": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.3.7.tgz", - "integrity": "sha512-1RrQ/1JPwxrYO69e0tglFv5H+ggour5Ii3bb727+yBpBShrxtOTQ7fZyfxA5h62LCN+0Z9wYOPeQ7XFcVurMaQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 18" - } - }, - "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.3.7.tgz", - "integrity": "sha512-ds/CKlBoVXIihjhflhgPn13EdKWed6r5bgvMs/YwRqT5wldQAQJZWAfA2+nYm0Yi2gMGh1RUpBcfkyl4pq7G+g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 18" - } - }, - "node_modules/@nomicfoundation/edr-linux-arm64-musl": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.3.7.tgz", - "integrity": "sha512-e29udiRaPujhLkM3+R6ju7QISrcyOqpcaxb2FsDWBkuD7H8uU9JPZEyyUIpEp5uIY0Jh1eEJPKZKIXQmQAEAuw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 18" - } - }, - "node_modules/@nomicfoundation/edr-linux-x64-gnu": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.3.7.tgz", - "integrity": "sha512-/xkjmTyv+bbJ4akBCW0qzFKxPOV4AqLOmqurov+s9umHb16oOv72osSa3SdzJED2gHDaKmpMITT4crxbar4Axg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 18" - } - }, - "node_modules/@nomicfoundation/edr-linux-x64-musl": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.3.7.tgz", - "integrity": "sha512-QwBP9xlmsbf/ldZDGLcE4QiAb8Zt46E/+WLpxHBATFhGa7MrpJh6Zse+h2VlrT/SYLPbh2cpHgSmoSlqVxWG9g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 18" - } - }, - "node_modules/@nomicfoundation/edr-win32-x64-msvc": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.3.7.tgz", - "integrity": "sha512-j/80DEnkxrF2ewdbk/gQ2EOPvgF0XSsg8D0o4+6cKhUVAW6XwtWKzIphNL6dyD2YaWEPgIrNvqiJK/aln0ww4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 18" - } - }, - "node_modules/@nomicfoundation/ethereumjs-common": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", - "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-util": "9.0.4" - } - }, - "node_modules/@nomicfoundation/ethereumjs-rlp": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", - "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", - "dev": true, - "bin": { - "rlp": "bin/rlp.cjs" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@nomicfoundation/ethereumjs-tx": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", - "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "c-kzg": "^2.1.2" - }, - "peerDependenciesMeta": { - "c-kzg": { - "optional": true - } - } - }, - "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-util": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", - "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "c-kzg": "^2.1.2" - }, - "peerDependenciesMeta": { - "c-kzg": { - "optional": true - } - } - }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/hardhat-chai-matchers": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.6.tgz", - "integrity": "sha512-Te1Uyo9oJcTCF0Jy9dztaLpshmlpjLf2yPtWXlXuLjMt3RRSmJLm/+rKVTW6gfadAEs12U/it6D0ZRnnRGiICQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/chai-as-promised": "^7.1.3", - "chai-as-promised": "^7.1.1", - "deep-eql": "^4.0.1", - "ordinal": "^1.0.3" - }, - "peerDependencies": { - "@nomicfoundation/hardhat-ethers": "^3.0.0", - "chai": "^4.2.0", - "ethers": "^6.1.0", - "hardhat": "^2.9.4" - } - }, - "node_modules/@nomicfoundation/hardhat-ethers": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz", - "integrity": "sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==", - "dev": true, - "peer": true, - "dependencies": { - "debug": "^4.1.1", - "lodash.isequal": "^4.5.0" - }, - "peerDependencies": { - "ethers": "^6.1.0", - "hardhat": "^2.0.0" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.1.tgz", - "integrity": "sha512-hWV/W9ZdG9HIqUiQXexrwoBBGP4IrDLghlZPAXXEXETmJ2AVPnBKQG626YmAYgEk2G3vX9ojn16daT+H2i/mFA==", - "dev": true, - "peer": true, - "dependencies": { - "@nomicfoundation/ignition-core": "^0.15.1", - "@nomicfoundation/ignition-ui": "^0.15.1", - "chalk": "^4.0.0", - "debug": "^4.3.2", - "fs-extra": "^10.0.0", - "prompts": "^2.4.2" - }, - "peerDependencies": { - "@nomicfoundation/hardhat-verify": "^2.0.1", - "hardhat": "^2.18.0" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition-ethers": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.1.tgz", - "integrity": "sha512-FPeE0EbJ+RcBGro9TxODyDffpSPhnG8ra43nJp7/1H2M0S+UkmJUeZlSjAIVfUut1zMwy+57j+PNn07dOr/YmQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "@nomicfoundation/hardhat-ethers": "^3.0.4", - "@nomicfoundation/hardhat-ignition": "^0.15.1", - "@nomicfoundation/ignition-core": "^0.15.1", - "ethers": "^6.7.0", - "hardhat": "^2.18.0" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true - }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@nomicfoundation/hardhat-network-helpers": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz", - "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==", - "dev": true, - "peer": true, - "dependencies": { - "ethereumjs-util": "^7.1.4" - }, - "peerDependencies": { - "hardhat": "^2.9.5" - } - }, - "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/hardhat-network-helpers/node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "peer": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@nomicfoundation/hardhat-toolbox": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz", - "integrity": "sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==", - "dev": true, - "peerDependencies": { - "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", - "@nomicfoundation/hardhat-ethers": "^3.0.0", - "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0", - "@nomicfoundation/hardhat-network-helpers": "^1.0.0", - "@nomicfoundation/hardhat-verify": "^2.0.0", - "@typechain/ethers-v6": "^0.5.0", - "@typechain/hardhat": "^9.0.0", - "@types/chai": "^4.2.0", - "@types/mocha": ">=9.1.0", - "@types/node": ">=18.0.0", - "chai": "^4.2.0", - "ethers": "^6.4.0", - "hardhat": "^2.11.0", - "hardhat-gas-reporter": "^1.0.8", - "solidity-coverage": "^0.8.1", - "ts-node": ">=8.0.0", - "typechain": "^8.3.0", - "typescript": ">=4.5.0" - } - }, - "node_modules/@nomicfoundation/hardhat-verify": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.6.tgz", - "integrity": "sha512-oKUI5fl8QC8jysE2LUBHE6rObzEmccJcc4b43Ov7LFMlCBZJE27qoqGIsg/++wX7L8Jdga+bkejPxl8NvsecpQ==", - "dev": true, - "peer": true, - "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@ethersproject/address": "^5.0.2", - "cbor": "^8.1.0", - "chalk": "^2.4.2", - "debug": "^4.1.1", - "lodash.clonedeep": "^4.5.0", - "semver": "^6.3.0", - "table": "^6.8.0", - "undici": "^5.14.0" - }, - "peerDependencies": { - "hardhat": "^2.0.4" - } - }, - "node_modules/@nomicfoundation/ignition-core": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.1.tgz", - "integrity": "sha512-/AZO0YHRv1+yQSOtSSbg4GEH9YhU8EVePSfByU2PZW2bsAK0SA8GdoLYFbVNl140dogem5lrE+bCKtX0eN/n+A==", - "dev": true, - "peer": true, - "dependencies": { - "@ethersproject/address": "5.6.1", - "@nomicfoundation/solidity-analyzer": "^0.1.1", - "cbor": "^9.0.0", - "debug": "^4.3.2", - "ethers": "^6.7.0", - "fs-extra": "^10.0.0", - "immer": "10.0.2", - "lodash": "4.17.21", - "ndjson": "2.0.0" - } - }, - "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" - } - }, - "node_modules/@nomicfoundation/ignition-core/node_modules/cbor": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", - "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", - "dev": true, - "peer": true, - "dependencies": { - "nofilter": "^3.1.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@nomicfoundation/ignition-core/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nomicfoundation/ignition-core/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@nomicfoundation/ignition-core/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@nomicfoundation/ignition-ui": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.1.tgz", - "integrity": "sha512-ecx6M9K4IeF7L0XCcHg0E72zlVaGSOlkhb/9XuWrA2ltfB/e4ZsOhVxXtwDf9xIcaq7tUdMSxyj6Ld0bPAhxAw==", - "dev": true, - "peer": true - }, - "node_modules/@nomicfoundation/solidity-analyzer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", - "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", - "dev": true, - "engines": { - "node": ">= 12" - }, - "optionalDependencies": { - "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", - "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", - "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", - "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", - "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", - "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", - "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", - "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", - "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", - "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", - "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", - "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@scure/base": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz", - "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==", - "dev": true, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", - "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.2.0", - "@noble/secp256k1": "~1.7.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@scure/bip39": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", - "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.2.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@sentry/core": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", - "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", - "dev": true, - "dependencies": { - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", - "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", - "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", - "dev": true, - "dependencies": { - "@sentry/core": "5.30.0", - "@sentry/hub": "5.30.0", - "@sentry/tracing": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", - "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/types": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", - "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", - "dev": true, - "dependencies": { - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@solidity-parser/parser": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", - "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", - "dev": true, - "peer": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "node_modules/@typechain/ethers-v6": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", - "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", - "dev": true, - "peer": true, - "dependencies": { - "lodash": "^4.17.15", - "ts-essentials": "^7.0.1" - }, - "peerDependencies": { - "ethers": "6.x", - "typechain": "^8.3.2", - "typescript": ">=4.7.0" - } - }, - "node_modules/@typechain/hardhat": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", - "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", - "dev": true, - "peer": true, - "dependencies": { - "fs-extra": "^9.1.0" - }, - "peerDependencies": { - "@typechain/ethers-v6": "^0.5.1", - "ethers": "^6.1.0", - "hardhat": "^2.9.9", - "typechain": "^8.3.2" - } - }, - "node_modules/@typechain/hardhat/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "peer": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typechain/hardhat/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@typechain/hardhat/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.14", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz", - "integrity": "sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==", - "dev": true - }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.8", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", - "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true, - "peer": true - }, - "node_modules/@types/mocha": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", - "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.12.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz", - "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true, - "peer": true - }, - "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", - "dev": true, - "peer": true - }, - "node_modules/@types/secp256k1": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", - "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", - "dev": true, - "peer": true - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true, - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/aes-js": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", - "dev": true, - "peer": true - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true, - "peer": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true, - "peer": true - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", - "dev": true, - "peer": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "peer": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", - "dev": true, - "peer": true, - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true, - "peer": true - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/boxen/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dev": true, - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dev": true, - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "peer": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true, - "peer": true - }, - "node_modules/cbor": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", - "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", - "dev": true, - "peer": true, - "dependencies": { - "nofilter": "^3.1.0" - }, - "engines": { - "node": ">=12.19" - } - }, - "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "peer": true, - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "dev": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", - "dev": true, - "peer": true, - "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/cli-table3/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "peer": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-table3/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "peer": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "peer": true, - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", - "dev": true, - "peer": true, - "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "peer": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "dev": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/death": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", - "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", - "dev": true, - "peer": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "peer": true - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "peer": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/difflib": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", - "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", - "dev": true, - "peer": true, - "dependencies": { - "heap": ">= 0.2.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "peer": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, - "peer": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", - "dev": true, - "peer": true, - "dependencies": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=0.12.0" - }, - "optionalDependencies": { - "source-map": "~0.2.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", - "dev": true, - "peer": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eth-gas-reporter": { - "version": "0.2.27", - "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", - "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", - "dev": true, - "peer": true, - "dependencies": { - "@solidity-parser/parser": "^0.14.0", - "axios": "^1.5.1", - "cli-table3": "^0.5.0", - "colors": "1.4.0", - "ethereum-cryptography": "^1.0.3", - "ethers": "^5.7.2", - "fs-readdir-recursive": "^1.1.0", - "lodash": "^4.17.14", - "markdown-table": "^1.1.3", - "mocha": "^10.2.0", - "req-cwd": "^2.0.0", - "sha1": "^1.1.1", - "sync-request": "^6.0.0" - }, - "peerDependencies": { - "@codechecks/client": "^0.1.0" - }, - "peerDependenciesMeta": { - "@codechecks/client": { - "optional": true - } - } - }, - "node_modules/eth-gas-reporter/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.1.0.tgz", - "integrity": "sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/hashes": "^1.4.0" - } - }, - "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethereum-cryptography": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", - "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", - "dev": true, - "dependencies": { - "@noble/hashes": "1.2.0", - "@noble/secp256k1": "1.7.1", - "@scure/bip32": "1.1.5", - "@scure/bip39": "1.1.1" - } - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethers": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.12.1.tgz", - "integrity": "sha512-j6wcVoZf06nqEcBbDWkKg8Fp895SS96dSnTCjiXT+8vt2o02raTn4Lo9ERUuIVU5bAjoPYeA+7ytQFexFmLuVw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/ethers/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethers/node_modules/@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", - "dev": true, - "peer": true - }, - "node_modules/ethers/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true, - "peer": true - }, - "node_modules/ethers/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", - "dev": true, - "peer": true, - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "dev": true, - "peer": true - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "peer": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "peer": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "peer": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "peer": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "peer": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fp-ts": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true, - "peer": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ghost-testrpc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", - "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", - "dev": true, - "peer": true, - "dependencies": { - "chalk": "^2.4.2", - "node-emoji": "^1.10.0" - }, - "bin": { - "testrpc-sc": "index.js" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "peer": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "peer": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, - "peer": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "peer": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hardhat": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.3.tgz", - "integrity": "sha512-k8JV2ECWNchD6ahkg2BR5wKVxY0OiKot7fuxiIpRK0frRqyOljcR2vKwgWSLw6YIeDcNNA4xybj7Og7NSxr2hA==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/edr": "^0.3.5", - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-tx": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "@nomicfoundation/solidity-analyzer": "^0.1.0", - "@sentry/node": "^5.18.1", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "^5.1.0", - "adm-zip": "^0.4.16", - "aggregate-error": "^3.0.0", - "ansi-escapes": "^4.3.0", - "boxen": "^5.1.2", - "chalk": "^2.4.2", - "chokidar": "^3.4.0", - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "enquirer": "^2.3.0", - "env-paths": "^2.2.0", - "ethereum-cryptography": "^1.0.3", - "ethereumjs-abi": "^0.6.8", - "find-up": "^2.1.0", - "fp-ts": "1.19.3", - "fs-extra": "^7.0.1", - "glob": "7.2.0", - "immutable": "^4.0.0-rc.12", - "io-ts": "1.10.4", - "keccak": "^3.0.2", - "lodash": "^4.17.11", - "mnemonist": "^0.38.0", - "mocha": "^10.0.0", - "p-map": "^4.0.0", - "raw-body": "^2.4.1", - "resolve": "1.17.0", - "semver": "^6.3.0", - "solc": "0.7.3", - "source-map-support": "^0.5.13", - "stacktrace-parser": "^0.1.10", - "tsort": "0.0.1", - "undici": "^5.14.0", - "uuid": "^8.3.2", - "ws": "^7.4.6" - }, - "bin": { - "hardhat": "internal/cli/bootstrap.js" - }, - "peerDependencies": { - "ts-node": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/hardhat-gas-reporter": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", - "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", - "dev": true, - "peer": true, - "dependencies": { - "array-uniq": "1.0.3", - "eth-gas-reporter": "^0.2.25", - "sha1": "^1.1.1" - }, - "peerDependencies": { - "hardhat": "^2.0.2" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "peer": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "peer": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/heap": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", - "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", - "dev": true, - "peer": true - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", - "dev": true, - "peer": true, - "dependencies": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "^10.0.3" - } - }, - "node_modules/http-response-object/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "peer": true - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", - "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", - "dev": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/immutable": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", - "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", - "dev": true - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "peer": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/io-ts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", - "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", - "dev": true, - "dependencies": { - "fp-ts": "^1.0.0" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", - "dev": true, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "peer": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "peer": true - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "peer": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "peer": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", - "dev": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/keccak": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", - "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "peer": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true, - "peer": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true, - "peer": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true, - "peer": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/markdown-table": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", - "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", - "dev": true, - "peer": true - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micro-ftch": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", - "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", - "dev": true, - "peer": true - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "peer": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "peer": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mnemonist": { - "version": "0.38.5", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", - "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", - "dev": true, - "dependencies": { - "obliterator": "^2.0.0" - } - }, - "node_modules/mocha": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", - "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "8.1.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/ndjson": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", - "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", - "dev": true, - "peer": true, - "dependencies": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.5", - "readable-stream": "^3.6.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "ndjson": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "peer": true - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true - }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "peer": true, - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/nofilter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", - "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12.19" - } - }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", - "dev": true, - "peer": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", - "dev": true, - "peer": true, - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "dev": true, - "peer": true - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obliterator": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", - "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "peer": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ordinal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", - "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", - "dev": true, - "peer": true - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-cache-control": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", - "dev": true, - "peer": true - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "peer": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "peer": true - }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "dev": true, - "peer": true, - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "peer": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "peer": true - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", - "dev": true, - "peer": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dev": true, - "peer": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "dev": true, - "peer": true, - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/req-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", - "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", - "dev": true, - "peer": true, - "dependencies": { - "req-from": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/req-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", - "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", - "dev": true, - "peer": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "peer": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sc-istanbul": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", - "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", - "dev": true, - "peer": true, - "dependencies": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "istanbul": "lib/cli.js" - } - }, - "node_modules/sc-istanbul/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "peer": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/sc-istanbul/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", - "dev": true, - "peer": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/sc-istanbul/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sc-istanbul/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "peer": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "peer": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sc-istanbul/node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", - "dev": true, - "peer": true - }, - "node_modules/sc-istanbul/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "peer": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/sha1": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", - "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", - "dev": true, - "peer": true, - "dependencies": { - "charenc": ">= 0.0.1", - "crypt": ">= 0.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "peer": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true - }, - "node_modules/solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", - "dev": true, - "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solcjs" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/solc/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/solc/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/solc/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/solidity-coverage": { - "version": "0.8.12", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.12.tgz", - "integrity": "sha512-8cOB1PtjnjFRqOgwFiD8DaUsYJtVJ6+YdXQtSZDrLGf8cdhhh8xzTtGzVTGeBf15kTv0v7lYPJlV/az7zLEPJw==", - "dev": true, - "peer": true, - "dependencies": { - "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.18.0", - "chalk": "^2.4.2", - "death": "^1.1.0", - "difflib": "^0.2.4", - "fs-extra": "^8.1.0", - "ghost-testrpc": "^0.0.2", - "global-modules": "^2.0.0", - "globby": "^10.0.1", - "jsonschema": "^1.2.4", - "lodash": "^4.17.21", - "mocha": "^10.2.0", - "node-emoji": "^1.10.0", - "pify": "^4.0.1", - "recursive-readdir": "^2.2.2", - "sc-istanbul": "^0.4.5", - "semver": "^7.3.4", - "shelljs": "^0.8.3", - "web3-utils": "^1.3.6" - }, - "bin": { - "solidity-coverage": "plugins/bin.js" - }, - "peerDependencies": { - "hardhat": "^2.11.0" - } - }, - "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", - "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", - "dev": true, - "peer": true - }, - "node_modules/solidity-coverage/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/solidity-coverage/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "peer": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "peer": true - }, - "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", - "dev": true, - "dependencies": { - "type-fest": "^0.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", - "dev": true, - "peer": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", - "dev": true, - "peer": true, - "dependencies": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "dev": true, - "peer": true, - "dependencies": { - "get-port": "^3.1.0" - } - }, - "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", - "dev": true, - "peer": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "dev": true, - "peer": true, - "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/then-request/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "dev": true, - "peer": true - }, - "node_modules/then-request/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dev": true, - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "peer": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ts-command-line-args": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", - "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", - "dev": true, - "peer": true, - "dependencies": { - "chalk": "^4.1.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.0", - "string-format": "^2.0.0" - }, - "bin": { - "write-markdown": "dist/write-markdown.js" - } - }, - "node_modules/ts-command-line-args/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-command-line-args/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-command-line-args/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-command-line-args/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true - }, - "node_modules/ts-command-line-args/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-command-line-args/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "typescript": ">=3.7.0" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", - "dev": true - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typechain": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", - "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", - "dev": true, - "peer": true, - "dependencies": { - "@types/prettier": "^2.1.1", - "debug": "^4.3.1", - "fs-extra": "^7.0.0", - "glob": "7.1.7", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.3.1", - "ts-command-line-args": "^2.2.0", - "ts-essentials": "^7.0.1" - }, - "bin": { - "typechain": "dist/cli/cli.js" - }, - "peerDependencies": { - "typescript": ">=4.3.0" - } - }, - "node_modules/typechain/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typechain/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true, - "peer": true - }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/undici": { - "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", - "dev": true, - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "peer": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true, - "peer": true - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/web3-utils": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", - "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", - "dev": true, - "peer": true, - "dependencies": { - "@ethereumjs/util": "^8.1.0", - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereum-cryptography": "^2.1.2", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils/node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/hashes": "1.3.3" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/web3-utils/node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/web3-utils/node_modules/@scure/bip32": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", - "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/curves": "~1.3.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/web3-utils/node_modules/@scure/bip39": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", - "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/web3-utils/node_modules/ethereum-cryptography": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", - "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/curves": "1.3.0", - "@noble/hashes": "1.3.3", - "@scure/bip32": "1.3.3", - "@scure/bip39": "1.2.2" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true, - "peer": true - }, - "node_modules/wordwrapjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", - "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "dev": true, - "peer": true, - "dependencies": { - "reduce-flatten": "^2.0.0", - "typical": "^5.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/wordwrapjs/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "peer": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/contract/package.json b/contract/package.json deleted file mode 100644 index 24fb9ce..0000000 --- a/contract/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "devDependencies": { - "@nomicfoundation/hardhat-toolbox": "^5.0.0", - "@types/chai": "^4.3.14", - "@types/mocha": "^10.0.6", - "@types/node": "^20.12.8", - "chai": "^4.4.1", - "hardhat": "^2.22.3", - "ts-node": "^10.9.2", - "typescript": "^5.4.5" - }, - "dependencies": { - "dotenv": "^16.4.5" - } -} diff --git a/contract/test/Lock.ts b/contract/test/Lock.ts deleted file mode 100644 index 160dbfa..0000000 --- a/contract/test/Lock.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { - time, - loadFixture, -} from "@nomicfoundation/hardhat-toolbox/network-helpers"; -import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs"; -import { expect } from "chai"; -import hre from "hardhat"; - -describe("Lock", function () { - // We define a fixture to reuse the same setup in every test. - // We use loadFixture to run this setup once, snapshot that state, - // and reset Hardhat Network to that snapshot in every test. - async function deployOneYearLockFixture() { - const ONE_YEAR_IN_SECS = 365 * 24 * 60 * 60; - const ONE_GWEI = 1_000_000_000; - - const lockedAmount = ONE_GWEI; - const unlockTime = (await time.latest()) + ONE_YEAR_IN_SECS; - - // Contracts are deployed using the first signer/account by default - const [owner, otherAccount] = await hre.ethers.getSigners(); - - const Lock = await hre.ethers.getContractFactory("Lock"); - const lock = await Lock.deploy(unlockTime, { value: lockedAmount }); - - return { lock, unlockTime, lockedAmount, owner, otherAccount }; - } - - describe("Deployment", function () { - it("Should set the right unlockTime", async function () { - const { lock, unlockTime } = await loadFixture(deployOneYearLockFixture); - - expect(await lock.unlockTime()).to.equal(unlockTime); - }); - - it("Should set the right owner", async function () { - const { lock, owner } = await loadFixture(deployOneYearLockFixture); - - expect(await lock.owner()).to.equal(owner.address); - }); - - it("Should receive and store the funds to lock", async function () { - const { lock, lockedAmount } = await loadFixture( - deployOneYearLockFixture - ); - - expect(await hre.ethers.provider.getBalance(lock.target)).to.equal( - lockedAmount - ); - }); - - it("Should fail if the unlockTime is not in the future", async function () { - // We don't use the fixture here because we want a different deployment - const latestTime = await time.latest(); - const Lock = await hre.ethers.getContractFactory("Lock"); - await expect(Lock.deploy(latestTime, { value: 1 })).to.be.revertedWith( - "Unlock time should be in the future" - ); - }); - }); - - describe("Withdrawals", function () { - describe("Validations", function () { - it("Should revert with the right error if called too soon", async function () { - const { lock } = await loadFixture(deployOneYearLockFixture); - - await expect(lock.withdraw()).to.be.revertedWith( - "You can't withdraw yet" - ); - }); - - it("Should revert with the right error if called from another account", async function () { - const { lock, unlockTime, otherAccount } = await loadFixture( - deployOneYearLockFixture - ); - - // We can increase the time in Hardhat Network - await time.increaseTo(unlockTime); - - // We use lock.connect() to send a transaction from another account - await expect(lock.connect(otherAccount).withdraw()).to.be.revertedWith( - "You aren't the owner" - ); - }); - - it("Shouldn't fail if the unlockTime has arrived and the owner calls it", async function () { - const { lock, unlockTime } = await loadFixture( - deployOneYearLockFixture - ); - - // Transactions are sent using the first signer by default - await time.increaseTo(unlockTime); - - await expect(lock.withdraw()).not.to.be.reverted; - }); - }); - - describe("Events", function () { - it("Should emit an event on withdrawals", async function () { - const { lock, unlockTime, lockedAmount } = await loadFixture( - deployOneYearLockFixture - ); - - await time.increaseTo(unlockTime); - - await expect(lock.withdraw()) - .to.emit(lock, "Withdrawal") - .withArgs(lockedAmount, anyValue); // We accept any value as `when` arg - }); - }); - - describe("Transfers", function () { - it("Should transfer the funds to the owner", async function () { - const { lock, unlockTime, lockedAmount, owner } = await loadFixture( - deployOneYearLockFixture - ); - - await time.increaseTo(unlockTime); - - await expect(lock.withdraw()).to.changeEtherBalances( - [owner, lock], - [lockedAmount, -lockedAmount] - ); - }); - }); - }); -}); diff --git a/contract/tsconfig.json b/contract/tsconfig.json deleted file mode 100644 index 574e785..0000000 --- a/contract/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "target": "es2020", - "module": "commonjs", - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "strict": true, - "skipLibCheck": true, - "resolveJsonModule": true - } -} diff --git a/docs.md b/docs.md new file mode 100644 index 0000000..9cba279 --- /dev/null +++ b/docs.md @@ -0,0 +1,4 @@ +# links + +chainlink-feeds amoy +https://docs.chain.link/data-feeds/price-feeds/addresses?network=polygon&page=1 From 01371286d057fa23ca435e323a5051b817292bf8 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Wed, 8 May 2024 03:36:45 +0300 Subject: [PATCH 06/17] config and dynamic generation of contracts --- chain-api/hardhat.config.ts | 1 + chain-api/package-lock.json | 36 +++++++++++++++ chain-api/package.json | 1 + chain-api/src/app.module.ts | 9 +++- chain-api/src/hardhat/contracts/Salaries.sol | 10 +---- .../src/hardhat/module/hardhat.service.ts | 45 ++++++++++++------- chain-api/tsconfig.json | 6 ++- 7 files changed, 79 insertions(+), 29 deletions(-) diff --git a/chain-api/hardhat.config.ts b/chain-api/hardhat.config.ts index 7979d1c..21a1c97 100644 --- a/chain-api/hardhat.config.ts +++ b/chain-api/hardhat.config.ts @@ -14,6 +14,7 @@ const config = { paths: { sources: './src/hardhat/contracts', // tests: './src/hardhat/test', + ignition: './src/hardhat/ignition', cache: './src/hardhat/cache', artifacts: './src/hardhat/artifacts', }, diff --git a/chain-api/package-lock.json b/chain-api/package-lock.json index 59d150d..235743e 100644 --- a/chain-api/package-lock.json +++ b/chain-api/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "@chainlink/contracts": "^1.1.0", "@nestjs/common": "^10.0.0", + "@nestjs/config": "^3.2.2", "@nestjs/core": "^10.0.0", "@nestjs/mapped-types": "*", "@nestjs/platform-express": "^10.0.0", @@ -3595,6 +3596,33 @@ } } }, + "node_modules/@nestjs/config": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-3.2.2.tgz", + "integrity": "sha512-vGICPOui5vE6kPz1iwQ7oCnp3qWgqxldPmBQ9onkVoKlBtyc83KJCr7CjuVtf4OdovMAVcux1d8Q6jglU2ZphA==", + "dependencies": { + "dotenv": "16.4.5", + "dotenv-expand": "10.0.0", + "lodash": "4.17.21", + "uuid": "9.0.1" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "rxjs": "^7.1.0" + } + }, + "node_modules/@nestjs/config/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@nestjs/core": { "version": "10.3.8", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.8.tgz", @@ -7537,6 +7565,14 @@ "url": "https://dotenvx.com" } }, + "node_modules/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "engines": { + "node": ">=12" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", diff --git a/chain-api/package.json b/chain-api/package.json index e5d6f4a..f0e7323 100644 --- a/chain-api/package.json +++ b/chain-api/package.json @@ -22,6 +22,7 @@ "dependencies": { "@chainlink/contracts": "^1.1.0", "@nestjs/common": "^10.0.0", + "@nestjs/config": "^3.2.2", "@nestjs/core": "^10.0.0", "@nestjs/mapped-types": "*", "@nestjs/platform-express": "^10.0.0", diff --git a/chain-api/src/app.module.ts b/chain-api/src/app.module.ts index 93c68e0..7185a27 100644 --- a/chain-api/src/app.module.ts +++ b/chain-api/src/app.module.ts @@ -3,9 +3,16 @@ import { AppController } from './app.controller'; import { AppService } from './app.service'; import { ContractFactoryModule } from './contract-factory/contract-factory.module'; import { ContractInteractModule } from './contract-interact/contract-interact.module'; +import { ConfigModule } from '@nestjs/config'; @Module({ - imports: [ContractFactoryModule, ContractInteractModule], + imports: [ + ConfigModule.forRoot({ + isGlobal: true, + }), + ContractFactoryModule, + ContractInteractModule, + ], controllers: [AppController], providers: [AppService], }) diff --git a/chain-api/src/hardhat/contracts/Salaries.sol b/chain-api/src/hardhat/contracts/Salaries.sol index ac4c346..5e5d7b7 100644 --- a/chain-api/src/hardhat/contracts/Salaries.sol +++ b/chain-api/src/hardhat/contracts/Salaries.sol @@ -1,25 +1,17 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; -import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; +import {AggregatorV3Interface} from '@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol'; contract Salaries { AggregatorV3Interface internal dataFeed; - /** - * Network: Sepolia - * Aggregator: BTC/USD - * Address: 0x1b44F3514812d835EB1BDB0acB33d3fA3351Ee43 - */ constructor() { dataFeed = AggregatorV3Interface( 0xF0d50568e3A7e8259E16663972b11910F89BD8e7 ); } - /** - * Returns the latest answer. - */ function getChainlinkDataFeedLatestAnswer() public view returns (int) { // prettier-ignore ( diff --git a/chain-api/src/hardhat/module/hardhat.service.ts b/chain-api/src/hardhat/module/hardhat.service.ts index 142d231..ad31ed6 100644 --- a/chain-api/src/hardhat/module/hardhat.service.ts +++ b/chain-api/src/hardhat/module/hardhat.service.ts @@ -1,28 +1,39 @@ -const hre = require('hardhat'); -// import hre from 'hardhat'; +// const hre = require('hardhat'); +import * as hre from 'hardhat'; import { Injectable } from '@nestjs/common'; - +import { ethers } from 'ethers'; +import { ConfigService } from '@nestjs/config'; @Injectable() export class HardhatService { + constructor(private readonly configService: ConfigService) {} async deploySalaryContract() { - // const { salaryAmount, userAddress } = req.body; + const provider = new ethers.JsonRpcProvider( + 'https://polygon-amoy.g.alchemy.com/v2/pEtFFy_Qr_NrM1vMnlzSXmYXkozVNzLy', + 80002, + ); - // // Read the Solidity contract template file - // const solidityCode = readSolidityTemplate(); // Implement this function to read the Solidity template file + const salary = await hre.artifacts.readArtifact('Salaries'); + const abi = salary.abi; + console.log('🚀 ~ HardhatService ~ deploySalaryContract ~ abi:', abi); + const bytecode = salary.deployedBytecode; + console.log( + '🚀 ~ HardhatService ~ deploySalaryContract ~ bytecode:', + bytecode, + ); + const signer = new ethers.Wallet( + this.configService.getOrThrow('POLYGON_PK'), + provider, + ); - // // Replace placeholders in the Solidity contract template with provided values - // const finalSolidityCode = replacePlaceholders(solidityCode, { - // salaryAmount, - // userAddress, - // }); + const salaryContract = new ethers.ContractFactory( + abi, + salary.bytecode, + signer, + ); - // // Compile the Solidity contract - // const compiledContract = await compileSolidity(finalSolidityCode); + const myContract = await salaryContract.deploy(); + await myContract.waitForDeployment(); - // // Deploy the contract - // const deployedContract = await deployContract(compiledContract); - const salaryC = await hre.ethers.getContractFactory('Salaries'); - const myContract = await salaryC.deploy(); console.log( '🚀 ~ HardhatService ~ deploySalaryContract ~ myContract:', myContract, diff --git a/chain-api/tsconfig.json b/chain-api/tsconfig.json index 95f5641..70ea190 100644 --- a/chain-api/tsconfig.json +++ b/chain-api/tsconfig.json @@ -16,6 +16,8 @@ "noImplicitAny": false, "strictBindCallApply": false, "forceConsistentCasingInFileNames": false, - "noFallthroughCasesInSwitch": false - } + "noFallthroughCasesInSwitch": false, + "resolveJsonModule": true + }, + "include": ["src/**/*", "src/**/*.json"] } From ed2f6b9eca73b240ceb73dcd7b33f939f6030a11 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Fri, 10 May 2024 00:17:03 +0300 Subject: [PATCH 07/17] multisig ready, deploy and interact controller --- chain-api/package-lock.json | 43 ++++++++++-- chain-api/package.json | 4 +- .../contract-factory.controller.ts | 7 +- .../contract-factory.module.ts | 2 +- .../contract-factory.service.ts | 18 +++-- .../contract-interact.controller.ts | 49 ------------- .../contract-interact.module.ts | 7 +- .../contract-interact/dto/multi-sig.dto.ts | 18 +++++ .../multi-sig-interact.controller.ts | 20 ++++++ chain-api/src/hardhat/contracts/Agreement.sol | 0 .../src/hardhat/contracts/MultiSigWallet.sol | 24 +++---- chain-api/src/hardhat/contracts/Salaries.sol | 58 +++++++++++++--- .../src/hardhat/module/hardhat.module.ts | 10 --- .../hardhat/modules/base-contract.service.ts | 12 ++++ .../src/hardhat/modules/dto/multi-sig.dto.ts | 11 +++ .../src/hardhat/modules/hardhat.module.ts | 15 ++++ .../src/hardhat/modules/hardhat.service.ts | 4 ++ .../modules/multi-sig/multi-sig.module.ts | 15 ++++ .../modules/multi-sig/multi-sig.service.ts | 68 +++++++++++++++++++ .../salary.service.ts} | 29 ++++---- chain-api/src/main.ts | 3 + chain-api/src/provider/provider.module.ts | 10 +++ chain-api/src/provider/provider.service.ts | 38 +++++++++++ 23 files changed, 353 insertions(+), 112 deletions(-) delete mode 100644 chain-api/src/contract-interact/contract-interact.controller.ts create mode 100644 chain-api/src/contract-interact/dto/multi-sig.dto.ts create mode 100644 chain-api/src/contract-interact/multi-sig-interact.controller.ts create mode 100644 chain-api/src/hardhat/contracts/Agreement.sol delete mode 100644 chain-api/src/hardhat/module/hardhat.module.ts create mode 100644 chain-api/src/hardhat/modules/base-contract.service.ts create mode 100644 chain-api/src/hardhat/modules/dto/multi-sig.dto.ts create mode 100644 chain-api/src/hardhat/modules/hardhat.module.ts create mode 100644 chain-api/src/hardhat/modules/hardhat.service.ts create mode 100644 chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts create mode 100644 chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts rename chain-api/src/hardhat/{module/hardhat.service.ts => modules/salary.service.ts} (56%) create mode 100644 chain-api/src/provider/provider.module.ts create mode 100644 chain-api/src/provider/provider.service.ts diff --git a/chain-api/package-lock.json b/chain-api/package-lock.json index 235743e..6c62f3e 100644 --- a/chain-api/package-lock.json +++ b/chain-api/package-lock.json @@ -17,6 +17,8 @@ "@nestjs/platform-express": "^10.0.0", "@nestjs/swagger": "^7.3.1", "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", "dotenv": "^16.4.5", "reflect-metadata": "^0.1.13", "rxjs": "^7.8.1" @@ -28,7 +30,7 @@ "@nomicfoundation/hardhat-ethers": "^3.0.5", "@types/express": "^4.17.17", "@types/jest": "^29.5.2", - "@types/node": "^20.3.1", + "@types/node": "^20.12.11", "@types/supertest": "^2.0.12", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", @@ -5138,9 +5140,9 @@ "peer": true }, "node_modules/@types/node": { - "version": "20.12.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz", - "integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==", + "version": "20.12.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz", + "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==", "dependencies": { "undici-types": "~5.26.4" } @@ -5235,6 +5237,11 @@ "@types/superagent": "*" } }, + "node_modules/@types/validator": { + "version": "13.11.9", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.9.tgz", + "integrity": "sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==" + }, "node_modules/@types/yargs": { "version": "17.0.32", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", @@ -6714,6 +6721,21 @@ "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", "dev": true }, + "node_modules/class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + "node_modules/class-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", + "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "dependencies": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.10.53", + "validator": "^13.9.0" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -11544,6 +11566,11 @@ "node": ">= 0.8.0" } }, + "node_modules/libphonenumber-js": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.1.tgz", + "integrity": "sha512-Wze1LPwcnzvcKGcRHFGFECTaLzxOtujwpf924difr5zniyYv1C2PiW0419qDR7m8lKDxsImu5mwxFuXhXpjmvw==" + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -16173,6 +16200,14 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/chain-api/package.json b/chain-api/package.json index f0e7323..56aa3ff 100644 --- a/chain-api/package.json +++ b/chain-api/package.json @@ -28,6 +28,8 @@ "@nestjs/platform-express": "^10.0.0", "@nestjs/swagger": "^7.3.1", "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", "dotenv": "^16.4.5", "reflect-metadata": "^0.1.13", "rxjs": "^7.8.1" @@ -39,7 +41,7 @@ "@nomicfoundation/hardhat-ethers": "^3.0.5", "@types/express": "^4.17.17", "@types/jest": "^29.5.2", - "@types/node": "^20.3.1", + "@types/node": "^20.12.11", "@types/supertest": "^2.0.12", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", diff --git a/chain-api/src/contract-factory/contract-factory.controller.ts b/chain-api/src/contract-factory/contract-factory.controller.ts index b537d0a..c8a5db5 100644 --- a/chain-api/src/contract-factory/contract-factory.controller.ts +++ b/chain-api/src/contract-factory/contract-factory.controller.ts @@ -11,6 +11,7 @@ import { ContractFactoryService } from './contract-factory.service'; import { CreateContractFactoryDto } from './dto/create-contract-factory.dto'; import { UpdateContractFactoryDto } from './dto/update-contract-factory.dto'; import { ApiTags } from '@nestjs/swagger'; +import { MultiSigWalletDto } from 'src/hardhat/modules/dto/multi-sig.dto'; @ApiTags('contract-factory') @Controller('contract-factory') export class ContractFactoryController { @@ -18,8 +19,8 @@ export class ContractFactoryController { private readonly contractFactoryService: ContractFactoryService, ) {} - @Post('') - create(@Body() createContractFactoryDto: CreateContractFactoryDto) { - return this.contractFactoryService.create(createContractFactoryDto); + @Post('multi-sig') + create(@Body() createContractFactoryDto: MultiSigWalletDto) { + return this.contractFactoryService.createMultiSig(createContractFactoryDto); } } diff --git a/chain-api/src/contract-factory/contract-factory.module.ts b/chain-api/src/contract-factory/contract-factory.module.ts index 9688aba..a671464 100644 --- a/chain-api/src/contract-factory/contract-factory.module.ts +++ b/chain-api/src/contract-factory/contract-factory.module.ts @@ -1,4 +1,4 @@ -import { HardhatModule } from '../hardhat/module/hardhat.module'; +import { HardhatModule } from '../hardhat/modules/hardhat.module'; import { Module } from '@nestjs/common'; import { ContractFactoryService } from './contract-factory.service'; import { ContractFactoryController } from './contract-factory.controller'; diff --git a/chain-api/src/contract-factory/contract-factory.service.ts b/chain-api/src/contract-factory/contract-factory.service.ts index 07cb6a0..cb4487a 100644 --- a/chain-api/src/contract-factory/contract-factory.service.ts +++ b/chain-api/src/contract-factory/contract-factory.service.ts @@ -1,11 +1,21 @@ -import { HardhatService } from '../hardhat/module/hardhat.service'; +import { HardhatService } from '../hardhat/modules/hardhat.service'; import { Injectable } from '@nestjs/common'; import { CreateContractFactoryDto } from './dto/create-contract-factory.dto'; +import { SalariesService } from 'src/hardhat/modules/salary.service'; +import { MultiSigWalletService } from 'src/hardhat/modules/multi-sig/multi-sig.service'; +import { MultiSigWalletDto } from 'src/hardhat/modules/dto/multi-sig.dto'; @Injectable() export class ContractFactoryService { - constructor(private readonly hhService: HardhatService) {} - async create(createContractFactoryDto: CreateContractFactoryDto) { - return await this.hhService.deploySalaryContract(); + constructor( + private readonly salaryService: SalariesService, + private readonly multiSigService: MultiSigWalletService, + ) {} + async createSalary(createContractFactoryDto: CreateContractFactoryDto) { + return await this.salaryService.deploy(); + } + + async createMultiSig(dto: MultiSigWalletDto) { + return await this.multiSigService.deploy(dto); } } diff --git a/chain-api/src/contract-interact/contract-interact.controller.ts b/chain-api/src/contract-interact/contract-interact.controller.ts deleted file mode 100644 index f42ca09..0000000 --- a/chain-api/src/contract-interact/contract-interact.controller.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { - Controller, - Get, - Post, - Body, - Patch, - Param, - Delete, -} from '@nestjs/common'; -import { ContractInteractService } from './contract-interact.service'; -import { CreateContractInteractDto } from './dto/create-contract-interact.dto'; -import { UpdateContractInteractDto } from './dto/update-contract-interact.dto'; -import { ApiTags } from '@nestjs/swagger'; - -@ApiTags('contract-interact') -@Controller('contract-interact') -export class ContractInteractController { - constructor( - private readonly contractInteractService: ContractInteractService, - ) {} - - @Post() - create(@Body() createContractInteractDto: CreateContractInteractDto) { - return this.contractInteractService.create(createContractInteractDto); - } - - @Get() - findAll() { - return this.contractInteractService.findAll(); - } - - @Get(':id') - findOne(@Param('id') id: string) { - return this.contractInteractService.findOne(+id); - } - - @Patch(':id') - update( - @Param('id') id: string, - @Body() updateContractInteractDto: UpdateContractInteractDto, - ) { - return this.contractInteractService.update(+id, updateContractInteractDto); - } - - @Delete(':id') - remove(@Param('id') id: string) { - return this.contractInteractService.remove(+id); - } -} diff --git a/chain-api/src/contract-interact/contract-interact.module.ts b/chain-api/src/contract-interact/contract-interact.module.ts index 56e3a19..2063f80 100644 --- a/chain-api/src/contract-interact/contract-interact.module.ts +++ b/chain-api/src/contract-interact/contract-interact.module.ts @@ -1,9 +1,12 @@ import { Module } from '@nestjs/common'; import { ContractInteractService } from './contract-interact.service'; -import { ContractInteractController } from './contract-interact.controller'; + +import { HardhatModule } from 'src/hardhat/modules/hardhat.module'; +import { MultiSigInteractController } from './multi-sig-interact.controller'; @Module({ - controllers: [ContractInteractController], + imports: [HardhatModule], + controllers: [MultiSigInteractController], providers: [ContractInteractService], }) export class ContractInteractModule {} diff --git a/chain-api/src/contract-interact/dto/multi-sig.dto.ts b/chain-api/src/contract-interact/dto/multi-sig.dto.ts new file mode 100644 index 0000000..290ae54 --- /dev/null +++ b/chain-api/src/contract-interact/dto/multi-sig.dto.ts @@ -0,0 +1,18 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsOptional, IsString } from 'class-validator'; + +export class SubmitTransactionDto { + @IsString() + @ApiProperty() + contractAddress: string; + @ApiProperty() + @IsString() + destination: string; + @IsString() + @ApiProperty() + value: string; + @IsOptional() + @IsString() + // @ApiProperty() + data: string; +} diff --git a/chain-api/src/contract-interact/multi-sig-interact.controller.ts b/chain-api/src/contract-interact/multi-sig-interact.controller.ts new file mode 100644 index 0000000..e396448 --- /dev/null +++ b/chain-api/src/contract-interact/multi-sig-interact.controller.ts @@ -0,0 +1,20 @@ +import { Body, Controller, Get, Param, Post } from '@nestjs/common'; +import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; +import { MultiSigWalletService } from 'src/hardhat/modules/multi-sig/multi-sig.service'; +import { SubmitTransactionDto } from './dto/multi-sig.dto'; +@ApiTags('multi-sig-interact') +@Controller() +export class MultiSigInteractController { + constructor(private readonly multiSigWalletService: MultiSigWalletService) {} + + @Get('owners/:address') + async getOwners(@Param('address') address: string) { + return this.multiSigWalletService.getOwners(address); + } + + @ApiOkResponse() + @Post('submit-transaction') + async submitTransaction(@Body() dto: SubmitTransactionDto) { + return this.multiSigWalletService.submitTransaction(dto); + } +} diff --git a/chain-api/src/hardhat/contracts/Agreement.sol b/chain-api/src/hardhat/contracts/Agreement.sol new file mode 100644 index 0000000..e69de29 diff --git a/chain-api/src/hardhat/contracts/MultiSigWallet.sol b/chain-api/src/hardhat/contracts/MultiSigWallet.sol index 98b0431..eaae1e4 100644 --- a/chain-api/src/hardhat/contracts/MultiSigWallet.sol +++ b/chain-api/src/hardhat/contracts/MultiSigWallet.sol @@ -8,7 +8,7 @@ pragma solidity ^0.8.19; contract MultiSigWallet { event Deposit(address indexed sender, uint amount, uint balance); event SubmitTransaction( - address indexed owener, + address indexed owner, uint indexed txIndex, address indexed to, uint value, @@ -38,36 +38,36 @@ contract MultiSigWallet { Transaction[] public transactions; modifier onlyOwner() { - require(isOwner[msg.sender], "not owner"); + require(isOwner[msg.sender], 'not owner'); _; } modifier txExists(uint _txIndex) { - require(_txIndex < transactions.length, "tx does not exist"); + require(_txIndex < transactions.length, 'tx does not exist'); _; } modifier notConfirmed(uint _txIndex) { - require(!isConfirmed[_txIndex][msg.sender], "tx already confirmed"); + require(!isConfirmed[_txIndex][msg.sender], 'tx already confirmed'); _; } modifier notExecuted(uint _txIndex) { - require(!transactions[_txIndex].executed, "tx already confirmed"); + require(!transactions[_txIndex].executed, 'tx already confirmed'); _; } constructor(address[] memory _owners, uint _numConfirmationsRequired) { - require(_owners.length > 0, "owners required"); + require(_owners.length > 0, 'owners required'); require( _numConfirmationsRequired > 0 && _numConfirmationsRequired <= _owners.length, - "invalid number of required confirmations" + 'invalid number of required confirmations' ); for (uint i = 0; i < _owners.length; i++) { address owner = _owners[i]; - require(owner != address(0), "invalid owner"); - require(!isOwner[owner], "owner not unique"); + require(owner != address(0), 'invalid owner'); + require(!isOwner[owner], 'owner not unique'); isOwner[owner] = true; owners.push(owner); } @@ -117,13 +117,13 @@ contract MultiSigWallet { Transaction storage transaction = transactions[_txIndex]; require( transaction.numConfirmations >= numConfirmationsRequired, - "cannot execute tx" + 'cannot execute tx' ); transaction.executed = true; (bool success, ) = transaction.to.call{value: transaction.value}( transaction.data ); - require(success, "tx failed"); + require(success, 'tx failed'); emit ExecuteTransaction(msg.sender, _txIndex); } @@ -131,7 +131,7 @@ contract MultiSigWallet { uint _txIndex ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) { Transaction storage transaction = transactions[_txIndex]; - require(isConfirmed[_txIndex][msg.sender], "tx not confirmed"); + require(isConfirmed[_txIndex][msg.sender], 'tx not confirmed'); transaction.numConfirmations -= 1; isConfirmed[_txIndex][msg.sender] = false; diff --git a/chain-api/src/hardhat/contracts/Salaries.sol b/chain-api/src/hardhat/contracts/Salaries.sol index 5e5d7b7..3c343c8 100644 --- a/chain-api/src/hardhat/contracts/Salaries.sol +++ b/chain-api/src/hardhat/contracts/Salaries.sol @@ -1,26 +1,62 @@ // SPDX-License-Identifier: MIT + pragma solidity ^0.8.7; import {AggregatorV3Interface} from '@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol'; contract Salaries { AggregatorV3Interface internal dataFeed; + address public multisigWallet; + mapping(address => uint) public salaries; - constructor() { - dataFeed = AggregatorV3Interface( - 0xF0d50568e3A7e8259E16663972b11910F89BD8e7 - ); + constructor(address _multisigWallet, address _priceFeedAddress) { + multisigWallet = _multisigWallet; + dataFeed = AggregatorV3Interface(_priceFeedAddress); } - function getChainlinkDataFeedLatestAnswer() public view returns (int) { - // prettier-ignore + modifier onlyMultisig() { + require(msg.sender == multisigWallet, 'Unauthorized'); + _; + } + + function getLatestUSDTPriceInETH() public view returns (int) { ( - /* uint80 roundID */, - int answer, - /*uint startedAt*/, - /*uint timeStamp*/, - /*uint80 answeredInRound*/ + , + /* uint80 roundID */ int answer /* uint startedAt */ /* uint timeStamp */ /* uint80 answeredInRound */, + , + , + ) = dataFeed.latestRoundData(); return answer; } + + function setSalary( + address employee, + uint salaryInUSDT + ) external onlyMultisig { + salaries[employee] = salaryInUSDT; + } + + function payoutInETH(address employee) external onlyMultisig { + uint salaryInUSDT = salaries[employee]; + require(salaryInUSDT > 0, 'No salary set'); + + int ethToUSDT = getLatestUSDTPriceInETH(); + require(ethToUSDT > 0, 'Invalid price data'); + + // Convert salary from USDT to ETH based on the latest price + uint salaryInETH = uint(salaryInUSDT * 1e18) / uint(ethToUSDT); + + // Check sufficient balance + require( + address(this).balance >= salaryInETH, + 'Insufficient contract balance' + ); + + salaries[employee] = 0; // Reset salary after payment + payable(employee).transfer(salaryInETH); + } + + // Fallback to receive ETH + receive() external payable {} } diff --git a/chain-api/src/hardhat/module/hardhat.module.ts b/chain-api/src/hardhat/module/hardhat.module.ts deleted file mode 100644 index a683e25..0000000 --- a/chain-api/src/hardhat/module/hardhat.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Module } from '@nestjs/common'; -import { HardhatService } from './hardhat.service'; - -@Module({ - imports: [], - controllers: [], - providers: [HardhatService], - exports: [HardhatService], -}) -export class HardhatModule {} diff --git a/chain-api/src/hardhat/modules/base-contract.service.ts b/chain-api/src/hardhat/modules/base-contract.service.ts new file mode 100644 index 0000000..5a9209f --- /dev/null +++ b/chain-api/src/hardhat/modules/base-contract.service.ts @@ -0,0 +1,12 @@ +import { Injectable } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import { ProviderService } from 'src/provider/provider.service'; + +@Injectable() +export abstract class BaseContractService { + constructor( + public readonly configService: ConfigService, + public readonly providerService: ProviderService, + ) {} + abstract deploy(dto: object): Promise; +} diff --git a/chain-api/src/hardhat/modules/dto/multi-sig.dto.ts b/chain-api/src/hardhat/modules/dto/multi-sig.dto.ts new file mode 100644 index 0000000..e50d15f --- /dev/null +++ b/chain-api/src/hardhat/modules/dto/multi-sig.dto.ts @@ -0,0 +1,11 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsArray, IsNumber } from 'class-validator'; + +export class MultiSigWalletDto { + @IsArray() + @ApiProperty() + owners: string[]; + @IsNumber() + @ApiProperty() + confirmations: number; +} diff --git a/chain-api/src/hardhat/modules/hardhat.module.ts b/chain-api/src/hardhat/modules/hardhat.module.ts new file mode 100644 index 0000000..164093f --- /dev/null +++ b/chain-api/src/hardhat/modules/hardhat.module.ts @@ -0,0 +1,15 @@ +import { Module } from '@nestjs/common'; +import { HardhatService } from './hardhat.service'; +import { ProviderModule } from 'src/provider/provider.module'; +import { MultiSigWalletService } from './multi-sig/multi-sig.service'; +import { SalariesService } from './salary.service'; +import { BaseContractService } from './base-contract.service'; +import { MultiSigModule } from './multi-sig/multi-sig.module'; + +@Module({ + imports: [ProviderModule, MultiSigModule], + controllers: [], + providers: [HardhatService, SalariesService], + exports: [HardhatService, SalariesService, MultiSigModule], +}) +export class HardhatModule {} diff --git a/chain-api/src/hardhat/modules/hardhat.service.ts b/chain-api/src/hardhat/modules/hardhat.service.ts new file mode 100644 index 0000000..55c2582 --- /dev/null +++ b/chain-api/src/hardhat/modules/hardhat.service.ts @@ -0,0 +1,4 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class HardhatService {} diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts new file mode 100644 index 0000000..0b197fd --- /dev/null +++ b/chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts @@ -0,0 +1,15 @@ +import { Module } from '@nestjs/common'; + +import { ProviderModule } from 'src/provider/provider.module'; + +import { BaseContractService } from '../base-contract.service'; +import { ProviderService } from 'src/provider/provider.service'; +import { MultiSigWalletService } from './multi-sig.service'; + +@Module({ + imports: [ProviderModule], + controllers: [], + providers: [MultiSigWalletService], + exports: [MultiSigWalletService], +}) +export class MultiSigModule {} diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts new file mode 100644 index 0000000..b3e7a2e --- /dev/null +++ b/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts @@ -0,0 +1,68 @@ +import { MultiSigWallet } from '../../typechain-types/contracts/MultiSigWallet'; +import { Injectable } from '@nestjs/common'; +import { ethers } from 'ethers'; +import { ConfigService } from '@nestjs/config'; +import * as hre from 'hardhat'; +import { BaseContractService } from '../base-contract.service'; +import { MultiSigWalletDto } from '../dto/multi-sig.dto'; +import { SubmitTransactionDto } from 'src/contract-interact/dto/multi-sig.dto'; + +export class MultiSigWalletService extends BaseContractService { + async deploy(dto: MultiSigWalletDto) { + const { abi, bytecode } = + await hre.artifacts.readArtifact('MultiSigWallet'); + + const signer = await this.providerService.getSigner(); + + const salaryContract = new ethers.ContractFactory(abi, bytecode, signer); + + const myContract = await salaryContract.deploy( + dto.owners, + dto.confirmations, + ); + await myContract.waitForDeployment(); + + console.log( + '🚀 ~ HardhatService ~ deploySalaryContract ~ myContract:', + myContract, + ); + const address = myContract.getAddress(); + console.log('🚀 ~ SalariesService ~ deploy ~ address:', address); + } + + async getOwners(address: string) { + const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); + const multiSigContract = new ethers.Contract(address, abi); + + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(address, abi, signer); + + const owners = await contract.getOwners(); + + return owners; + } + + async submitTransaction(dto: SubmitTransactionDto) { + const { destination, value, data, contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); + const multiSigContract = new ethers.Contract(contractAddress, abi); + + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + console.log( + '🚀 ~ MultiSigWalletService ~ submitTransaction ~ contract:', + contract.interface, + ); + + const tx = await contract.submitTransaction( + destination, + value, + new TextEncoder().encode(data), + ); + console.log('🚀 ~ MultiSigWalletService ~ submitTransaction ~ tx:', tx); + + return tx; + } +} diff --git a/chain-api/src/hardhat/module/hardhat.service.ts b/chain-api/src/hardhat/modules/salary.service.ts similarity index 56% rename from chain-api/src/hardhat/module/hardhat.service.ts rename to chain-api/src/hardhat/modules/salary.service.ts index ad31ed6..ebded0c 100644 --- a/chain-api/src/hardhat/module/hardhat.service.ts +++ b/chain-api/src/hardhat/modules/salary.service.ts @@ -1,25 +1,19 @@ -// const hre = require('hardhat'); -import * as hre from 'hardhat'; import { Injectable } from '@nestjs/common'; import { ethers } from 'ethers'; import { ConfigService } from '@nestjs/config'; +import * as hre from 'hardhat'; +import { BaseContractService } from './base-contract.service'; + @Injectable() -export class HardhatService { - constructor(private readonly configService: ConfigService) {} - async deploySalaryContract() { - const provider = new ethers.JsonRpcProvider( - 'https://polygon-amoy.g.alchemy.com/v2/pEtFFy_Qr_NrM1vMnlzSXmYXkozVNzLy', - 80002, - ); +export class SalariesService extends BaseContractService { + getSalaries() {} + + async deploy() { + const provider = await this.providerService.getProvider(); const salary = await hre.artifacts.readArtifact('Salaries'); const abi = salary.abi; - console.log('🚀 ~ HardhatService ~ deploySalaryContract ~ abi:', abi); const bytecode = salary.deployedBytecode; - console.log( - '🚀 ~ HardhatService ~ deploySalaryContract ~ bytecode:', - bytecode, - ); const signer = new ethers.Wallet( this.configService.getOrThrow('POLYGON_PK'), provider, @@ -31,12 +25,17 @@ export class HardhatService { signer, ); - const myContract = await salaryContract.deploy(); + const myContract = await salaryContract.deploy( + 'multisig address', + this.configService.getOrThrow('CHAINLINK_AGGREGATOR_V3'), + ); await myContract.waitForDeployment(); console.log( '🚀 ~ HardhatService ~ deploySalaryContract ~ myContract:', myContract, ); + const address = myContract.getAddress(); + console.log('🚀 ~ SalariesService ~ deploy ~ address:', address); } } diff --git a/chain-api/src/main.ts b/chain-api/src/main.ts index 52240b8..9ccc209 100644 --- a/chain-api/src/main.ts +++ b/chain-api/src/main.ts @@ -1,6 +1,7 @@ import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; +import { ValidationPipe } from '@nestjs/common'; async function bootstrap() { const app = await NestFactory.create(AppModule); @@ -11,7 +12,9 @@ async function bootstrap() { .build(); const document = SwaggerModule.createDocument(app, config); SwaggerModule.setup('api', app, document); + app.useGlobalPipes(new ValidationPipe()); await app.listen(3000); + console.log('Swagger avaliable at http://localhost:3000/api'); } bootstrap(); diff --git a/chain-api/src/provider/provider.module.ts b/chain-api/src/provider/provider.module.ts new file mode 100644 index 0000000..6b753b4 --- /dev/null +++ b/chain-api/src/provider/provider.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { ProviderService } from './provider.service'; + +@Module({ + imports: [], + controllers: [], + providers: [ProviderService], + exports: [ProviderService], +}) +export class ProviderModule {} diff --git a/chain-api/src/provider/provider.service.ts b/chain-api/src/provider/provider.service.ts new file mode 100644 index 0000000..711574c --- /dev/null +++ b/chain-api/src/provider/provider.service.ts @@ -0,0 +1,38 @@ +import { Injectable } from '@nestjs/common'; +import { ethers } from 'ethers'; +import { ConfigService } from '@nestjs/config'; +@Injectable() +export class ProviderService { + public provider: ethers.JsonRpcProvider; + public networkId: number; + private nodeUrl: string; + constructor(private readonly configService: ConfigService) { + this.networkId = parseInt( + this.configService.getOrThrow('POLYGON_NETWORK_ID'), + ); + this.nodeUrl = this.configService.getOrThrow('POLYGON_NODE'); + } + + async getProvider() { + if (this.provider) { + return this.provider; + } + const polygonProvider = new ethers.JsonRpcProvider( + this.nodeUrl, + this.networkId, + ); + this.provider = polygonProvider; + return this.provider; + } + + async getSigner() { + if (!this.provider) { + await this.getProvider(); + } + const signer = new ethers.Wallet( + this.configService.getOrThrow('POLYGON_PK'), + this.provider, + ); + return signer; + } +} From 9ec370c8f6e1d8e168ff22de38b32fcf5ee902bb Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Mon, 13 May 2024 02:12:50 +0300 Subject: [PATCH 08/17] multisig fully ready + salaries almost ready. refactor contracts and refactor structure of app. swagger update --- chain-api/src/app.module.ts | 3 +- .../contract-factory.controller.spec.ts | 20 --- .../contract-factory.controller.ts | 26 --- .../contract-factory.module.ts | 11 -- .../contract-factory.service.spec.ts | 18 --- .../contract-factory.service.ts | 21 --- .../dto/create-contract-factory.dto.ts | 12 -- .../dto/update-contract-factory.dto.ts | 4 - .../contract-interact.controller.spec.ts | 20 --- .../contract-interact.module.ts | 7 +- .../contract-interact.service.spec.ts | 18 --- .../contract-interact.service.ts | 26 --- .../contract-interact/dto/multi-sig.dto.ts | 28 +++- .../src/contract-interact/ethers.helpers.ts | 10 ++ .../multi-sig-interact.controller.ts | 20 --- chain-api/src/filters/http.filter.ts | 33 ++++ chain-api/src/hardhat/contracts/Agreement.sol | 10 ++ chain-api/src/hardhat/contracts/Salaries.sol | 5 + .../src/hardhat/ignition/modules/Lock.ts | 17 -- .../ignition/modules/MultiSigWallet.ts | 17 -- .../src/hardhat/ignition/modules/Salaries.ts | 11 -- .../hardhat/modules/base-contract.service.ts | 5 +- .../src/hardhat/modules/dto/ethers.dto.ts | 60 +++++++ .../src/hardhat/modules/hardhat.module.ts | 10 +- .../multi-sig-interact.controller.ts | 65 ++++++++ .../{dto => multi-sig}/multi-sig.dto.ts | 0 .../modules/multi-sig/multi-sig.module.ts | 3 +- .../modules/multi-sig/multi-sig.service.ts | 149 +++++++++++++++--- .../salaries/salaries-interact.controller.ts | 33 ++++ .../hardhat/modules/salaries/salaries.dto.ts | 32 ++++ .../modules/salaries/salaries.module.ts | 13 ++ .../modules/salaries/salaries.service.ts | 75 +++++++++ .../src/hardhat/modules/salary.service.ts | 41 ----- chain-api/src/main.ts | 4 +- 34 files changed, 502 insertions(+), 325 deletions(-) delete mode 100644 chain-api/src/contract-factory/contract-factory.controller.spec.ts delete mode 100644 chain-api/src/contract-factory/contract-factory.controller.ts delete mode 100644 chain-api/src/contract-factory/contract-factory.module.ts delete mode 100644 chain-api/src/contract-factory/contract-factory.service.spec.ts delete mode 100644 chain-api/src/contract-factory/contract-factory.service.ts delete mode 100644 chain-api/src/contract-factory/dto/create-contract-factory.dto.ts delete mode 100644 chain-api/src/contract-factory/dto/update-contract-factory.dto.ts delete mode 100644 chain-api/src/contract-interact/contract-interact.controller.spec.ts delete mode 100644 chain-api/src/contract-interact/contract-interact.service.spec.ts delete mode 100644 chain-api/src/contract-interact/contract-interact.service.ts create mode 100644 chain-api/src/contract-interact/ethers.helpers.ts delete mode 100644 chain-api/src/contract-interact/multi-sig-interact.controller.ts create mode 100644 chain-api/src/filters/http.filter.ts delete mode 100644 chain-api/src/hardhat/ignition/modules/Lock.ts delete mode 100644 chain-api/src/hardhat/ignition/modules/MultiSigWallet.ts delete mode 100644 chain-api/src/hardhat/ignition/modules/Salaries.ts create mode 100644 chain-api/src/hardhat/modules/dto/ethers.dto.ts create mode 100644 chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts rename chain-api/src/hardhat/modules/{dto => multi-sig}/multi-sig.dto.ts (100%) create mode 100644 chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts create mode 100644 chain-api/src/hardhat/modules/salaries/salaries.dto.ts create mode 100644 chain-api/src/hardhat/modules/salaries/salaries.module.ts create mode 100644 chain-api/src/hardhat/modules/salaries/salaries.service.ts delete mode 100644 chain-api/src/hardhat/modules/salary.service.ts diff --git a/chain-api/src/app.module.ts b/chain-api/src/app.module.ts index 7185a27..214054f 100644 --- a/chain-api/src/app.module.ts +++ b/chain-api/src/app.module.ts @@ -1,7 +1,7 @@ import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; -import { ContractFactoryModule } from './contract-factory/contract-factory.module'; + import { ContractInteractModule } from './contract-interact/contract-interact.module'; import { ConfigModule } from '@nestjs/config'; @@ -10,7 +10,6 @@ import { ConfigModule } from '@nestjs/config'; ConfigModule.forRoot({ isGlobal: true, }), - ContractFactoryModule, ContractInteractModule, ], controllers: [AppController], diff --git a/chain-api/src/contract-factory/contract-factory.controller.spec.ts b/chain-api/src/contract-factory/contract-factory.controller.spec.ts deleted file mode 100644 index 42eedd4..0000000 --- a/chain-api/src/contract-factory/contract-factory.controller.spec.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { ContractFactoryController } from './contract-factory.controller'; -import { ContractFactoryService } from './contract-factory.service'; - -describe('ContractFactoryController', () => { - let controller: ContractFactoryController; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - controllers: [ContractFactoryController], - providers: [ContractFactoryService], - }).compile(); - - controller = module.get(ContractFactoryController); - }); - - it('should be defined', () => { - expect(controller).toBeDefined(); - }); -}); diff --git a/chain-api/src/contract-factory/contract-factory.controller.ts b/chain-api/src/contract-factory/contract-factory.controller.ts deleted file mode 100644 index c8a5db5..0000000 --- a/chain-api/src/contract-factory/contract-factory.controller.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { - Controller, - Get, - Post, - Body, - Patch, - Param, - Delete, -} from '@nestjs/common'; -import { ContractFactoryService } from './contract-factory.service'; -import { CreateContractFactoryDto } from './dto/create-contract-factory.dto'; -import { UpdateContractFactoryDto } from './dto/update-contract-factory.dto'; -import { ApiTags } from '@nestjs/swagger'; -import { MultiSigWalletDto } from 'src/hardhat/modules/dto/multi-sig.dto'; -@ApiTags('contract-factory') -@Controller('contract-factory') -export class ContractFactoryController { - constructor( - private readonly contractFactoryService: ContractFactoryService, - ) {} - - @Post('multi-sig') - create(@Body() createContractFactoryDto: MultiSigWalletDto) { - return this.contractFactoryService.createMultiSig(createContractFactoryDto); - } -} diff --git a/chain-api/src/contract-factory/contract-factory.module.ts b/chain-api/src/contract-factory/contract-factory.module.ts deleted file mode 100644 index a671464..0000000 --- a/chain-api/src/contract-factory/contract-factory.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { HardhatModule } from '../hardhat/modules/hardhat.module'; -import { Module } from '@nestjs/common'; -import { ContractFactoryService } from './contract-factory.service'; -import { ContractFactoryController } from './contract-factory.controller'; - -@Module({ - imports: [HardhatModule], - controllers: [ContractFactoryController], - providers: [ContractFactoryService], -}) -export class ContractFactoryModule {} diff --git a/chain-api/src/contract-factory/contract-factory.service.spec.ts b/chain-api/src/contract-factory/contract-factory.service.spec.ts deleted file mode 100644 index cff59d1..0000000 --- a/chain-api/src/contract-factory/contract-factory.service.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { ContractFactoryService } from './contract-factory.service'; - -describe('ContractFactoryService', () => { - let service: ContractFactoryService; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ContractFactoryService], - }).compile(); - - service = module.get(ContractFactoryService); - }); - - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/chain-api/src/contract-factory/contract-factory.service.ts b/chain-api/src/contract-factory/contract-factory.service.ts deleted file mode 100644 index cb4487a..0000000 --- a/chain-api/src/contract-factory/contract-factory.service.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { HardhatService } from '../hardhat/modules/hardhat.service'; -import { Injectable } from '@nestjs/common'; -import { CreateContractFactoryDto } from './dto/create-contract-factory.dto'; -import { SalariesService } from 'src/hardhat/modules/salary.service'; -import { MultiSigWalletService } from 'src/hardhat/modules/multi-sig/multi-sig.service'; -import { MultiSigWalletDto } from 'src/hardhat/modules/dto/multi-sig.dto'; - -@Injectable() -export class ContractFactoryService { - constructor( - private readonly salaryService: SalariesService, - private readonly multiSigService: MultiSigWalletService, - ) {} - async createSalary(createContractFactoryDto: CreateContractFactoryDto) { - return await this.salaryService.deploy(); - } - - async createMultiSig(dto: MultiSigWalletDto) { - return await this.multiSigService.deploy(dto); - } -} diff --git a/chain-api/src/contract-factory/dto/create-contract-factory.dto.ts b/chain-api/src/contract-factory/dto/create-contract-factory.dto.ts deleted file mode 100644 index 4fe0997..0000000 --- a/chain-api/src/contract-factory/dto/create-contract-factory.dto.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ApiProperty } from '@nestjs/swagger'; -export enum ContractType { - SALARY, - AGREEMENT, -} - -export class CreateContractFactoryDto { - @ApiProperty({ - enum: ContractType, - }) - contractType: ContractType; -} diff --git a/chain-api/src/contract-factory/dto/update-contract-factory.dto.ts b/chain-api/src/contract-factory/dto/update-contract-factory.dto.ts deleted file mode 100644 index 0fbfa0a..0000000 --- a/chain-api/src/contract-factory/dto/update-contract-factory.dto.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PartialType } from '@nestjs/mapped-types'; -import { CreateContractFactoryDto } from './create-contract-factory.dto'; - -export class UpdateContractFactoryDto extends PartialType(CreateContractFactoryDto) {} diff --git a/chain-api/src/contract-interact/contract-interact.controller.spec.ts b/chain-api/src/contract-interact/contract-interact.controller.spec.ts deleted file mode 100644 index 0ca68e9..0000000 --- a/chain-api/src/contract-interact/contract-interact.controller.spec.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { ContractInteractController } from './contract-interact.controller'; -import { ContractInteractService } from './contract-interact.service'; - -describe('ContractInteractController', () => { - let controller: ContractInteractController; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - controllers: [ContractInteractController], - providers: [ContractInteractService], - }).compile(); - - controller = module.get(ContractInteractController); - }); - - it('should be defined', () => { - expect(controller).toBeDefined(); - }); -}); diff --git a/chain-api/src/contract-interact/contract-interact.module.ts b/chain-api/src/contract-interact/contract-interact.module.ts index 2063f80..1e55000 100644 --- a/chain-api/src/contract-interact/contract-interact.module.ts +++ b/chain-api/src/contract-interact/contract-interact.module.ts @@ -1,12 +1,9 @@ import { Module } from '@nestjs/common'; -import { ContractInteractService } from './contract-interact.service'; - import { HardhatModule } from 'src/hardhat/modules/hardhat.module'; -import { MultiSigInteractController } from './multi-sig-interact.controller'; @Module({ imports: [HardhatModule], - controllers: [MultiSigInteractController], - providers: [ContractInteractService], + controllers: [], + providers: [], }) export class ContractInteractModule {} diff --git a/chain-api/src/contract-interact/contract-interact.service.spec.ts b/chain-api/src/contract-interact/contract-interact.service.spec.ts deleted file mode 100644 index fa58751..0000000 --- a/chain-api/src/contract-interact/contract-interact.service.spec.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { ContractInteractService } from './contract-interact.service'; - -describe('ContractInteractService', () => { - let service: ContractInteractService; - - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [ContractInteractService], - }).compile(); - - service = module.get(ContractInteractService); - }); - - it('should be defined', () => { - expect(service).toBeDefined(); - }); -}); diff --git a/chain-api/src/contract-interact/contract-interact.service.ts b/chain-api/src/contract-interact/contract-interact.service.ts deleted file mode 100644 index 5249e46..0000000 --- a/chain-api/src/contract-interact/contract-interact.service.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { CreateContractInteractDto } from './dto/create-contract-interact.dto'; -import { UpdateContractInteractDto } from './dto/update-contract-interact.dto'; - -@Injectable() -export class ContractInteractService { - create(createContractInteractDto: CreateContractInteractDto) { - return 'This action adds a new contractInteract'; - } - - findAll() { - return `This action returns all contractInteract`; - } - - findOne(id: number) { - return `This action returns a #${id} contractInteract`; - } - - update(id: number, updateContractInteractDto: UpdateContractInteractDto) { - return `This action updates a #${id} contractInteract`; - } - - remove(id: number) { - return `This action removes a #${id} contractInteract`; - } -} diff --git a/chain-api/src/contract-interact/dto/multi-sig.dto.ts b/chain-api/src/contract-interact/dto/multi-sig.dto.ts index 290ae54..d124f50 100644 --- a/chain-api/src/contract-interact/dto/multi-sig.dto.ts +++ b/chain-api/src/contract-interact/dto/multi-sig.dto.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { IsOptional, IsString } from 'class-validator'; +import { IsNumber, IsOptional, IsString } from 'class-validator'; export class SubmitTransactionDto { @IsString() @@ -16,3 +16,29 @@ export class SubmitTransactionDto { // @ApiProperty() data: string; } + +export class ConfirmTransactionDto { + @IsString() + @ApiProperty() + contractAddress: string; + @ApiProperty() + @IsNumber() + index: number; +} + +export class ExecuteTransactionDto extends ConfirmTransactionDto {} + +export class RevokeConfirmationDto extends ConfirmTransactionDto {} + +export class GetTransactionCount {} + +export class GetTransactionDto extends ConfirmTransactionDto {} + +export class DepositMultiSigDto { + @IsString() + @ApiProperty() + contractAddress: string; + @IsString() + @ApiProperty() + value: string; +} diff --git a/chain-api/src/contract-interact/ethers.helpers.ts b/chain-api/src/contract-interact/ethers.helpers.ts new file mode 100644 index 0000000..f77b017 --- /dev/null +++ b/chain-api/src/contract-interact/ethers.helpers.ts @@ -0,0 +1,10 @@ +import { TransactionReceipt, ethers } from 'ethers'; + +export const parseLogs = ( + txReceipt: TransactionReceipt, + contract: ethers.Contract, +) => { + return txReceipt.logs + .map((log) => contract.interface.parseLog(log)) + .find((log) => !!log); +}; diff --git a/chain-api/src/contract-interact/multi-sig-interact.controller.ts b/chain-api/src/contract-interact/multi-sig-interact.controller.ts deleted file mode 100644 index e396448..0000000 --- a/chain-api/src/contract-interact/multi-sig-interact.controller.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Body, Controller, Get, Param, Post } from '@nestjs/common'; -import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; -import { MultiSigWalletService } from 'src/hardhat/modules/multi-sig/multi-sig.service'; -import { SubmitTransactionDto } from './dto/multi-sig.dto'; -@ApiTags('multi-sig-interact') -@Controller() -export class MultiSigInteractController { - constructor(private readonly multiSigWalletService: MultiSigWalletService) {} - - @Get('owners/:address') - async getOwners(@Param('address') address: string) { - return this.multiSigWalletService.getOwners(address); - } - - @ApiOkResponse() - @Post('submit-transaction') - async submitTransaction(@Body() dto: SubmitTransactionDto) { - return this.multiSigWalletService.submitTransaction(dto); - } -} diff --git a/chain-api/src/filters/http.filter.ts b/chain-api/src/filters/http.filter.ts new file mode 100644 index 0000000..ce33efe --- /dev/null +++ b/chain-api/src/filters/http.filter.ts @@ -0,0 +1,33 @@ +import { + ArgumentsHost, + Catch, + ExceptionFilter, + HttpException, + HttpStatus, +} from '@nestjs/common'; +import { error } from 'console'; +import { Request, Response } from 'express'; + +@Catch() +export class AllExceptionsFilter implements ExceptionFilter { + // constructor(private readonly httpAdapterHost: HttpAdapterHost) {} + + catch(exception: any, host: ArgumentsHost): void { + console.log('🚀 ~ AllExceptionsFilter ~ exception:', exception); + const ctx = host.switchToHttp(); + const response = ctx.getResponse(); + const request = ctx.getRequest(); + const httpStatus = + exception instanceof HttpException + ? exception.getStatus() + : HttpStatus.INTERNAL_SERVER_ERROR; + + const responseBody = { + statusCode: httpStatus, + error: exception?.info?.error.message || exception.toString(), + timestamp: new Date().toISOString(), + }; + + response.status(500).json(responseBody); + } +} diff --git a/chain-api/src/hardhat/contracts/Agreement.sol b/chain-api/src/hardhat/contracts/Agreement.sol index e69de29..026e656 100644 --- a/chain-api/src/hardhat/contracts/Agreement.sol +++ b/chain-api/src/hardhat/contracts/Agreement.sol @@ -0,0 +1,10 @@ +// + +/** + +License +sender +receiver + + + */ \ No newline at end of file diff --git a/chain-api/src/hardhat/contracts/Salaries.sol b/chain-api/src/hardhat/contracts/Salaries.sol index 3c343c8..e7b9c0c 100644 --- a/chain-api/src/hardhat/contracts/Salaries.sol +++ b/chain-api/src/hardhat/contracts/Salaries.sol @@ -9,6 +9,7 @@ contract Salaries { address public multisigWallet; mapping(address => uint) public salaries; + //0xF0d50568e3A7e8259E16663972b11910F89BD8e7 constructor(address _multisigWallet, address _priceFeedAddress) { multisigWallet = _multisigWallet; dataFeed = AggregatorV3Interface(_priceFeedAddress); @@ -19,6 +20,10 @@ contract Salaries { _; } + function getSalary(address employee) public view returns(uint) { + return salaries[employee]; + } + function getLatestUSDTPriceInETH() public view returns (int) { ( , diff --git a/chain-api/src/hardhat/ignition/modules/Lock.ts b/chain-api/src/hardhat/ignition/modules/Lock.ts deleted file mode 100644 index eda0eba..0000000 --- a/chain-api/src/hardhat/ignition/modules/Lock.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; - -const JAN_1ST_2030 = 1893456000; -const ONE_GWEI: bigint = 1_000_000_000n; - -const LockModule = buildModule("LockModule", (m) => { - const unlockTime = m.getParameter("unlockTime", JAN_1ST_2030); - const lockedAmount = m.getParameter("lockedAmount", ONE_GWEI); - - const lock = m.contract("Lock", [unlockTime], { - value: lockedAmount, - }); - - return { lock }; -}); - -export default LockModule; diff --git a/chain-api/src/hardhat/ignition/modules/MultiSigWallet.ts b/chain-api/src/hardhat/ignition/modules/MultiSigWallet.ts deleted file mode 100644 index 77ddc51..0000000 --- a/chain-api/src/hardhat/ignition/modules/MultiSigWallet.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; - -const JAN_1ST_2030 = 1893456000; -const ONE_GWEI: bigint = 1_000_000_000n; - -const owners = ["0xfE87F7EF2a58a1f363a444332df6c131C683e35f"]; - -const MultiSigModule = buildModule("MultiSigWallet", (m) => { - const ownerP = m.getParameter("owners", owners); - const confirmationsP = m.getParameter("_numConfirmationsRequired", 1); - - const deploy = m.contract("MultiSigWallet", [ownerP, confirmationsP]); - - return { deploy }; -}); - -export default MultiSigModule; diff --git a/chain-api/src/hardhat/ignition/modules/Salaries.ts b/chain-api/src/hardhat/ignition/modules/Salaries.ts deleted file mode 100644 index b802d35..0000000 --- a/chain-api/src/hardhat/ignition/modules/Salaries.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; -//npx hardhat ignition deploy ignition/modules/Salaries.ts --network amoy -//SalariesModule#Salaries - 0xac45e95Dd5C7F9B1a6C3e4883d04952B9C974b05 -const SalariesModule = buildModule("SalariesModule", (m) => { - const salaryContract = m.contract("Salaries"); - - const answer = m.call(salaryContract, "getChainlinkDataFeedLatestAnswer", []); - console.log("🚀 ~ SalariesModule ~ answer:", answer); - return { salaryContract }; -}); -export default SalariesModule; diff --git a/chain-api/src/hardhat/modules/base-contract.service.ts b/chain-api/src/hardhat/modules/base-contract.service.ts index 5a9209f..293b490 100644 --- a/chain-api/src/hardhat/modules/base-contract.service.ts +++ b/chain-api/src/hardhat/modules/base-contract.service.ts @@ -4,9 +4,6 @@ import { ProviderService } from 'src/provider/provider.service'; @Injectable() export abstract class BaseContractService { - constructor( - public readonly configService: ConfigService, - public readonly providerService: ProviderService, - ) {} + constructor(public readonly providerService: ProviderService) {} abstract deploy(dto: object): Promise; } diff --git a/chain-api/src/hardhat/modules/dto/ethers.dto.ts b/chain-api/src/hardhat/modules/dto/ethers.dto.ts new file mode 100644 index 0000000..69ec37a --- /dev/null +++ b/chain-api/src/hardhat/modules/dto/ethers.dto.ts @@ -0,0 +1,60 @@ +import { ethers } from 'ethers'; + +// Define a TypeScript type for the EventLog based on the provided structure +export type TransactionLogs = { + provider: ethers.JsonRpcApiProvider; + transactionHash: string; + blockHash: string; + blockNumber: number; + removed: boolean | undefined; + address: string; + data: string; + topics: string[]; + index: number; + transactionIndex: number; + interface: Interface; + fragment: EventFragment; +}; + +type Interface = { + fragments: Fragment[]; + deploy: ConstructorFragment[]; + fallback: any | null; + receive: boolean; +}; + +type Fragment = {}; + +type ConstructorFragment = {}; + +type EventFragment = { + type: string; + inputs: any[]; + name: string; + anonymous: boolean; +}; + +type SubmitArgs = { + args: [ + owner: string, + txIndex: bigint, + to: string, + value: bigint, + data: string, + ]; +}; + +type ConfirmArgs = { + args: [owner: string, txIndex: bigint]; +}; +type ExecuteArgs = { + args: [owner: string, txIndex: bigint]; +}; +type DepositArgs = { + args: [owner: string, value: bigint, address: string]; +}; + +export type SubmitTransactionLogs = TransactionLogs & SubmitArgs; +export type ConfirmTransactionLogs = TransactionLogs & ConfirmArgs; +export type ExecuteTransactionLogs = TransactionLogs & ExecuteArgs; +export type DepositLogs = TransactionLogs & DepositArgs; diff --git a/chain-api/src/hardhat/modules/hardhat.module.ts b/chain-api/src/hardhat/modules/hardhat.module.ts index 164093f..577d8c7 100644 --- a/chain-api/src/hardhat/modules/hardhat.module.ts +++ b/chain-api/src/hardhat/modules/hardhat.module.ts @@ -1,15 +1,13 @@ import { Module } from '@nestjs/common'; import { HardhatService } from './hardhat.service'; import { ProviderModule } from 'src/provider/provider.module'; -import { MultiSigWalletService } from './multi-sig/multi-sig.service'; -import { SalariesService } from './salary.service'; -import { BaseContractService } from './base-contract.service'; import { MultiSigModule } from './multi-sig/multi-sig.module'; +import { SalariesModule } from './salaries/salaries.module'; @Module({ - imports: [ProviderModule, MultiSigModule], + imports: [ProviderModule, MultiSigModule, SalariesModule], controllers: [], - providers: [HardhatService, SalariesService], - exports: [HardhatService, SalariesService, MultiSigModule], + providers: [HardhatService], + exports: [HardhatService, MultiSigModule, SalariesModule], }) export class HardhatModule {} diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts new file mode 100644 index 0000000..f434be2 --- /dev/null +++ b/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts @@ -0,0 +1,65 @@ +import { Body, Controller, Get, Param, Post } from '@nestjs/common'; +import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; +import { MultiSigWalletService } from 'src/hardhat/modules/multi-sig/multi-sig.service'; +import { + ConfirmTransactionDto, + DepositMultiSigDto, + ExecuteTransactionDto, + GetTransactionDto, + RevokeConfirmationDto, + SubmitTransactionDto, +} from '../../../contract-interact/dto/multi-sig.dto'; +import { MultiSigWalletDto } from './multi-sig.dto'; +@ApiTags('multi-sig') +@Controller('multi-sig') +export class MultiSigInteractController { + constructor(private readonly multiSigWalletService: MultiSigWalletService) {} + + @Post('deploy') + async deploy(@Body() dto: MultiSigWalletDto) { + return this.multiSigWalletService.deploy(dto); + } + @Get('owners/:address') + async getOwners(@Param('address') address: string) { + return this.multiSigWalletService.getOwners(address); + } + + @ApiOkResponse() + @Post('submit-transaction') + async submitTransaction(@Body() dto: SubmitTransactionDto) { + return this.multiSigWalletService.submitTransaction(dto); + } + + @ApiOkResponse() + @Post('confirm-transaction') + async confirmTransaction(@Body() dto: ConfirmTransactionDto) { + return this.multiSigWalletService.confirmTransaction(dto); + } + + @ApiOkResponse() + @Post('execute-transaction') + async executeTransaction(@Body() dto: ExecuteTransactionDto) { + return this.multiSigWalletService.executeTransaction(dto); + } + + @ApiOkResponse() + @Post('revoke-confirmation') + async revokeConfirmation(@Body() dto: RevokeConfirmationDto) { + return this.multiSigWalletService.revokeConfirmation(dto); + } + + @Get('transaction-count/:contractAddress') + async getTransactionCount(@Param('contractAddress') contractAddress: string) { + return this.multiSigWalletService.getTransactionCount(contractAddress); + } + + @Get('transaction') + async getTransaction(@Body() dto: GetTransactionDto) { + return this.multiSigWalletService.getTransaction(dto); + } + + @Post('deposit') + async deposit(@Body() dto: DepositMultiSigDto) { + return this.multiSigWalletService.deposit(dto); + } +} diff --git a/chain-api/src/hardhat/modules/dto/multi-sig.dto.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig.dto.ts similarity index 100% rename from chain-api/src/hardhat/modules/dto/multi-sig.dto.ts rename to chain-api/src/hardhat/modules/multi-sig/multi-sig.dto.ts diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts index 0b197fd..c2d621d 100644 --- a/chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts +++ b/chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts @@ -5,10 +5,11 @@ import { ProviderModule } from 'src/provider/provider.module'; import { BaseContractService } from '../base-contract.service'; import { ProviderService } from 'src/provider/provider.service'; import { MultiSigWalletService } from './multi-sig.service'; +import { MultiSigInteractController } from './multi-sig-interact.controller'; @Module({ imports: [ProviderModule], - controllers: [], + controllers: [MultiSigInteractController], providers: [MultiSigWalletService], exports: [MultiSigWalletService], }) diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts index b3e7a2e..02bcfe3 100644 --- a/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts +++ b/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts @@ -1,11 +1,23 @@ -import { MultiSigWallet } from '../../typechain-types/contracts/MultiSigWallet'; -import { Injectable } from '@nestjs/common'; -import { ethers } from 'ethers'; +import { TransactionReceipt, ethers } from 'ethers'; import { ConfigService } from '@nestjs/config'; import * as hre from 'hardhat'; import { BaseContractService } from '../base-contract.service'; -import { MultiSigWalletDto } from '../dto/multi-sig.dto'; -import { SubmitTransactionDto } from 'src/contract-interact/dto/multi-sig.dto'; +import { MultiSigWalletDto } from './multi-sig.dto'; +import { + ConfirmTransactionDto, + DepositMultiSigDto, + ExecuteTransactionDto, + GetTransactionDto, + RevokeConfirmationDto, + SubmitTransactionDto, +} from 'src/contract-interact/dto/multi-sig.dto'; +import { + ConfirmTransactionLogs, + DepositLogs, + ExecuteTransactionLogs, + SubmitTransactionLogs, +} from 'src/hardhat/modules/dto/ethers.dto'; +import { parseLogs } from 'src/contract-interact/ethers.helpers'; export class MultiSigWalletService extends BaseContractService { async deploy(dto: MultiSigWalletDto) { @@ -21,13 +33,8 @@ export class MultiSigWalletService extends BaseContractService { dto.confirmations, ); await myContract.waitForDeployment(); - - console.log( - '🚀 ~ HardhatService ~ deploySalaryContract ~ myContract:', - myContract, - ); const address = myContract.getAddress(); - console.log('🚀 ~ SalariesService ~ deploy ~ address:', address); + return address; } async getOwners(address: string) { @@ -46,23 +53,119 @@ export class MultiSigWalletService extends BaseContractService { async submitTransaction(dto: SubmitTransactionDto) { const { destination, value, data, contractAddress } = dto; const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); - const multiSigContract = new ethers.Contract(contractAddress, abi); - const signer = await this.providerService.getSigner(); const contract = new ethers.Contract(contractAddress, abi, signer); - console.log( - '🚀 ~ MultiSigWalletService ~ submitTransaction ~ contract:', - contract.interface, - ); - const tx = await contract.submitTransaction( - destination, - value, - new TextEncoder().encode(data), - ); - console.log('🚀 ~ MultiSigWalletService ~ submitTransaction ~ tx:', tx); + const tx = await contract.submitTransaction(destination, value, data); + const txResponse: TransactionReceipt = await tx.wait(); + + const eventParse = parseLogs(txResponse, contract); + + return { + txHash: txResponse.hash, + sender: eventParse.args[0].toString(), + txIndex: eventParse.args[1].toString(), + to: eventParse.args[2].toString(), + value: eventParse.args[3].toString(), + data: eventParse.args[4].toString(), + }; + } + + async confirmTransaction(dto: ConfirmTransactionDto) { + const { contractAddress, index } = dto; + const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const tx = await contract.confirmTransaction(index); + + const txResponse: TransactionReceipt = await tx.wait(); + + const eventParse = parseLogs(txResponse, contract); + + return { + txHash: txResponse.hash, + sender: eventParse.args[0].toString(), + txIndex: eventParse.args[1].toString(), + }; + } + + async executeTransaction(dto: ExecuteTransactionDto) { + const { index, contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const tx = await contract.executeTransaction(index); + + const txResponse: TransactionReceipt = await tx.wait(); + const eventParse = parseLogs(txResponse, contract); + return { + txHash: txResponse.hash, + sender: eventParse.args[0].toString(), + txIndex: eventParse.args[1].toString(), + }; + } + + async revokeConfirmation(dto: RevokeConfirmationDto) { + const { index, contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const tx = await contract.revokeConfirmation(index); return tx; } + + async getTransactionCount(contractAddress: string) { + const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const txCount = await contract.getTransactionCount(); + + return txCount; + } + + async getTransaction(dto: GetTransactionDto) { + const { index, contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const tx = await contract.getTransaction(index); + + return tx; + } + + async deposit(dto: DepositMultiSigDto) { + const { contractAddress, value } = dto; + const signer = await this.providerService.getSigner(); + + const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); + const contract = new ethers.Contract(contractAddress, abi, signer); + + const tx = await signer.sendTransaction({ + to: contractAddress, + value: BigInt(value), + }); + + const txResponse: TransactionReceipt = await tx.wait(); + + const eventParse = parseLogs(txResponse, contract); + + return { + txHash: txResponse.hash, + sender: eventParse.args[0].toString(), + value: eventParse.args[1].toString(), + contractBalance: eventParse.args[2].toString(), + }; + } } diff --git a/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts b/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts new file mode 100644 index 0000000..2c89238 --- /dev/null +++ b/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts @@ -0,0 +1,33 @@ +import { Body, Controller, Get, Param, Post } from '@nestjs/common'; +import { SalariesService } from './salaries.service'; +import { + GetEmployeeSalariesDto, + SalariesDeployDto, + SetSalaryDto, +} from './salaries.dto'; +import { ApiTags } from '@nestjs/swagger'; +@ApiTags('salaries') +@Controller('salaries') +export class SalariesController { + constructor(private readonly salariesService: SalariesService) {} + + @Post('deploy') + async deploy(@Body() dto: SalariesDeployDto) { + return this.salariesService.deploy(dto); + } + + @Get('usdt-price/:contractAddress') + async getUsdtPrice(@Param('contractAddress') contractAddress: string) { + return this.salariesService.getLatestUSDTPrice(contractAddress); + } + + @Post('set-salary') + async setSalary(@Body() dto: SetSalaryDto) { + return this.salariesService.setSalary(dto); + } + + @Get('salary') + async getSalary(@Body() dto: GetEmployeeSalariesDto) { + return this.salariesService.getSalary(dto); + } +} diff --git a/chain-api/src/hardhat/modules/salaries/salaries.dto.ts b/chain-api/src/hardhat/modules/salaries/salaries.dto.ts new file mode 100644 index 0000000..4875918 --- /dev/null +++ b/chain-api/src/hardhat/modules/salaries/salaries.dto.ts @@ -0,0 +1,32 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsNumber, IsString } from 'class-validator'; + +export class SalariesDeployDto { + @ApiProperty() + @IsString() + multiSigWallet: string; +} + +export class SetSalaryDto { + @ApiProperty() + @IsString() + multiSigWallet: string; + @ApiProperty() + @IsString() + contractAddress: string; + @ApiProperty() + @IsString() + employeeAddress: string; + @ApiProperty() + @IsNumber() + salary: number; +} + +export class GetEmployeeSalariesDto { + @ApiProperty() + @IsString() + contractAddress: string; + @ApiProperty() + @IsString() + employeeAddress: string; +} diff --git a/chain-api/src/hardhat/modules/salaries/salaries.module.ts b/chain-api/src/hardhat/modules/salaries/salaries.module.ts new file mode 100644 index 0000000..bb8d5fc --- /dev/null +++ b/chain-api/src/hardhat/modules/salaries/salaries.module.ts @@ -0,0 +1,13 @@ +import { Module } from '@nestjs/common'; +import { SalariesService } from './salaries.service'; +import { ProviderModule } from 'src/provider/provider.module'; +import { SalariesController } from './salaries-interact.controller'; +import { MultiSigModule } from '../multi-sig/multi-sig.module'; + +@Module({ + imports: [ProviderModule, MultiSigModule], + controllers: [SalariesController], + providers: [SalariesService], + exports: [SalariesService], +}) +export class SalariesModule {} diff --git a/chain-api/src/hardhat/modules/salaries/salaries.service.ts b/chain-api/src/hardhat/modules/salaries/salaries.service.ts new file mode 100644 index 0000000..43af1b7 --- /dev/null +++ b/chain-api/src/hardhat/modules/salaries/salaries.service.ts @@ -0,0 +1,75 @@ +import { Injectable } from '@nestjs/common'; +import { BaseContractService } from '../base-contract.service'; +import { ethers } from 'ethers'; +import { + GetEmployeeSalariesDto, + SalariesDeployDto, + SetSalaryDto, +} from './salaries.dto'; +import * as hre from 'hardhat'; +import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; +import { ProviderService } from '../../../provider/provider.service'; + +@Injectable() +export class SalariesService extends BaseContractService { + constructor( + private readonly multiSigWalletService: MultiSigWalletService, + public readonly providerService: ProviderService, + ) { + super(providerService); + } + async deploy(dto: SalariesDeployDto): Promise { + const { abi, bytecode } = await hre.artifacts.readArtifact('Salaries'); + + const signer = await this.providerService.getSigner(); + + const salaryContract = new ethers.ContractFactory(abi, bytecode, signer); + + const myContract = await salaryContract.deploy( + dto.multiSigWallet, + '0xF0d50568e3A7e8259E16663972b11910F89BD8e7', + ); + await myContract.waitForDeployment(); + return await myContract.getAddress(); + } + + async getLatestUSDTPrice(contractAddress: string) { + const { abi } = await hre.artifacts.readArtifact('Salaries'); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const answer: string = await contract.getLatestUSDTPriceInETH(); + return parseInt(answer) / 1e8; + } + + async setSalary(dto: SetSalaryDto) { + const { employeeAddress, salary, contractAddress, multiSigWallet } = dto; + const ISubmitMultiSig = new ethers.Interface([ + 'function setSalary(address employee, uint salaryInUSDT)', + ]); + + const data = ISubmitMultiSig.encodeFunctionData('setSalary', [ + employeeAddress, + salary, + ]); + + return await this.multiSigWalletService.submitTransaction({ + contractAddress: multiSigWallet, + destination: contractAddress, + value: '0', + data, + }); + } + + async getSalary(dto: GetEmployeeSalariesDto) { + const { employeeAddress, contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact('Salaries'); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const answer: string = await contract.getSalary(employeeAddress); + return answer; + } +} diff --git a/chain-api/src/hardhat/modules/salary.service.ts b/chain-api/src/hardhat/modules/salary.service.ts deleted file mode 100644 index ebded0c..0000000 --- a/chain-api/src/hardhat/modules/salary.service.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Injectable } from '@nestjs/common'; -import { ethers } from 'ethers'; -import { ConfigService } from '@nestjs/config'; -import * as hre from 'hardhat'; -import { BaseContractService } from './base-contract.service'; - -@Injectable() -export class SalariesService extends BaseContractService { - getSalaries() {} - - async deploy() { - const provider = await this.providerService.getProvider(); - - const salary = await hre.artifacts.readArtifact('Salaries'); - const abi = salary.abi; - const bytecode = salary.deployedBytecode; - const signer = new ethers.Wallet( - this.configService.getOrThrow('POLYGON_PK'), - provider, - ); - - const salaryContract = new ethers.ContractFactory( - abi, - salary.bytecode, - signer, - ); - - const myContract = await salaryContract.deploy( - 'multisig address', - this.configService.getOrThrow('CHAINLINK_AGGREGATOR_V3'), - ); - await myContract.waitForDeployment(); - - console.log( - '🚀 ~ HardhatService ~ deploySalaryContract ~ myContract:', - myContract, - ); - const address = myContract.getAddress(); - console.log('🚀 ~ SalariesService ~ deploy ~ address:', address); - } -} diff --git a/chain-api/src/main.ts b/chain-api/src/main.ts index 9ccc209..4c6012f 100644 --- a/chain-api/src/main.ts +++ b/chain-api/src/main.ts @@ -1,7 +1,8 @@ -import { NestFactory } from '@nestjs/core'; +import { HttpAdapterHost, NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; import { ValidationPipe } from '@nestjs/common'; +import { AllExceptionsFilter } from './filters/http.filter'; async function bootstrap() { const app = await NestFactory.create(AppModule); @@ -13,6 +14,7 @@ async function bootstrap() { const document = SwaggerModule.createDocument(app, config); SwaggerModule.setup('api', app, document); app.useGlobalPipes(new ValidationPipe()); + app.useGlobalFilters(new AllExceptionsFilter()); await app.listen(3000); console.log('Swagger avaliable at http://localhost:3000/api'); From 0a74e430b8798211159799052856ad2ed72a6339 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Mon, 13 May 2024 02:23:22 +0300 Subject: [PATCH 09/17] salaries readme --- README.md | 1 + excalidraw/front.excalidraw | 20877 +++++++++++++++++++++++++++++++ excalidraw/salaries.excalidraw | 1231 ++ salaries.png | Bin 0 -> 288554 bytes 4 files changed, 22109 insertions(+) create mode 100644 excalidraw/front.excalidraw create mode 100644 excalidraw/salaries.excalidraw create mode 100644 salaries.png diff --git a/README.md b/README.md index bd19269..f75e37c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ ![LOGIN FLOW](./login-flow.png "Login") ![Example architecture](./arch.png "Arch") ![License](./license.png "Arch") +![Salaries](./salaries.png "Arch") # Registration Flow diff --git a/excalidraw/front.excalidraw b/excalidraw/front.excalidraw new file mode 100644 index 0000000..89d83c0 --- /dev/null +++ b/excalidraw/front.excalidraw @@ -0,0 +1,20877 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 221, + "versionNonce": 983642777, + "index": "a3", + "isDeleted": false, + "id": "9ECOQE4q71b5UGIFI59hx", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -249.29874552114632, + "y": -321.1999317848702, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 501.73177083333337, + "height": 211.02213541666669, + "seed": 1742384599, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "4zzpK-b2vghM7IQh_XYfn", + "type": "arrow" + } + ], + "updated": 1715092872642, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 15, + "versionNonce": 1021304789, + "index": "a4", + "isDeleted": false, + "id": "Ipb7HWe46F7n6A7P7sik4", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -87.69067260447946, + "y": -239.80019220153685, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 169.63204956054688, + "height": 45, + "seed": 910663065, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351300076, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "login page", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "login page", + "lineHeight": 1.25 + }, + { + "type": "ellipse", + "version": 132, + "versionNonce": 2082260401, + "index": "a5", + "isDeleted": false, + "id": "taMBg4iEQ7Ka6tnq8asAO", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 610.0567232288543, + "y": -323.38743178487067, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 281.42578125, + "height": 217.06380208333331, + "seed": 711139447, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "4zzpK-b2vghM7IQh_XYfn", + "type": "arrow" + }, + { + "id": "rbGar9lsuB9QdFiagcDcR", + "type": "arrow" + }, + { + "id": "fiTpI1ci8ahtawgPYFCzM", + "type": "arrow" + }, + { + "id": "R89dZ37UlU12DLEVR3624", + "type": "arrow" + }, + { + "id": "RuVbUrw0i_qab8YS-CgqE", + "type": "arrow" + } + ], + "updated": 1715271885226, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 62, + "versionNonce": 1768846331, + "index": "a6", + "isDeleted": false, + "id": "EklORE4h2k5v6hyIC2d-D", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 703.754639895521, + "y": -279.45514011820404, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 97.416015625, + "height": 90, + "seed": 1829221433, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351300076, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "seed \ninput", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "seed \ninput", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 164, + "versionNonce": 1638150975, + "index": "a8", + "isDeleted": false, + "id": "4zzpK-b2vghM7IQh_XYfn", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 253.43302531218706, + "y": -214.5215994225159, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 341.17089556430176, + "height": 2.0707950095888634, + "seed": 1992672311, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715271885232, + "link": null, + "locked": false, + "startBinding": { + "elementId": "9ECOQE4q71b5UGIFI59hx", + "focus": -0.003370606064884456, + "gap": 1 + }, + "endBinding": { + "elementId": "taMBg4iEQ7Ka6tnq8asAO", + "focus": -0.030889506537478142, + "gap": 15.482169888979143 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 341.17089556430176, + 2.0707950095888634 + ] + ] + }, + { + "type": "rectangle", + "version": 529, + "versionNonce": 853307481, + "index": "a9", + "isDeleted": false, + "id": "DnxmkEMaQ29V1tSD5z0dq", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1693.3770357288545, + "y": -330.7051401182038, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 565.891927083333, + "height": 187.890625, + "seed": 1768840761, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "fiTpI1ci8ahtawgPYFCzM", + "type": "arrow" + }, + { + "id": "SZwwo0REDcGvA_0T-7dF9", + "type": "arrow" + }, + { + "id": "vKsy0MLDrFN8pZIgJzo0N", + "type": "arrow" + }, + { + "id": "KxdmyBhw3QIxanSLKTbC7", + "type": "arrow" + } + ], + "updated": 1715093260050, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 427, + "versionNonce": 31399221, + "index": "aA", + "isDeleted": false, + "id": "z4DpFl0znS0CnuGyv9afF", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1765.1283378121882, + "y": -282.9121713682036, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 452.55615234375, + "height": 90, + "seed": 253636695, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351300076, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "список компаний и кнопка\nсоздать", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "список компаний и кнопка\nсоздать", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 75, + "versionNonce": 116007270, + "index": "aE", + "isDeleted": false, + "id": "u-6iVxWKNjb1gRFpmqHqx", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 465.2455253121864, + "y": -1240.8093067848718, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 1480.1562499999995, + "height": 386.3671875000001, + "seed": 1170661913, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "loYqCkWSkGW2btzszyrbI", + "type": "arrow" + }, + { + "id": "fXz4eHeP_rZPnwAP4Fnl2", + "type": "arrow" + }, + { + "id": "rbGar9lsuB9QdFiagcDcR", + "type": "arrow" + }, + { + "id": "UmHjZ4j4nzfhgQZ-MhsvT", + "type": "arrow" + }, + { + "id": "RuVbUrw0i_qab8YS-CgqE", + "type": "arrow" + } + ], + "updated": 1715351637668, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 162, + "versionNonce": 1695825051, + "index": "aF", + "isDeleted": false, + "id": "Np41G3fajXNOtWVUUARTJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1004.3015148955203, + "y": -1120.3600880348715, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 360.7659912109375, + "height": 120.36848101739776, + "seed": 2049580121, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351300077, + "link": null, + "locked": false, + "fontSize": 96.2947848139182, + "fontFamily": 1, + "text": "backend", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "backend", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 180, + "versionNonce": 1709619686, + "index": "aG", + "isDeleted": false, + "id": "RuVbUrw0i_qab8YS-CgqE", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 703.8397836658846, + "y": -332.4851130071588, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 180.75461763047701, + "height": 520.9570062777129, + "seed": 120227769, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "P7glVcculPE9ZWiPtGbmh" + } + ], + "updated": 1715351637669, + "link": null, + "locked": false, + "startBinding": { + "elementId": "taMBg4iEQ7Ka6tnq8asAO", + "focus": -0.6024556702085965, + "gap": 14.84615381662131 + }, + "endBinding": { + "elementId": "u-6iVxWKNjb1gRFpmqHqx", + "focus": 0.31390417074005467, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 180.75461763047701, + -520.9570062777129 + ] + ] + }, + { + "type": "text", + "version": 10, + "versionNonce": 1287317393, + "index": "aH", + "isDeleted": false, + "id": "P7glVcculPE9ZWiPtGbmh", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 758.2021105454338, + "y": -615.4644923350612, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "width": 72.14396667480469, + "height": 45, + "seed": 1103951737, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271885228, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "login", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "RuVbUrw0i_qab8YS-CgqE", + "originalText": "login", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 110, + "versionNonce": 370498073, + "index": "aI", + "isDeleted": false, + "id": "oHLqyaOSKKFtjfUogi8_Y", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 912.3614107288538, + "y": -2201.0892547015396, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 580.9244791666665, + "height": 616.03515625, + "seed": 1114235673, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "I8ZELHiNASz8dE6w_Bha7" + }, + { + "id": "loYqCkWSkGW2btzszyrbI", + "type": "arrow" + }, + { + "id": "fXz4eHeP_rZPnwAP4Fnl2", + "type": "arrow" + } + ], + "updated": 1715092976655, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 40, + "versionNonce": 271336887, + "index": "aJ", + "isDeleted": false, + "id": "I8ZELHiNASz8dE6w_Bha7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1058.8056907174605, + "y": -1938.0716765765396, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 288.0359191894531, + "height": 90, + "seed": 187658969, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715092973189, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "smart-contract \nblockchain", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "oHLqyaOSKKFtjfUogi8_Y", + "originalText": "smart-contract \nblockchain", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 34, + "versionNonce": 129073126, + "index": "aK", + "isDeleted": false, + "id": "loYqCkWSkGW2btzszyrbI", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1164.964534285109, + "y": -1254.5202442848731, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 43.4730072857833, + "height": 329.5338541666665, + "seed": 1229730359, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715351637668, + "link": null, + "locked": false, + "startBinding": { + "elementId": "u-6iVxWKNjb1gRFpmqHqx", + "focus": -0.08839333779696132, + "gap": 13.710937500001307 + }, + "endBinding": { + "elementId": "oHLqyaOSKKFtjfUogi8_Y", + "focus": -0.14008090920157168, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 43.4730072857833, + -329.5338541666665 + ] + ] + }, + { + "type": "arrow", + "version": 71, + "versionNonce": 538132070, + "index": "aL", + "isDeleted": false, + "id": "fXz4eHeP_rZPnwAP4Fnl2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1349.2921808593394, + "y": -1570.0085255348731, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 39.058400188308724, + "height": 311.0937500000002, + "seed": 1808191767, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715351637668, + "link": null, + "locked": false, + "startBinding": { + "elementId": "oHLqyaOSKKFtjfUogi8_Y", + "focus": -0.3214775007896013, + "gap": 15.045572916666515 + }, + "endBinding": { + "elementId": "u-6iVxWKNjb1gRFpmqHqx", + "focus": 0.2741668260520259, + "gap": 18.10546875000108 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 39.058400188308724, + 311.0937500000002 + ] + ] + }, + { + "type": "arrow", + "version": 218, + "versionNonce": 888626406, + "index": "aM", + "isDeleted": false, + "id": "rbGar9lsuB9QdFiagcDcR", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1116.664438578031, + "y": -846.1804005348752, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 210.49263674687563, + "height": 606.7752644761341, + "seed": 1883296279, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "Rls18bPRdDkM3gdzjaalS" + } + ], + "updated": 1715351637669, + "link": null, + "locked": false, + "startBinding": { + "elementId": "u-6iVxWKNjb1gRFpmqHqx", + "focus": 0.023267513458255618, + "gap": 8.261718749996419 + }, + "endBinding": { + "elementId": "taMBg4iEQ7Ka6tnq8asAO", + "focus": 1.0083963959926765, + "gap": 17.713565394962558 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -210.49263674687563, + 606.7752644761341 + ] + ] + }, + { + "type": "text", + "version": 20, + "versionNonce": 783267479, + "index": "aN", + "isDeleted": false, + "id": "Rls18bPRdDkM3gdzjaalS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 925.6617850778116, + "y": -565.3047494932086, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 171.64794921875, + "height": 45, + "seed": 513617303, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715093218697, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "ok || error", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "rbGar9lsuB9QdFiagcDcR", + "originalText": "ok || error", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 587, + "versionNonce": 658316223, + "index": "aO", + "isDeleted": false, + "id": "fiTpI1ci8ahtawgPYFCzM", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 905.7728328778574, + "y": -206.98562414945638, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 786.6042028509976, + "height": 19.233922911885998, + "seed": 1191295225, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "DlWLybwGPeKOXUBA0bDzg" + } + ], + "updated": 1715271885232, + "link": null, + "locked": false, + "startBinding": { + "elementId": "taMBg4iEQ7Ka6tnq8asAO", + "focus": 0.10737998607956104, + "gap": 14.607859437405324 + }, + "endBinding": { + "elementId": "DnxmkEMaQ29V1tSD5z0dq", + "focus": -0.03566468874053621, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 786.6042028509976, + -19.233922911885998 + ] + ] + }, + { + "type": "text", + "version": 13, + "versionNonce": 861727193, + "index": "aP", + "isDeleted": false, + "id": "DlWLybwGPeKOXUBA0bDzg", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1167.786289167168, + "y": -224.3639942848754, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 80.85597229003906, + "height": 45, + "seed": 1293470263, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715093018571, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "if ok", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "fiTpI1ci8ahtawgPYFCzM", + "originalText": "if ok", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 121, + "versionNonce": 901860319, + "index": "aQ", + "isDeleted": false, + "id": "R89dZ37UlU12DLEVR3624", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 805.6061725412626, + "y": -90.62258615970256, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 199.71747777092435, + "height": 260.83541479149414, + "seed": 1389310871, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "-z4VdHUKzkoO7tIt2YSVt" + } + ], + "updated": 1715271885232, + "link": null, + "locked": false, + "startBinding": { + "elementId": "taMBg4iEQ7Ka6tnq8asAO", + "focus": 0.24652272363207728, + "gap": 23.288220941545006 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 199.71747777092435, + 260.83541479149414 + ] + ] + }, + { + "type": "text", + "version": 10, + "versionNonce": 938079545, + "index": "aR", + "isDeleted": false, + "id": "-z4VdHUKzkoO7tIt2YSVt", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 846.7057024158654, + "y": 1.0494171734579822, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 129.45594787597656, + "height": 45, + "seed": 2127061047, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715093024705, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "if error", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "R89dZ37UlU12DLEVR3624", + "originalText": "if error", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 331, + "versionNonce": 1449623513, + "index": "aS", + "isDeleted": false, + "id": "FjERofMeekRYDFSrzc6g0", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 879.0020357288531, + "y": 188.35735988179067, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 446.106770833334, + "height": 190, + "seed": 23433783, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "P1dZGRcph_B-K5C4odBql" + } + ], + "updated": 1715093044878, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 311, + "versionNonce": 1962679481, + "index": "aT", + "isDeleted": false, + "id": "P1dZGRcph_B-K5C4odBql", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 939.9654858427857, + "y": 215.85735988179067, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "width": 324.17987060546875, + "height": 135, + "seed": 145866681, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715093044878, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "modal window\nwith error\n(antd notification)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "FjERofMeekRYDFSrzc6g0", + "originalText": "modal window\nwith error\n(antd notification)", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 246, + "versionNonce": 1395716503, + "index": "aU", + "isDeleted": false, + "id": "dXNh0ejACBFXXzhFwP8Av", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1798.292400312187, + "y": -51.36920261821069, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 818.3138020833323, + "height": 279.1796875, + "seed": 1671493081, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "SZwwo0REDcGvA_0T-7dF9", + "type": "arrow" + } + ], + "updated": 1715093340344, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 130, + "versionNonce": 1389342357, + "index": "aV", + "isDeleted": false, + "id": "GO1HODNvUBrAMCSmk5dLm", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1840.7924003121875, + "y": 3.5526723817890797, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 717.9122314453125, + "height": 180, + "seed": 832854487, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351300077, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "если у пользователя уже есть компании,\n\nто тогда ты рисуешь список компаний\nи кнопку \"добавить\"", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "если у пользователя уже есть компании,\n\nто тогда ты рисуешь список компаний\nи кнопку \"добавить\"", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 120, + "versionNonce": 1823782871, + "index": "aX", + "isDeleted": false, + "id": "SZwwo0REDcGvA_0T-7dF9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2050.6262330647965, + "y": -70.1647755348774, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 37.807565540508676, + "height": 65.13020833333331, + "seed": 1269496087, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715093340344, + "link": null, + "locked": false, + "startBinding": { + "elementId": "dXNh0ejACBFXXzhFwP8Av", + "gap": 18.795572916666742, + "focus": -0.1324450580492489 + }, + "endBinding": { + "elementId": "DnxmkEMaQ29V1tSD5z0dq", + "gap": 7.519531249993122, + "focus": 0.06638565793184369 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -37.807565540508676, + -65.13020833333331 + ] + ] + }, + { + "type": "text", + "version": 132, + "versionNonce": 1178071355, + "index": "aY", + "isDeleted": false, + "id": "rCUjCkoBVasQ6ruB9Pe6T", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1278.7155773955205, + "y": -690.6986297015435, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 897.1201782226562, + "height": 90, + "seed": 589335449, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "QJo6oJd36UgLvt-YnGbYu", + "type": "arrow" + } + ], + "updated": 1715351300077, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "при успешном мы возвращаем список всех компаний\nпользователя", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "при успешном мы возвращаем список всех компаний\nпользователя", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 44, + "versionNonce": 1664412247, + "index": "aZ", + "isDeleted": false, + "id": "QJo6oJd36UgLvt-YnGbYu", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1282.999431562187, + "y": -629.1361297015435, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 185.01953125, + "height": 64.22526041666674, + "seed": 807382041, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715093245819, + "link": null, + "locked": false, + "startBinding": { + "elementId": "rCUjCkoBVasQ6ruB9Pe6T", + "focus": 0.6858630966192939, + "gap": 1 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -185.01953125, + 64.22526041666674 + ] + ] + }, + { + "type": "arrow", + "version": 32, + "versionNonce": 56593113, + "index": "aa", + "isDeleted": false, + "id": "vKsy0MLDrFN8pZIgJzo0N", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2275.720785728854, + "y": -312.79498386821, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 397.20052083333303, + "height": 365.546875, + "seed": 1374380151, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "hx63ED2MSPISyLKwE5dKh" + } + ], + "updated": 1715093271391, + "link": null, + "locked": false, + "startBinding": { + "elementId": "DnxmkEMaQ29V1tSD5z0dq", + "focus": 0.5630227918220636, + "gap": 16.451822916666515 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 397.20052083333303, + -365.546875 + ] + ] + }, + { + "type": "text", + "version": 51, + "versionNonce": 393952537, + "index": "aaV", + "isDeleted": false, + "id": "hx63ED2MSPISyLKwE5dKh", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2325.7670758086065, + "y": -563.06842136821, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 297.1079406738281, + "height": 135, + "seed": 1829405977, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715093270397, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "юзер кликнул на \nсуществующую \nкомпанию", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "vKsy0MLDrFN8pZIgJzo0N", + "originalText": "юзер кликнул на существующую компанию", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 40, + "versionNonce": 1633559865, + "index": "ab", + "isDeleted": false, + "id": "KxdmyBhw3QIxanSLKTbC7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2288.07104614552, + "y": -293.0033172015435, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 978.294270833333, + "height": 230.76171875, + "seed": 196678745, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "_gRp8w9FEa2UPPWyAGo91" + } + ], + "updated": 1715093287803, + "link": null, + "locked": false, + "startBinding": { + "elementId": "DnxmkEMaQ29V1tSD5z0dq", + "focus": -0.8076513876771036, + "gap": 28.802083333332575 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 978.294270833333, + 230.76171875 + ] + ] + }, + { + "type": "text", + "version": 82, + "versionNonce": 918220665, + "index": "ac", + "isDeleted": false, + "id": "_gRp8w9FEa2UPPWyAGo91", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2657.698207807304, + "y": -222.6224578265435, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 239.03994750976562, + "height": 90, + "seed": 1864262999, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715093286696, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "юзер кликнул \nна \"добавить\"", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "KxdmyBhw3QIxanSLKTbC7", + "originalText": "юзер кликнул \nна \"добавить\"", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 104, + "versionNonce": 1177116633, + "index": "ag", + "isDeleted": false, + "id": "lSoMj19ZnzQQQFRKI10A5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3276.6778169788536, + "y": -135.76373386820933, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 501.3346354166665, + "height": 267.92317708333326, + "seed": 1093120759, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1715093306691, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 94, + "versionNonce": 1315378165, + "index": "ah", + "isDeleted": false, + "id": "lAL5hnG9XhyF-lQcyJ9zp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3358.975994062187, + "y": -57.879619284875844, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 328.8960876464844, + "height": 90, + "seed": 825418361, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351300077, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "форма добавления \nкомпании", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "форма добавления \nкомпании", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 153, + "versionNonce": 2056537958, + "index": "ai", + "isDeleted": false, + "id": "MkHw6pdf6N2Bq3DQzW6EL", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2684.178437018536, + "y": -811.7402963682091, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 504.8046875, + "height": 223.45052083333337, + "seed": 1086150583, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "Tg2C8_JGymoYIodIXyYQu" + }, + { + "id": "jsPAA7B73w0Ou9pq7Hn54", + "type": "arrow" + }, + { + "id": "cJLSZV6tMgZyeUu6Dic9J", + "type": "arrow" + }, + { + "id": "1iW8e1ppt68BtO9tlzxa7", + "type": "arrow" + }, + { + "id": "eGlbHgqwZ8VvOS-j1qvwJ", + "type": "arrow" + }, + { + "id": "iBhTm07Dg2Ak_2x6DBW-7", + "type": "arrow" + } + ], + "updated": 1715351989895, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 18, + "versionNonce": 614623910, + "index": "aj", + "isDeleted": false, + "id": "Tg2C8_JGymoYIodIXyYQu", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2831.3887946845516, + "y": -722.5150359515425, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 210.38397216796875, + "height": 45, + "seed": 2092235129, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351989895, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "лк компании", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "MkHw6pdf6N2Bq3DQzW6EL", + "originalText": "лк компании", + "lineHeight": 1.25 + }, + { + "type": "ellipse", + "version": 125, + "versionNonce": 2118182650, + "index": "al", + "isDeleted": false, + "id": "P6nbgIfPS60Wj2cjihTPJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2870.154379478854, + "y": -1433.7324838682089, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 725.930989583334, + "height": 238.43098958333303, + "seed": 1582220791, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "id": "jsPAA7B73w0Ou9pq7Hn54", + "type": "arrow" + }, + { + "id": "DMRVlpTuLXYsXWXC4vSD4", + "type": "arrow" + } + ], + "updated": 1715351709065, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 80, + "versionNonce": 1085703610, + "index": "am", + "isDeleted": false, + "id": "11cspCnOWWkc93LTiWv9f", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3034.1908378121866, + "y": -1362.1374317848752, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 438.01214599609375, + "height": 90, + "seed": 1424263735, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351691423, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "кнопка добавить\nпользователя в компанию", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "кнопка добавить\nпользователя в компанию", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 66, + "versionNonce": 72907046, + "index": "an", + "isDeleted": false, + "id": "jsPAA7B73w0Ou9pq7Hn54", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2972.658954231503, + "y": -820.4772755348749, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 222.8724589489575, + "height": 361.8651007867086, + "seed": 1442753879, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715351989896, + "link": null, + "locked": false, + "startBinding": { + "elementId": "MkHw6pdf6N2Bq3DQzW6EL", + "focus": -0.11866543930937638, + "gap": 8.73697916666589 + }, + "endBinding": { + "elementId": "P6nbgIfPS60Wj2cjihTPJ", + "focus": -0.11832488201556607, + "gap": 13.622485475602247 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 222.8724589489575, + -361.8651007867086 + ] + ] + }, + { + "type": "arrow", + "version": 32, + "versionNonce": 1155191098, + "index": "ao", + "isDeleted": false, + "id": "DMRVlpTuLXYsXWXC4vSD4", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3219.371813317667, + "y": -1435.8413850971742, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 53.04819116118733, + "height": 334.2582862710351, + "seed": 735653783, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715351709065, + "link": null, + "locked": false, + "startBinding": { + "elementId": "P6nbgIfPS60Wj2cjihTPJ", + "focus": -0.09080203574072765, + "gap": 2.1949798925326007 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 53.04819116118733, + -334.2582862710351 + ] + ] + }, + { + "type": "rectangle", + "version": 131, + "versionNonce": 1210467097, + "index": "ap", + "isDeleted": false, + "id": "u7yChMq9bXmDX_-CopGwo", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3039.7377128121875, + "y": -2144.403056784876, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 498.1966145833335, + "height": 364.57682291666674, + "seed": 2121929623, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "UmHjZ4j4nzfhgQZ-MhsvT", + "type": "arrow" + } + ], + "updated": 1715093439958, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 142, + "versionNonce": 548064597, + "index": "aq", + "isDeleted": false, + "id": "CCfrTWbNLWONt8ofYVWvN", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3135.3496919788545, + "y": -2084.6764942848763, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 308.12408447265625, + "height": 90, + "seed": 922338903, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351300077, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "кнопка генерации\nссылки", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "кнопка генерации\nссылки", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 110, + "versionNonce": 289790822, + "index": "ar", + "isDeleted": false, + "id": "UmHjZ4j4nzfhgQZ-MhsvT", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3022.5241711455205, + "y": -1858.821251540456, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 1066.145560787074, + "height": 614.5639540065661, + "seed": 1764304023, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "OyokdpTvOqZD1JrWXtAZ9" + } + ], + "updated": 1715351637669, + "link": null, + "locked": false, + "startBinding": { + "elementId": "u7yChMq9bXmDX_-CopGwo", + "focus": 0.1541278362488645, + "gap": 17.213541666666742 + }, + "endBinding": { + "elementId": "u-6iVxWKNjb1gRFpmqHqx", + "focus": 0.38126257070789143, + "gap": 11.50563113601902 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -1066.145560787074, + 614.5639540065661 + ] + ] + }, + { + "type": "text", + "version": 67, + "versionNonce": 1630154745, + "index": "as", + "isDeleted": false, + "id": "OyokdpTvOqZD1JrWXtAZ9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2121.7120351347535, + "y": -1596.7027578505513, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 736.1637573242188, + "height": 90, + "seed": 1009995031, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715093452359, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "generate-link (запрос на бек возвращает \nссылку)", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "UmHjZ4j4nzfhgQZ-MhsvT", + "originalText": "generate-link (запрос на бек возвращает ссылку)", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 60, + "versionNonce": 775102075, + "index": "aw", + "isDeleted": false, + "id": "3RgPitiYHHZmQF4bJSyTR", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3098.383546145521, + "y": -1858.406963034876, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 374.47210693359375, + "height": 45, + "seed": 1623922935, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351300077, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "страница добавления", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "страница добавления", + "lineHeight": 1.25 + }, + { + "type": "freedraw", + "version": 44, + "versionNonce": 794818435, + "index": "ax", + "isDeleted": false, + "id": "iPyG0S-zzRC6lhTW1DXNX", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 578.6065515003899, + "y": -403.62815791425123, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 314.80312690478286, + "height": 301.18011297367684, + "seed": 1619089315, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264340060, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.813169825705927, + 0 + ], + [ + 7.320551970096062, + 0 + ], + [ + 15.50405642408441, + 0.552677433503959 + ], + [ + 23.542119448203152, + 2.6858184049226566 + ], + [ + 28.90406016272391, + 5.071057854781884 + ], + [ + 37.37844747645113, + 9.20159446307457 + ], + [ + 51.72866855690438, + 16.725764434987923 + ], + [ + 86.30494448453726, + 40.69451207747488 + ], + [ + 101.08179375927432, + 52.02924751196815 + ], + [ + 122.41320347346175, + 70.75240758382984 + ], + [ + 131.59540574588698, + 78.62563698742997 + ], + [ + 152.49049117046593, + 98.2505339244824 + ], + [ + 162.71987173795128, + 108.10176677430695 + ], + [ + 171.91177010570118, + 117.29366514205685 + ], + [ + 180.91944266228302, + 125.98136655292592 + ], + [ + 190.42161608042102, + 135.17326492067582 + ], + [ + 211.37487807694777, + 157.1446169262888 + ], + [ + 224.93001934078143, + 172.27052563271263 + ], + [ + 237.59311983474902, + 187.1249436700466 + ], + [ + 255.87995561700245, + 209.26112929617852 + ], + [ + 265.58574703695774, + 220.95462025768302 + ], + [ + 281.642480894546, + 241.52973453654909 + ], + [ + 286.9268528464697, + 248.97633574586553 + ], + [ + 292.5699803254048, + 257.3828503923203 + ], + [ + 297.340459225123, + 264.90702036423363 + ], + [ + 301.19950516432607, + 271.3549237551131 + ], + [ + 304.3992166214541, + 277.0659239013205 + ], + [ + 306.52266149754826, + 281.91397156363587 + ], + [ + 308.3261352279295, + 286.083292553227 + ], + [ + 309.6641963827286, + 289.1860430571087 + ], + [ + 310.5174527712961, + 291.6003707929417 + ], + [ + 311.30283649259115, + 293.97591414747626 + ], + [ + 312.06882802323696, + 295.9636136890256 + ], + [ + 312.78633907725964, + 297.45681236901873 + ], + [ + 314.1147041367341, + 299.22150171810154 + ], + [ + 314.46376356842075, + 299.8808362001764 + ], + [ + 314.48315575907, + 300.86014182796407 + ], + [ + 314.80312690478286, + 301.18011297367684 + ], + [ + 314.20196899465566, + 299.968101058098 + ], + [ + 309.37331352298963, + 295.6436425433128 + ], + [ + 309.37331352298963, + 295.6436425433128 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 29, + "versionNonce": 1551441987, + "index": "ay", + "isDeleted": false, + "id": "boogDasvQWGtsnBKLpe_2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 566.7773152043404, + "y": -10.674502692945453, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 242.14058854200084, + "height": 332.01369610600227, + "seed": 1018442435, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264341177, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -1.5125908706422706 + ], + [ + 0, + -6.7193940599690904 + ], + [ + 6.292765865685283, + -43.099143717983225 + ], + [ + 25.141975176767232, + -80.70060138690064 + ], + [ + 33.267303058807784, + -95.1671756112496 + ], + [ + 52.16499284651286, + -126.27224941266468 + ], + [ + 83.18280179000624, + -170.40887533038335 + ], + [ + 106.36616571119805, + -197.30584376090883 + ], + [ + 128.18238019161697, + -222.76779008338872 + ], + [ + 148.3211701808749, + -245.58270238224463 + ], + [ + 165.25055261768, + -263.36534120761735 + ], + [ + 191.84694209314182, + -288.94364067399283 + ], + [ + 211.98573208239964, + -307.43409445806356 + ], + [ + 218.86026366756278, + -313.23235946219256 + ], + [ + 229.2059973789436, + -322.4630422112409 + ], + [ + 233.22987693866537, + -325.6918419543431 + ], + [ + 237.544639358126, + -329.73511370471397 + ], + [ + 238.44637622331663, + -330.64654666522915 + ], + [ + 239.74565299681706, + -331.50949914912144 + ], + [ + 240.24015385837333, + -331.8391663901589 + ], + [ + 240.90918443577277, + -332.01369610600227 + ], + [ + 241.20976339083632, + -332.01369610600227 + ], + [ + 241.51034234589986, + -332.01369610600227 + ], + [ + 241.84970568226197, + -332.01369610600227 + ], + [ + 242.14058854200084, + -332.01369610600227 + ], + [ + 242.14058854200084, + -332.01369610600227 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 38, + "versionNonce": 130633123, + "index": "az", + "isDeleted": false, + "id": "E8tDd4lcJGojp_tTZ9cm7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -27.147307810584508, + "y": -371.75709258219035, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 327.38865863615337, + "height": 337.90892206337776, + "seed": 380251011, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264342355, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.872648579216758, + 0 + ], + [ + 11.431696387739521, + 0.3199711457129979 + ], + [ + 18.34501235420116, + 2.4531121171316954 + ], + [ + 27.71144043779435, + 7.068453491655873 + ], + [ + 52.92128828183401, + 24.560209457289375 + ], + [ + 66.5927826895632, + 35.76889565256238 + ], + [ + 94.7890278935891, + 60.910870829329724 + ], + [ + 108.72231687508332, + 75.36774895835401 + ], + [ + 139.94374382039396, + 105.97832189821293 + ], + [ + 156.95069501979606, + 123.63491148436538 + ], + [ + 192.19600152482843, + 163.72826565171295 + ], + [ + 209.76532625305913, + 183.8282712596722 + ], + [ + 227.64492603167804, + 205.0821122112627 + ], + [ + 254.28009988843837, + 237.70947297864473 + ], + [ + 257.8579590632271, + 241.87879396823587 + ], + [ + 268.35883029980204, + 254.52250227155423 + ], + [ + 280.4304689789672, + 271.07373699069876 + ], + [ + 291.16404650333334, + 286.1414691251748 + ], + [ + 297.59255770356344, + 294.8194744407192 + ], + [ + 302.21759517341223, + 301.5582606913374 + ], + [ + 308.79154780351183, + 310.50775667597145 + ], + [ + 313.68807594245027, + 317.5762101676273 + ], + [ + 317.159278068668, + 323.0157196447451 + ], + [ + 319.36998780268385, + 326.98142263251907 + ], + [ + 321.47404048812865, + 329.9290356112067 + ], + [ + 323.12237669331586, + 332.3530594423644 + ], + [ + 323.8592799379878, + 334.2244058400181 + ], + [ + 324.5283105153873, + 335.2521919444289 + ], + [ + 325.168252806813, + 335.8921342358544 + ], + [ + 325.89545995616027, + 336.6193413852018 + ], + [ + 327.18504063433613, + 337.90892206337776 + ], + [ + 327.38865863615337, + 337.8701376820791 + ], + [ + 327.029903109142, + 336.85204767299297 + ], + [ + 319.4766448512548, + 327.9122477836836 + ], + [ + 319.4766448512548, + 327.9122477836836 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 40, + "versionNonce": 1969037891, + "index": "b00", + "isDeleted": false, + "id": "17Ha1HFiZHBRUg5IR98H5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20.295686612833194, + "y": -13.263360144621856, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 150.81306667930488, + "height": 375.4522031603474, + "seed": 1830191331, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264343581, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -1.4350221080453593 + ], + [ + 0, + -10.258468853459135 + ], + [ + 1.4641103940192153, + -27.129674718316437 + ], + [ + 6.952100347760165, + -48.76166338756752 + ], + [ + 16.425185479924295, + -77.21000707003373 + ], + [ + 29.088285973891914, + -111.59236109117387 + ], + [ + 50.6717941665197, + -168.71205864857302 + ], + [ + 62.74343284568482, + -200.29224112089491 + ], + [ + 72.7304110300544, + -225.28877486779265 + ], + [ + 79.43041289937415, + -242.21815730459775 + ], + [ + 92.03533682139397, + -274.39949768704696 + ], + [ + 95.72954914007826, + -286.3063027456933 + ], + [ + 100.69394994628914, + -300.91831839991164 + ], + [ + 103.37007225588721, + -307.8219382710488 + ], + [ + 105.08628112834683, + -312.6215054567408 + ], + [ + 107.53939324547838, + -320.4462543837178 + ], + [ + 108.38295353872122, + -323.6071814595473 + ], + [ + 110.14764288780403, + -327.01051091849286 + ], + [ + 112.56197062363704, + -331.39314600522584 + ], + [ + 116.66341894595577, + -339.9644942721993 + ], + [ + 121.43389784567405, + -347.0038594778812 + ], + [ + 124.25546158514159, + -351.2313570394201 + ], + [ + 126.6697893209746, + -355.012834216026 + ], + [ + 128.87080295966575, + -358.2028495778295 + ], + [ + 132.47775042042832, + -362.7309260944321 + ], + [ + 133.93216471912297, + -364.31138963234685 + ], + [ + 137.57789656118405, + -367.3365713736316 + ], + [ + 140.74851973233825, + -369.7315069188153 + ], + [ + 142.20293403103284, + -370.81746959517386 + ], + [ + 143.6476522344028, + -371.9131283668571 + ], + [ + 145.05358605647427, + -372.97969885256657 + ], + [ + 146.42073549724716, + -373.7069060019139 + ], + [ + 148.13694436970678, + -374.6862116297016 + ], + [ + 149.85315324216646, + -375.4522031603474 + ], + [ + 150.17312438787923, + -375.4522031603474 + ], + [ + 150.81306667930488, + -375.4522031603474 + ], + [ + 150.81306667930488, + -375.4522031603474 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 229, + "versionNonce": 618092749, + "index": "b01", + "isDeleted": false, + "id": "xKHBmQJW6ihRTEHiWp54-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 780.6150014937444, + "y": 28.342584893368212, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 585.5568927497685, + "height": 448.2504868576741, + "seed": 1686832419, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264346952, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.33936333636199834, + 0.6593344820748825 + ], + [ + -0.6787266727241104, + 1.59985572856408 + ], + [ + -0.6787266727241104, + 2.579161356351733 + ], + [ + -0.6787266727241104, + 5.284371951923731 + ], + [ + -0.6787266727241104, + 9.608830466708923 + ], + [ + -0.6787266727241104, + 14.961075085905122 + ], + [ + -0.6787266727241104, + 21.40897847678457 + ], + [ + -0.6787266727241104, + 26.26672223442438 + ], + [ + -0.6787266727241104, + 41.896827897729054 + ], + [ + -0.6787266727241104, + 50.64270588054592 + ], + [ + -0.6787266727241104, + 61.50233264413214 + ], + [ + -0.6787266727241104, + 69.91854338591156 + ], + [ + -0.6787266727241104, + 78.30566584171697 + ], + [ + -0.6787266727241104, + 86.61521953492547 + ], + [ + -0.6787266727241104, + 94.4593606525516 + ], + [ + -0.6787266727241104, + 100.19944908473303 + ], + [ + -0.6787266727241104, + 107.02550019327305 + ], + [ + -0.6787266727241104, + 115.88773131998528 + ], + [ + -0.6787266727241104, + 123.4797739591711 + ], + [ + -0.6787266727241104, + 130.23795240043864 + ], + [ + -0.6787266727241104, + 136.40466902690378 + ], + [ + -0.6787266727241104, + 142.41624812817486 + ], + [ + -0.6787266727241104, + 147.75879665204639 + ], + [ + -0.6787266727241104, + 154.10004299435468 + ], + [ + -0.6787266727241104, + 162.24476306704446 + ], + [ + -0.29088285973887196, + 169.27443217740165 + ], + [ + 1.0180900090862224, + 175.61567851971017 + ], + [ + 2.99609345531087, + 182.81018125058608 + ], + [ + 5.264979761274503, + 190.78037160743247 + ], + [ + 8.183504453988348, + 199.6426027341447 + ], + [ + 11.034156479429726, + 208.7763245299468 + ], + [ + 15.571929091356878, + 222.42842674702683 + ], + [ + 16.686980053689354, + 226.91771888233075 + ], + [ + 19.489151602507604, + 235.8963031529388 + ], + [ + 22.359195818598323, + 245.74753600276358 + ], + [ + 28.574392921686467, + 264.53856874189773 + ], + [ + 30.659053416482152, + 270.6665009870642 + ], + [ + 32.65644905335603, + 276.04783389223417 + ], + [ + 35.28409088633089, + 283.42656243427814 + ], + [ + 37.81477176605949, + 290.0683877316501 + ], + [ + 42.23619123409105, + 301.8782318370502 + ], + [ + 44.59234239797638, + 307.12381940767546 + ], + [ + 46.88062089458913, + 311.7003764009012 + ], + [ + 48.63561414834726, + 315.68547157932426 + ], + [ + 51.25355988599756, + 320.2038520006022 + ], + [ + 53.997554862868014, + 324.3246925135702 + ], + [ + 56.159784120260724, + 327.1947367296609 + ], + [ + 60.62968406491541, + 333.18692364028266 + ], + [ + 64.7602206732081, + 337.8895298727284 + ], + [ + 66.79640069138043, + 340.0905435114196 + ], + [ + 68.6580509937096, + 342.3400376267339 + ], + [ + 70.3645637708446, + 344.08533478516733 + ], + [ + 72.2649984544721, + 345.59792565580983 + ], + [ + 73.97151123160711, + 347.29474233762016 + ], + [ + 75.47440600692494, + 349.1951770212477 + ], + [ + 77.20031097470917, + 350.9016897983827 + ], + [ + 79.09104956301212, + 352.4045845737005 + ], + [ + 81.01087643728897, + 353.9171754443428 + ], + [ + 82.9113111209166, + 355.4297663149853 + ], + [ + 84.82144189986889, + 356.94235718562754 + ], + [ + 87.01275944323538, + 358.4937324375685 + ], + [ + 89.08772384270628, + 360.0354115941848 + ], + [ + 91.46326719724084, + 361.95523846846163 + ], + [ + 94.34300750865611, + 364.10777163052967 + ], + [ + 96.92216886500785, + 365.87246097961247 + ], + [ + 99.2977122195424, + 367.4529245175272 + ], + [ + 101.76052043199854, + 369.4115357731025 + ], + [ + 104.63056464808926, + 371.53498064919677 + ], + [ + 107.549089340803, + 373.29966999827957 + ], + [ + 110.24460384105032, + 374.56016239048154 + ], + [ + 113.23100120103663, + 375.6752133528139 + ], + [ + 116.99308618699331, + 377.2653729860533 + ], + [ + 120.98787746074106, + 379.0300623351361 + ], + [ + 128.8320185783673, + 381.7643612166821 + ], + [ + 133.25343804639886, + 383.1509028481041 + ], + [ + 137.5972887518334, + 384.2756499057614 + ], + [ + 141.6308644068797, + 385.16769067562745 + ], + [ + 146.02319558893737, + 386.0597314454933 + ], + [ + 157.13492083096412, + 388.4449708953525 + ], + [ + 160.81943705432377, + 388.9685600428827 + ], + [ + 167.46126235169572, + 389.9866500519688 + ], + [ + 180.74491294643963, + 390.9562595844318 + ], + [ + 195.57024269780004, + 391.99374178416747 + ], + [ + 204.55852306373254, + 392.5464192176712 + ], + [ + 213.54680342966503, + 393.09909665117516 + ], + [ + 222.53508379559776, + 393.6517740846791 + ], + [ + 231.52336416153025, + 393.6517740846791 + ], + [ + 240.51164452746298, + 393.6517740846791 + ], + [ + 250.3725734726121, + 393.6517740846791 + ], + [ + 261.1061509969783, + 393.6517740846791 + ], + [ + 271.83972852134445, + 393.6517740846791 + ], + [ + 284.18285786959916, + 393.6517740846791 + ], + [ + 307.2498686468954, + 393.6517740846791 + ], + [ + 317.343503879836, + 393.6517740846791 + ], + [ + 327.7086297818661, + 393.6517740846791 + ], + [ + 338.61673702207565, + 393.6517740846791 + ], + [ + 349.54423645293434, + 393.6517740846791 + ], + [ + 360.4814319791177, + 393.38997951091415 + ], + [ + 379.98997577227453, + 391.4022799693648 + ], + [ + 387.55293012548634, + 390.3260133883309 + ], + [ + 396.59938706336686, + 389.20126633067366 + ], + [ + 407.0614739186432, + 387.7468520319792 + ], + [ + 416.51516686015805, + 386.05003535016886 + ], + [ + 424.5047494076538, + 384.40169914498165 + ], + [ + 431.6313794712572, + 382.8503238930407 + ], + [ + 438.85497048810714, + 381.24077206915194 + ], + [ + 444.1005580587322, + 379.96088748630063 + ], + [ + 451.1011388831156, + 377.91501137280375 + ], + [ + 460.8844990656679, + 375.1322320146346 + ], + [ + 469.4558473326414, + 372.85364961334653 + ], + [ + 478.33747065000296, + 370.187223399073 + ], + [ + 487.4614963504804, + 367.3365713736316 + ], + [ + 495.9940602361554, + 364.54409592013803 + ], + [ + 504.3036139293639, + 361.8001009432676 + ], + [ + 512.6034715272477, + 359.0367137757478 + ], + [ + 519.8755430207208, + 356.11818908303394 + ], + [ + 527.3803208019848, + 352.45306505032363 + ], + [ + 533.8185280975396, + 349.03034340072895 + ], + [ + 538.8992820476459, + 345.9954655641195 + ], + [ + 544.2806149528161, + 342.57274391452506 + ], + [ + 549.322584521624, + 339.07245350233325 + ], + [ + 553.7827883709541, + 335.6497318527388 + ], + [ + 558.3108648875565, + 331.62585229301703 + ], + [ + 562.392921019226, + 326.7099319634292 + ], + [ + 565.4084066651861, + 321.34799124890856 + ], + [ + 567.9293914495901, + 315.3364121476375 + ], + [ + 570.1401011836059, + 306.9686818824814 + ], + [ + 573.737352549044, + 290.756810499699 + ], + [ + 574.997844941246, + 284.44465244336425 + ], + [ + 577.5867023929221, + 270.8022463216091 + ], + [ + 579.6131863157701, + 255.06548360973352 + ], + [ + 581.0094240425168, + 238.25245431682401 + ], + [ + 582.4056617692637, + 221.4394250239145 + ], + [ + 583.7631151147119, + 205.7026623120389 + ], + [ + 584.4224495967868, + 194.68789802325864 + ], + [ + 584.4224495967868, + 181.43333571448852 + ], + [ + 584.4224495967868, + 169.58470722778975 + ], + [ + 584.4224495967868, + 162.79744050054842 + ], + [ + 584.4224495967868, + 154.6042399512355 + ], + [ + 583.2201337765326, + 145.53839082270588 + ], + [ + 580.6506685155056, + 137.8784755162476 + ], + [ + 577.1600741986384, + 132.4195738484807 + ], + [ + 572.0405358672334, + 125.74866026513473 + ], + [ + 565.8350348594698, + 119.05835449113965 + ], + [ + 559.716798709628, + 112.94011834129765 + ], + [ + 553.2591992234239, + 106.26920475795191 + ], + [ + 547.4415420286456, + 99.86008574837092 + ], + [ + 539.7525384362135, + 92.17108215593885 + ], + [ + 530.289149399374, + 82.7076931190993 + ], + [ + 522.3480473285016, + 74.37874723524169 + ], + [ + 514.9208383098345, + 66.68004754748495 + ], + [ + 507.81360043688017, + 58.9813478597282 + ], + [ + 500.4057836088624, + 51.54444274573643 + ], + [ + 492.7555643977288, + 44.49538144473013 + ], + [ + 487.2675744439879, + 39.30797044605265 + ], + [ + 482.4195267816725, + 34.9932080265919 + ], + [ + 473.5766878456094, + 28.089588155454976 + ], + [ + 466.47914606797974, + 22.640382583012524 + ], + [ + 461.1172053534591, + 18.645591309264773 + ], + [ + 450.0539605880555, + 11.499569055011989 + ], + [ + 438.50591105642036, + 4.848047662315366 + ], + [ + 429.88608231282376, + -0.11635314389559426 + ], + [ + 421.2565574739025, + -5.27467585659906 + ], + [ + 412.2294927266713, + -10.083939137615744 + ], + [ + 403.0666826448954, + -14.272652317856227 + ], + [ + 393.92326475376865, + -17.869903683294297 + ], + [ + 384.1205123805672, + -21.825910575743592 + ], + [ + 373.4063270468504, + -25.587995561700154 + ], + [ + 362.440043234693, + -28.797403114152985 + ], + [ + 350.16478655371077, + -32.41404667024017 + ], + [ + 336.6678218618248, + -35.79798393853616 + ], + [ + 322.7539250709798, + -39.13344073020926 + ], + [ + 307.9382914149443, + -42.51737799850525 + ], + [ + 292.94812804306537, + -45.36803002394663 + ], + [ + 278.888789822351, + -48.03445623822017 + ], + [ + 265.6730118948793, + -50.66209807119503 + ], + [ + 252.8159894944191, + -52.64010151741968 + ], + [ + 240.93827272174667, + -53.92968219559566 + ], + [ + 230.82524529815691, + -54.5696244870212 + ], + [ + 220.85765930443654, + -54.598712772994986 + ], + [ + 204.51973868243408, + -54.598712772994986 + ], + [ + 198.20758062609957, + -54.598712772994986 + ], + [ + 186.52378575991952, + -54.598712772994986 + ], + [ + 174.8399908937397, + -54.598712772994986 + ], + [ + 164.0288446067766, + -53.483661810662625 + ], + [ + 156.5725473021355, + -51.37960912521771 + ], + [ + 146.28499016270246, + -48.40290786055607 + ], + [ + 135.27022587392207, + -44.82504868576734 + ], + [ + 127.07702532460917, + -41.567160656691385 + ], + [ + 119.62072801996817, + -38.40623358086191 + ], + [ + 112.7268042441558, + -34.6829329762038 + ], + [ + 105.06688893769763, + -30.319690080119926 + ], + [ + 97.6493760143552, + -26.61578166611116 + ], + [ + 90.01854899387081, + -22.233146579377944 + ], + [ + 82.14531959027079, + -17.1814809152454 + ], + [ + 73.3218728448569, + -11.89710896332167 + ], + [ + 66.22433106722724, + -7.0199730150325195 + ], + [ + 59.088004908299126, + -1.7162088724596742 + ], + [ + 51.340824743919256, + 3.684516223359651 + ], + [ + 46.39581612835764, + 7.252679302823708 + ], + [ + 41.47989579876992, + 10.94689162150803 + ], + [ + 36.020994131002794, + 15.03864384850226 + ], + [ + 31.221426945310668, + 18.984954645626885 + ], + [ + 27.110282527667323, + 22.591902106389398 + ], + [ + 23.551815543527823, + 25.636476038323508 + ], + [ + 20.381192372373675, + 28.331990538570835 + ], + [ + 17.501452060958286, + 30.969328466870365 + ], + [ + 14.912594609281996, + 33.5484898232221 + ], + [ + 12.595227826695236, + 36.069474607626034 + ], + [ + 11.228078385922345, + 37.81477176605949 + ], + [ + 9.143417891126774, + 40.2872760738403 + ], + [ + 6.612737011398167, + 43.428810959020666 + ], + [ + 5.0419695688079855, + 45.77526602758121 + ], + [ + 3.684516223359651, + 48.49017271847788 + ], + [ + 2.424023831157683, + 51.42808960184084 + ], + [ + 1.2217080109035123, + 54.00725095819257 + ], + [ + 0.29088285973898564, + 56.3924904080518 + ], + [ + -0.22301019246651776, + 57.91477737401874 + ], + [ + -0.33936333636199834, + 58.748641571937014 + ], + [ + -0.7369032446719075, + 60.77512549478479 + ], + [ + -1.134443152981703, + 62.985835228800624 + ], + [ + -1.134443152981703, + 64.02331742853607 + ], + [ + -1.134443152981703, + 64.68265191061096 + ], + [ + -1.134443152981703, + 65.34198639268584 + ], + [ + -1.134443152981703, + 65.71043801502196 + ], + [ + -1.134443152981703, + 65.71043801502196 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 248, + "versionNonce": 1109942275, + "index": "b02", + "isDeleted": false, + "id": "rxbADKHQGy--Ky5Y9uThA", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1841.3969182943097, + "y": -391.7116567602802, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 612.1241939392567, + "height": 363.47752543442857, + "seed": 1619478925, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264350719, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.5222869659669414, + 0 + ], + [ + -3.3257606963481976, + 0 + ], + [ + -3.9366147017999538, + 0 + ], + [ + -5.8855298620508165, + 0 + ], + [ + -8.474387313726993, + 0 + ], + [ + -11.518961245661103, + 0 + ], + [ + -14.36961327110248, + 0 + ], + [ + -20.68177132743699, + 0.4557164802577063 + ], + [ + -25.268024415987384, + 1.8228659210305977 + ], + [ + -34.692629071528245, + 6.796962822566229 + ], + [ + -47.37512175614529, + 14.262956222531784 + ], + [ + -59.34010338673943, + 21.6513808599002 + ], + [ + -70.93663339499767, + 29.146462545839768 + ], + [ + -79.24618708820617, + 34.75080564347627 + ], + [ + -85.48077638194354, + 38.91043053774274 + ], + [ + -93.23765264164808, + 44.40811658680832 + ], + [ + -108.11146286963162, + 54.99625268130512 + ], + [ + -113.1534324384395, + 58.54502357011984 + ], + [ + -117.09974323556412, + 61.13388102179624 + ], + [ + -120.49337659918478, + 63.61608142490172 + ], + [ + -123.0531457648874, + 65.74922239632042 + ], + [ + -125.01175702046271, + 67.12606793241798 + ], + [ + -126.92188779941489, + 68.47382518254153 + ], + [ + -128.57992009992677, + 69.94763167188557 + ], + [ + -129.5980101090131, + 70.95602558564701 + ], + [ + -130.66458059472234, + 72.37165550304326 + ], + [ + -131.95416127289832, + 74.23330580537231 + ], + [ + -132.8655942334135, + 75.99799515445511 + ], + [ + -134.38788119938044, + 79.79886452171013 + ], + [ + -135.5126282570377, + 82.41681025936055 + ], + [ + -138.1014857087141, + 90.35791233023292 + ], + [ + -140.88426506688302, + 99.2686239335685 + ], + [ + -142.70713098791362, + 104.9893201751006 + ], + [ + -146.11046044685895, + 118.93230525191939 + ], + [ + -147.3224723624378, + 125.33172816617571 + ], + [ + -148.58296475463976, + 132.58440746899942 + ], + [ + -150.90033153722652, + 149.1162499974946 + ], + [ + -150.95850810917432, + 157.4548919766769 + ], + [ + -151.41422458943202, + 165.84201443248253 + ], + [ + -151.97659811826043, + 175.02421670490776 + ], + [ + -152.09295126215602, + 187.77458205679704 + ], + [ + -152.09295126215602, + 198.98326825207005 + ], + [ + -152.09295126215602, + 208.65997138605144 + ], + [ + -152.09295126215602, + 218.24940966211102 + ], + [ + -152.09295126215602, + 224.89123495948297 + ], + [ + -152.09295126215602, + 230.79615701218313 + ], + [ + -152.09295126215602, + 236.70107906488306 + ], + [ + -151.60814649592453, + 242.60600111758322 + ], + [ + -150.62884086813688, + 248.51092317028338 + ], + [ + -149.678623526323, + 253.75651074090842 + ], + [ + -148.24360141827765, + 259.0020983115337 + ], + [ + -146.8085793102323, + 264.24768588215875 + ], + [ + -145.4414298694594, + 268.82424287538447 + ], + [ + -143.68643661570127, + 272.80933805380755 + ], + [ + -141.97992383856626, + 276.7750410415815 + ], + [ + -139.9243516297447, + 280.701959648057 + ], + [ + -137.90756380222138, + 283.7271413893418 + ], + [ + -136.09439397651545, + 286.64566608205564 + ], + [ + -133.60249747808552, + 289.68054391866485 + ], + [ + -130.44157040225582, + 292.84147099449456 + ], + [ + -127.29033942175101, + 295.62425035266347 + ], + [ + -124.03245139267506, + 297.82526399135463 + ], + [ + -120.45459221788633, + 300.0747581066689 + ], + [ + -116.91551742439606, + 302.1012420295167 + ], + [ + -113.47340358415227, + 303.8174509019764 + ], + [ + -105.33837960678716, + 307.15290769364947 + ], + [ + -100.29641003797929, + 308.31643913260496 + ], + [ + -94.18786998346195, + 309.6157159061056 + ], + [ + -87.44908373284352, + 311.176787253371 + ], + [ + -81.89322111183037, + 312.1173084998602 + ], + [ + -75.60045524614497, + 312.6893781240135 + ], + [ + -67.63996098462326, + 313.2808399388159 + ], + [ + -60.24184025193017, + 313.49415403595776 + ], + [ + -52.40739522962849, + 313.49415403595776 + ], + [ + -43.496683626292906, + 313.49415403595776 + ], + [ + -33.70362734841592, + 313.0481336510247 + ], + [ + -23.018530300673092, + 311.5452388757071 + ], + [ + -12.750365351889286, + 309.7514612406503 + ], + [ + -2.7439949768704537, + 307.95768360559373 + ], + [ + 5.507382144390249, + 305.88271920612283 + ], + [ + 15.077428229800717, + 303.59444070950985 + ], + [ + 24.68625869650964, + 301.71339821653146 + ], + [ + 31.337780089206262, + 300.1329346786167 + ], + [ + 40.51998236163149, + 297.97070542122424 + ], + [ + 50.43908787872874, + 296.10905511889496 + ], + [ + 63.7615228547711, + 293.09356947293486 + ], + [ + 70.77179977447918, + 291.98821460592694 + ], + [ + 77.87903764743328, + 290.84407535762057 + ], + [ + 89.95067632659857, + 288.759414862825 + ], + [ + 101.84778528992024, + 286.76201922595124 + ], + [ + 109.39134745248293, + 285.3366932132303 + ], + [ + 111.67962594909568, + 284.87128063764817 + ], + [ + 116.25618294232117, + 283.9501515818083 + ], + [ + 120.83273993554712, + 283.02902252596823 + ], + [ + 126.8055346555193, + 282.0400208028559 + ], + [ + 133.44735995289147, + 281.0122346984451 + ], + [ + 139.3522820055914, + 280.51773383688897 + ], + [ + 145.99410730296358, + 279.98444859403435 + ], + [ + 153.37283584500756, + 278.92757420364956 + ], + [ + 168.9156766503902, + 276.7750410415815 + ], + [ + 187.28977729056533, + 274.40919378237163 + ], + [ + 195.4732817445538, + 273.3135350106884 + ], + [ + 214.0122160052474, + 270.89920727485537 + ], + [ + 222.7290057020905, + 269.5514500247318 + ], + [ + 241.0740180562916, + 266.32265028162965 + ], + [ + 250.23682813806772, + 264.93610865020764 + ], + [ + 259.3899421245187, + 262.9774973946321 + ], + [ + 268.5236639203208, + 260.94131737645966 + ], + [ + 276.6392957070366, + 259.52568745906365 + ], + [ + 283.21324833713606, + 258.49790135465287 + ], + [ + 289.5641907747695, + 257.47981134556653 + ], + [ + 303.0708515619799, + 254.5903749388267 + ], + [ + 309.8969026705199, + 252.99051921026262 + ], + [ + 317.1011014967203, + 251.08038843131044 + ], + [ + 324.6446636592832, + 248.91815917391773 + ], + [ + 331.7131171509386, + 246.80441039314837 + ], + [ + 338.50038387817995, + 244.7197498983528 + ], + [ + 344.40530593088033, + 243.0132371212178 + ], + [ + 349.39879502306485, + 241.53943063187376 + ], + [ + 355.5073350775824, + 239.66808423422003 + ], + [ + 362.2461213282004, + 237.94217926643591 + ], + [ + 367.9959058557065, + 236.44898058644276 + ], + [ + 373.38693485620115, + 235.0139584783974 + ], + [ + 378.72948338007245, + 233.91829970671415 + ], + [ + 383.5387466610896, + 232.97777846022495 + ], + [ + 387.70806765068073, + 232.06634549970977 + ], + [ + 391.7610354963763, + 231.16460863451903 + ], + [ + 396.31820029895243, + 230.2337834833545 + ], + [ + 400.47782519321936, + 229.32235052283932 + ], + [ + 404.5404891342396, + 228.00368155868955 + ], + [ + 408.5352804079871, + 226.65592430856577 + ], + [ + 412.5979443490073, + 225.2790787724682 + ], + [ + 416.6800004806769, + 223.50469332806097 + ], + [ + 420.1221143209209, + 221.7884844556013 + ], + [ + 423.71936568635874, + 219.52929424496233 + ], + [ + 429.0328259242565, + 216.4071515504313 + ], + [ + 430.8653879406115, + 215.03030601433375 + ], + [ + 433.96813844449343, + 212.38327199070955 + ], + [ + 437.07088894837534, + 209.73623796708534 + ], + [ + 439.67913859070086, + 207.1861648967074 + ], + [ + 441.72501470419775, + 204.7427488749006 + ], + [ + 443.83876348496733, + 201.77574370556363 + ], + [ + 445.9525122657369, + 198.80873853622666 + ], + [ + 448.69650724260737, + 194.58124097468772 + ], + [ + 450.62603021220866, + 189.32595730873777 + ], + [ + 452.061052320254, + 184.07067364278805 + ], + [ + 454.029359671154, + 178.15605549476345 + ], + [ + 455.5419505417967, + 171.50453410206683 + ], + [ + 456.5212561695844, + 165.52204328676976 + ], + [ + 457.49086570204736, + 159.59772904342026 + ], + [ + 458.5283479017826, + 152.2771770733243 + ], + [ + 459.5464379108689, + 145.6256556806277 + ], + [ + 460.03124267710064, + 139.09048743182666 + ], + [ + 460.03124267710064, + 133.84489986120138 + ], + [ + 460.03124267710064, + 128.87080295966598 + ], + [ + 460.03124267710064, + 122.98527309761516 + ], + [ + 459.468869148272, + 118.41841219971411 + ], + [ + 457.11271798438656, + 113.3570504402569 + ], + [ + 454.03905576647867, + 108.05328629768383 + ], + [ + 450.54846144961175, + 102.48772758134601 + ], + [ + 447.20330856261444, + 97.7366408722769 + ], + [ + 442.2292116610788, + 91.7056695803567 + ], + [ + 435.61647464968064, + 83.77426360480877 + ], + [ + 431.5538107086604, + 78.89712765651961 + ], + [ + 426.8899888575129, + 73.97151123160711 + ], + [ + 418.3865132578121, + 65.75891849164509 + ], + [ + 409.93151813473423, + 57.82751251609716 + ], + [ + 403.2799967420374, + 52.03894360729282 + ], + [ + 396.2115432503815, + 46.72548336939508 + ], + [ + 388.9491678522336, + 41.69320989591188 + ], + [ + 381.72557683538344, + 36.68032861307779 + ], + [ + 374.5601623904813, + 31.71592780686683 + ], + [ + 367.3462674689563, + 27.09089033701798 + ], + [ + 359.56030292327796, + 22.54342162976627 + ], + [ + 351.50284770850976, + 17.937776350566764 + ], + [ + 343.48417687504025, + 12.934591163057348 + ], + [ + 338.50038387817995, + 9.521565608787341 + ], + [ + 335.23279975377955, + 7.514473876588909 + ], + [ + 323.2387298372114, + -0.513893052205276 + ], + [ + 309.43149009493754, + -9.279163225671482 + ], + [ + 298.9306188583623, + -15.116212611099172 + ], + [ + 289.6708478233404, + -20.623594755489194 + ], + [ + 280.4498611696167, + -25.5492111804017 + ], + [ + 271.9754738558895, + -29.815493123239094 + ], + [ + 266.24508151903274, + -32.43343886088928 + ], + [ + 259.545079649713, + -35.04168850321503 + ], + [ + 250.40166175858622, + -39.094656348910576 + ], + [ + 247.44435268457391, + -40.0836580720229 + ], + [ + 242.1890690186242, + -41.52837627539293 + ], + [ + 236.93378535267448, + -42.97309447876296 + ], + [ + 231.6785016867243, + -44.41781268213276 + ], + [ + 225.69601087142746, + -45.94009964809993 + ], + [ + 219.0444894787306, + -47.49147490004066 + ], + [ + 213.129871330706, + -47.98597576159682 + ], + [ + 203.82161981906074, + -47.98597576159682 + ], + [ + 197.90700167103614, + -47.98597576159682 + ], + [ + 191.99238352301109, + -47.98597576159682 + ], + [ + 178.3402813059315, + -47.98597576159682 + ], + [ + 163.9512758441797, + -47.98597576159682 + ], + [ + 158.56024684368504, + -47.98597576159682 + ], + [ + 142.9495333710297, + -48.15080938211554 + ], + [ + 137.56820046585972, + -48.6453102436717 + ], + [ + 124.19728501319378, + -49.18829158185122 + ], + [ + 118.42810829503878, + -49.68279244340738 + ], + [ + 107.74301124729573, + -49.98337139847081 + ], + [ + 102.73012996446164, + -49.98337139847081 + ], + [ + 92.40378844373004, + -49.98337139847081 + ], + [ + 87.34242668427282, + -49.98337139847081 + ], + [ + 78.89712765651961, + -49.98337139847081 + ], + [ + 74.52418866511107, + -49.98337139847081 + ], + [ + 70.1900340550012, + -49.98337139847081 + ], + [ + 63.05370789607309, + -49.04285015198161 + ], + [ + 56.19856850155929, + -47.33633737484661 + ], + [ + 52.83402342391241, + -46.50247317692833 + ], + [ + 45.85283479017835, + -44.4953814447299 + ], + [ + 42.420417045259, + -42.91491790681516 + ], + [ + 36.42823013463726, + -39.58915721046674 + ], + [ + 33.53879372789743, + -37.96021319592887 + ], + [ + 27.71144043779441, + -34.692629071528245 + ], + [ + 25.306808797286067, + -32.82128267387452 + ], + [ + 19.372798458612124, + -28.884667972074567 + ], + [ + 16.405793289275152, + -26.809703572603667 + ], + [ + 10.665704857093715, + -22.010136386911427 + ], + [ + 7.718091878406085, + -20.303623609776423 + ], + [ + 2.4434160218070247, + -16.008253380965016 + ], + [ + -0.639942291425541, + -13.72967097967694 + ], + [ + -3.6942123186840945, + -11.470480769037977 + ], + [ + -5.575254811662489, + -9.986978184369491 + ], + [ + -9.473085132163988, + -6.108540054517107 + ], + [ + -11.916501153971012, + -4.062663941020219 + ], + [ + -13.90420069552033, + -2.084660494795571 + ], + [ + -15.891900237069649, + -0.10665704857092351 + ], + [ + -17.87959977861874, + 1.8713463976537241 + ], + [ + -20.865997138605053, + 5.614039192961172 + ], + [ + -23.71664916404643, + 8.086543500741982 + ], + [ + -25.229240034688928, + 9.240378844373026 + ], + [ + -27.023017669745514, + 11.014764288780498 + ], + [ + -27.682352151820396, + 11.66440267553071 + ], + [ + -28.555000731037126, + 12.827934114486425 + ], + [ + -28.884667972074567, + 13.02185602097893 + ], + [ + -29.282207880384476, + 13.02185602097893 + ], + [ + -29.592482930772576, + 13.02185602097893 + ], + [ + -29.427649310253855, + 13.02185602097893 + ], + [ + -29.136766450515097, + 13.02185602097893 + ], + [ + -29.136766450515097, + 13.02185602097893 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 339, + "versionNonce": 2114623149, + "index": "b03", + "isDeleted": false, + "id": "aKbMoXkhul5PAcJGtbAyn", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1181.6164158344936, + "y": -734.7207249644134, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 986.8104055689582, + "height": 261.73639719307926, + "seed": 1843166019, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264358186, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.2811867644142012 + ], + [ + 0, + 1.473806489343815 + ], + [ + 0, + 3.558466984139386 + ], + [ + 0, + 5.904922052700044 + ], + [ + -0.27149066908964414, + 10.21968447216068 + ], + [ + -1.357453345448448, + 12.585531731370565 + ], + [ + -2.63733792829953, + 15.465272042785841 + ], + [ + -4.314762419460749, + 20.710859613411003 + ], + [ + -5.129234426729681, + 23.21245220716571 + ], + [ + -6.622433106722838, + 26.964841097797716 + ], + [ + -7.84414111762635, + 30.222729126873674 + ], + [ + -7.84414111762635, + 30.930544085571682 + ], + [ + -7.84414111762635, + 33.32547963075547 + ], + [ + -8.202896644637576, + 35.72041517593925 + ], + [ + -8.988280365932724, + 40.45210969435891 + ], + [ + -9.841536754500112, + 47.2005920403019 + ], + [ + -10.268164948784033, + 50.58452930859801 + ], + [ + -10.268164948784033, + 57.94386565999264 + ], + [ + -10.268164948784033, + 65.91405601683903 + ], + [ + -10.268164948784033, + 70.49061301006464 + ], + [ + -10.268164948784033, + 74.46601209316327 + ], + [ + -10.268164948784033, + 78.94560813314263 + ], + [ + -9.996674279694389, + 83.47368464974511 + ], + [ + -8.687701410869067, + 86.9739750619367 + ], + [ + -6.24428538906227, + 90.77484442919194 + ], + [ + -2.9476129786878573, + 95.2835287551452 + ], + [ + 1.066570485709235, + 99.8891740343447 + ], + [ + 5.041969568807872, + 104.08758330990986 + ], + [ + 8.988280365932496, + 108.55748325456454 + ], + [ + 13.32243497604236, + 113.20191291506262 + ], + [ + 18.005649017839005, + 117.88512695685927 + ], + [ + 22.078009054183894, + 122.1998893763199 + ], + [ + 25.966143279360722, + 126.33042598461248 + ], + [ + 30.387562747392394, + 130.5094430695283 + ], + [ + 34.77019783412538, + 134.38788119938056 + ], + [ + 39.90912835617951, + 138.7317319048151 + ], + [ + 49.50826272756399, + 145.4996064414073 + ], + [ + 59.41767214933634, + 152.28687316864875 + ], + [ + 64.62447533866316, + 155.69989872291865 + ], + [ + 73.53518694199875, + 160.88730972159613 + ], + [ + 77.84994936145927, + 163.67008907976503 + ], + [ + 82.10653520897222, + 166.50134891455718 + ], + [ + 86.64430782089926, + 169.30352046337543 + ], + [ + 92.5783181595732, + 172.77472258959324 + ], + [ + 98.00813154136631, + 175.98413014204596 + ], + [ + 103.25371911199159, + 179.08688064592775 + ], + [ + 109.8179756467664, + 182.2865921030559 + ], + [ + 114.50118968856304, + 184.35186040720225 + ], + [ + 118.78686382204978, + 186.59165842719187 + ], + [ + 123.40220519657396, + 188.78297597055837 + ], + [ + 136.2786197876835, + 193.8928182066387 + ], + [ + 140.62247049311804, + 195.77386069961722 + ], + [ + 145.81957758711997, + 197.31553985623327 + ], + [ + 151.5014894473536, + 198.89600339414824 + ], + [ + 161.14910429536098, + 201.27154674868257 + ], + [ + 169.38108922597257, + 202.7162649520526 + ], + [ + 176.24592471581104, + 204.0834143928255 + ], + [ + 180.82248170903654, + 204.5391308730832 + ], + [ + 185.39903870226226, + 204.9948473533409 + ], + [ + 190.64462627288754, + 205.45056383359838 + ], + [ + 197.2864515702595, + 205.45056383359838 + ], + [ + 209.83319892033137, + 205.45056383359838 + ], + [ + 216.47502421770355, + 205.45056383359838 + ], + [ + 221.85635712287353, + 205.45056383359838 + ], + [ + 228.9151145192045, + 205.45056383359838 + ], + [ + 237.23436430773768, + 205.45056383359838 + ], + [ + 243.87618960510963, + 205.45056383359838 + ], + [ + 252.36996910948596, + 204.91727859074376 + ], + [ + 260.9510134717841, + 204.20946363204575 + ], + [ + 268.7757623987611, + 203.4822564826984 + ], + [ + 277.7155622880705, + 202.33811723439203 + ], + [ + 287.731628758414, + 201.1551936047872 + ], + [ + 297.4277240830447, + 199.98196607050681 + ], + [ + 306.94928969183184, + 198.8184346315511 + ], + [ + 316.99444444814935, + 197.63551100194627 + ], + [ + 327.05899139511575, + 196.18109670325157 + ], + [ + 337.4919899644185, + 194.38731906819487 + ], + [ + 348.4388815859263, + 192.8456399115787 + ], + [ + 359.35668492146056, + 191.9342069510634 + ], + [ + 370.8077734998492, + 191.29426465963775 + ], + [ + 382.72427465382043, + 190.32465512717465 + ], + [ + 393.5645092267573, + 189.1126432115958 + ], + [ + 403.5805756971008, + 187.92971958199087 + ], + [ + 412.2682771079699, + 187.08615928874804 + ], + [ + 419.0943282165099, + 186.50439356927018 + ], + [ + 426.5700177118001, + 185.97110832641556 + ], + [ + 442.6558398553623, + 184.88514565005687 + ], + [ + 451.353237361556, + 184.70091983888892 + ], + [ + 459.1004175259359, + 184.3906447885007 + ], + [ + 470.17335838666395, + 183.83796735499675 + ], + [ + 476.8539680653346, + 183.83796735499675 + ], + [ + 489.3425388434589, + 182.9459265851308 + ], + [ + 495.2280687055095, + 182.83926953655987 + ], + [ + 501.66627600106426, + 182.83926953655987 + ], + [ + 509.04500454310823, + 182.35446477032826 + ], + [ + 516.4431252758013, + 181.3751591425406 + ], + [ + 520.0791610225378, + 180.79339342306275 + ], + [ + 522.9298130479792, + 180.70612856514106 + ], + [ + 535.2050697289617, + 180.03709798774162 + ], + [ + 552.5998647413492, + 178.74751730956575 + ], + [ + 571.0418380487965, + 178.08818282749087 + ], + [ + 575.5311301841004, + 177.52580929866224 + ], + [ + 585.3920591292499, + 176.96343576983372 + ], + [ + 593.0422783403835, + 176.96343576983372 + ], + [ + 601.6427148933308, + 176.96343576983372 + ], + [ + 610.2431514462783, + 176.96343576983372 + ], + [ + 616.2159461662507, + 176.96343576983372 + ], + [ + 622.8577714636226, + 176.96343576983372 + ], + [ + 628.7626935163228, + 176.96343576983372 + ], + [ + 634.6676155690227, + 176.96343576983372 + ], + [ + 640.5725376217229, + 176.96343576983372 + ], + [ + 646.4774596744228, + 176.96343576983372 + ], + [ + 651.7230472450481, + 176.96343576983372 + ], + [ + 656.2996042382738, + 176.96343576983372 + ], + [ + 660.8761612314993, + 176.96343576983372 + ], + [ + 666.1411409927739, + 176.96343576983372 + ], + [ + 671.6485231371639, + 176.96343576983372 + ], + [ + 676.9619833750617, + 176.80829824463956 + ], + [ + 682.5275420913995, + 176.3428856690573 + ], + [ + 696.5771842167894, + 175.11148156282923 + ], + [ + 704.489198001688, + 174.0061266958213 + ], + [ + 712.7793595042472, + 172.9007718288134 + ], + [ + 728.5355144067719, + 170.91307228726419 + ], + [ + 740.5489765139894, + 169.80771742025627 + ], + [ + 746.909615046947, + 169.2841282727262 + ], + [ + 758.6806747710486, + 168.53752893272963 + ], + [ + 763.5965951006363, + 168.53752893272963 + ], + [ + 773.7774951914985, + 168.21755778701686 + ], + [ + 780.244790773027, + 167.68427254416213 + ], + [ + 786.5666449246864, + 167.1509873013075 + ], + [ + 801.8379950609797, + 166.11350510157195 + ], + [ + 811.1268543819756, + 165.15359166443352 + ], + [ + 827.5714320525494, + 162.9719702163917 + ], + [ + 834.8628957366714, + 161.886007540033 + ], + [ + 842.3579774226109, + 160.80004486367443 + ], + [ + 849.2422051030985, + 159.76256266393898 + ], + [ + 855.932510877094, + 158.72508046420342 + ], + [ + 861.5950305466781, + 157.72638264576653 + ], + [ + 865.8613124895155, + 156.81494968525124 + ], + [ + 869.3228185204089, + 155.96169329668373 + ], + [ + 872.2607354037718, + 155.4574963398029 + ], + [ + 874.6459748536308, + 155.06965252681766 + ], + [ + 877.1087830660872, + 154.31335709149653 + ], + [ + 879.4358459439986, + 153.52797337020138 + ], + [ + 882.315586255414, + 152.69410917228322 + ], + [ + 885.3892484733219, + 151.80206840241715 + ], + [ + 888.9574115527857, + 150.60944867748765 + ], + [ + 890.1209429917417, + 150.21190876917774 + ], + [ + 892.9812911125077, + 148.970808567625 + ], + [ + 896.3652283808037, + 147.6909239847738 + ], + [ + 899.2255765015698, + 146.87645197750476 + ], + [ + 902.0859246223358, + 145.63535177595213 + ], + [ + 905.4698618906318, + 144.35546719310082 + ], + [ + 908.8537991589278, + 143.07558261024963 + ], + [ + 911.7141472796939, + 141.44663859571165 + ], + [ + 914.5744954004599, + 140.24432277545748 + ], + [ + 917.434843521226, + 139.0420069552033 + ], + [ + 919.7619063991374, + 137.48093560793768 + ], + [ + 922.0889692770488, + 135.91986426067217 + ], + [ + 923.9603156747025, + 134.78542110769035 + ], + [ + 925.8316620723563, + 133.65097795470865 + ], + [ + 927.70300847001, + 132.1577792747155 + ], + [ + 929.3416485798725, + 130.5094430695283 + ], + [ + 930.7572784972685, + 129.0841170568076 + ], + [ + 932.0177708894703, + 127.42608475629572 + ], + [ + 934.335137672057, + 124.57543273085435 + ], + [ + 936.885210742435, + 121.6278197521666 + ], + [ + 938.9795673325552, + 119.11653106308734 + ], + [ + 940.880002016183, + 116.45010484881391 + ], + [ + 942.7513484138367, + 113.4927957748015 + ], + [ + 944.4966455722702, + 111.25299775481187 + ], + [ + 946.678267020312, + 108.00480582106059 + ], + [ + 949.5483112364027, + 103.81609264082022 + ], + [ + 951.5554029686014, + 101.54720633485658 + ], + [ + 954.2703096594978, + 98.12448468526202 + ], + [ + 957.4797172119506, + 93.52853550138707 + ], + [ + 959.6904269459665, + 90.24155918633733 + ], + [ + 961.8332640127096, + 87.20668134972789 + ], + [ + 963.6561299337404, + 84.53055904012979 + ], + [ + 965.2075051856809, + 82.36832978273719 + ], + [ + 966.4873897685325, + 80.44850290846034 + ], + [ + 967.3600383477492, + 78.82925498924703 + ], + [ + 968.0581572111223, + 77.64633135964209 + ], + [ + 968.7465799791712, + 76.5894569692573 + ], + [ + 969.4543949378694, + 75.2513958144583 + ], + [ + 970.4433966609818, + 73.79698151576372 + ], + [ + 971.5196632420157, + 72.3522633123938 + ], + [ + 972.3535274399337, + 70.53909348668788 + ], + [ + 973.1001267799306, + 68.64835489838481 + ], + [ + 973.8467261199271, + 66.72852802410796 + ], + [ + 974.5933254599236, + 64.82809334048034 + ], + [ + 975.33992479992, + 62.908266466203486 + ], + [ + 976.0865241399165, + 60.998135687251306 + ], + [ + 976.4937601435513, + 59.068612717649785 + ], + [ + 976.5422406201742, + 57.148785843372934 + ], + [ + 976.5422406201742, + 55.20956677844674 + ], + [ + 976.5422406201742, + 52.85341561456153 + ], + [ + 976.5422406201742, + 50.477872260027084 + ], + [ + 976.5422406201742, + 46.900013085238356 + ], + [ + 976.1156124258905, + 45.203196403428024 + ], + [ + 974.9132966056363, + 42.333152187337305 + ], + [ + 972.0238601988963, + 38.008693672552 + ], + [ + 968.7465799791712, + 34.072078970752045 + ], + [ + 965.740790428536, + 31.454133233101743 + ], + [ + 962.0659703005008, + 27.779313105066763 + ], + [ + 957.7609039763647, + 23.968747642486846 + ], + [ + 953.4558376522286, + 20.158182179907044 + ], + [ + 949.3253010439362, + 16.948774627454327 + ], + [ + 945.1947644356433, + 13.73936707500161 + ], + [ + 941.0642278273508, + 10.52995952254878 + ], + [ + 936.4779747388006, + 7.7762684503537685 + ], + [ + 930.2530815403875, + 4.1499287989419145 + ], + [ + 923.3591577645752, + 0.4169320989590233 + ], + [ + 917.2312255194088, + -3.1706231711542614 + ], + [ + 911.1032932742423, + -6.758178441267546 + ], + [ + 903.3270248238882, + -10.927499430858802 + ], + [ + 895.4150110389896, + -15.164693087722412 + ], + [ + 889.0349803153827, + -18.257747496279535 + ], + [ + 881.9859190143766, + -21.418674572109126 + ], + [ + 874.4811412331123, + -24.637778219886513 + ], + [ + 867.3254228835349, + -27.789009200391433 + ], + [ + 862.1671001708314, + -30.213033031549116 + ], + [ + 856.7275906937134, + -32.14255600115064 + ], + [ + 848.2532033799862, + -34.69262907152847 + ], + [ + 839.6333746363898, + -37.25239823723098 + ], + [ + 831.2171638946102, + -39.45341187592214 + ], + [ + 822.8979141060772, + -41.664121609937865 + ], + [ + 817.3420514850641, + -43.254281243177275 + ], + [ + 811.8540615313232, + -44.301459538237395 + ], + [ + 801.5955926778638, + -45.98858012472317 + ], + [ + 791.2110745851842, + -47.92779918964925 + ], + [ + 784.4722883345662, + -49.20768377250056 + ], + [ + 778.354052184724, + -50.21607768626211 + ], + [ + 771.3728635509901, + -51.26325598132223 + ], + [ + 764.2850178686851, + -52.66918980339369 + ], + [ + 757.9728598123506, + -53.842417337673965 + ], + [ + 751.9612807110796, + -54.51144791507352 + ], + [ + 744.8249545521514, + -55.4228808755887 + ], + [ + 737.2716962942641, + -56.130695834286826 + ], + [ + 730.8044007127355, + -56.285833359480876 + ], + [ + 724.754037230166, + -56.285833359480876 + ], + [ + 719.7799403286306, + -56.285833359480876 + ], + [ + 715.0288536195615, + -56.285833359480876 + ], + [ + 709.2208925201078, + -56.285833359480876 + ], + [ + 703.2384017048107, + -56.285833359480876 + ], + [ + 697.2365186988643, + -56.285833359480876 + ], + [ + 688.9463571963051, + -56.285833359480876 + ], + [ + 680.491362073227, + -56.285833359480876 + ], + [ + 673.5877422020901, + -56.285833359480876 + ], + [ + 666.8101715701732, + -56.285833359480876 + ], + [ + 660.0229048429319, + -55.771940307275486 + ], + [ + 652.6732645868619, + -55.248351159745425 + ], + [ + 641.4064018196411, + -54.191476769360634 + ], + [ + 636.917109684337, + -53.638799335856675 + ], + [ + 627.9288293184045, + -52.5237483735242 + ], + [ + 618.9308528571473, + -51.408697411191724 + ], + [ + 609.9328763958899, + -50.293646448859135 + ], + [ + 600.9348999346328, + -49.17859548652666 + ], + [ + 591.0642748941589, + -48.024760142895616 + ], + [ + 580.321001274468, + -46.832140417966 + ], + [ + 570.4503762339941, + -45.67830507433496 + ], + [ + 560.5894472888447, + -44.52446973070391 + ], + [ + 549.8558697644785, + -43.34154610109897 + ], + [ + 539.9852447240046, + -42.750084286296556 + ], + [ + 530.9872682627474, + -42.1974068527926 + ], + [ + 521.9892918014903, + -41.64472941928864 + ], + [ + 512.1962355236133, + -41.64472941928864 + ], + [ + 502.4031792457363, + -41.09205198578468 + ], + [ + 492.5325542052624, + -39.938216642153634 + ], + [ + 481.78928058557153, + -38.74559691722402 + ], + [ + 471.0460069658807, + -38.154135102421606 + ], + [ + 460.30273334619005, + -37.56267328761908 + ], + [ + 447.6008484709239, + -36.748201280350145 + ], + [ + 435.06379721617645, + -36.15673946554773 + ], + [ + 426.1239973268671, + -35.57497374606987 + ], + [ + 417.6399139178152, + -35.119257265812166 + ], + [ + 407.26509192046046, + -34.61506030893145 + ], + [ + 399.73122585322244, + -34.09147116140139 + ], + [ + 391.90647692624566, + -33.01520458036737 + ], + [ + 381.31834083174886, + -31.628662948945134 + ], + [ + 372.06826589205116, + -30.47482760531409 + ], + [ + 362.4400432346931, + -29.320992261683045 + ], + [ + 352.41428066902495, + -28.147764727402773 + ], + [ + 342.25277276881206, + -26.596389475461933 + ], + [ + 331.61615619769236, + -24.414768027419996 + ], + [ + 321.2704224863114, + -22.03922467288544 + ], + [ + 311.18648334869545, + -20.080613417310133 + ], + [ + 301.1316324970535, + -18.315924068227332 + ], + [ + 291.7167239368373, + -16.60941129109233 + ], + [ + 281.9527559449341, + -14.844721942009528 + ], + [ + 271.9172972839415, + -13.07033649760217 + ], + [ + 262.50238872372506, + -11.751667533452405 + ], + [ + 253.3298825466245, + -10.171203995537553 + ], + [ + 243.69196379394157, + -8.46469121840255 + ], + [ + 233.68559341892274, + -6.7193940599690904 + ], + [ + 223.33016361221735, + -4.95470471088629 + ], + [ + 213.26561666525072, + -3.674820128035094 + ], + [ + 204.0834143928255, + -2.5403769750532774 + ], + [ + 194.98847697832207, + -1.4059338220714608 + ], + [ + 185.68022546667657, + -0.25209847844041633 + ], + [ + 176.39136614568042, + 0.9017368651906281 + ], + [ + 167.24794825455365, + 1.4931986799930428 + ], + [ + 158.0754420774531, + 1.5222869659669414 + ], + [ + 145.9844112076387, + 1.5222869659669414 + ], + [ + 141.4854229770101, + 2.0749643994709004 + ], + [ + 135.2896180645712, + 2.6276418329748594 + ], + [ + 127.28064332642634, + 2.6276418329748594 + ], + [ + 119.27166858828127, + 2.6276418329748594 + ], + [ + 111.26269385013643, + 3.2578880290758434 + ], + [ + 101.99322671978962, + 3.8881342251768274 + ], + [ + 95.341705327093, + 4.411723372706888 + ], + [ + 87.95328068972435, + 4.935312520236948 + ], + [ + 80.57455214768038, + 5.458901667767009 + ], + [ + 73.19582360563663, + 5.982490815297069 + ], + [ + 65.80739896826799, + 6.50607996282713 + ], + [ + 60.416369967773335, + 7.456297304640884 + ], + [ + 55.05442925325269, + 8.396818551130082 + ], + [ + 48.431996146529855, + 8.910711603335471 + ], + [ + 42.51737799850525, + 9.395516369567076 + ], + [ + 36.60275985048065, + 10.37482199735473 + ], + [ + 31.347476184530706, + 11.325039339168484 + ], + [ + 26.76122309598054, + 12.236472299683783 + ], + [ + 22.174970007430147, + 13.147905260199082 + ], + [ + 18.180178733682396, + 14.020553839415811 + ], + [ + 14.796241465386174, + 14.864114132658756 + ], + [ + 10.685097047742829, + 15.707674425901587 + ], + [ + 7.291463684122164, + 16.124606524860724 + ], + [ + 5.148626617378795, + 16.512450337845962 + ], + [ + 2.811867644142694, + 16.9002941508312 + ], + [ + 0.4751086709068204, + 17.288137963816325 + ], + [ + -1.8616503023292807, + 17.675981776801564 + ], + [ + -3.509986507516487, + 17.675981776801564 + ], + [ + -4.159624894266699, + 17.675981776801564 + ], + [ + -4.64442966049819, + 17.675981776801564 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 230, + "versionNonce": 690220845, + "index": "b04", + "isDeleted": false, + "id": "MAQzGLfaNGevF_vS4xNwd", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1746.1424778251385, + "y": -68.55049568566437, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 920.5763784064065, + "height": 451.8671304137615, + "seed": 1065284995, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264365618, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.3199711457127705, + 0 + ], + [ + -0.639942291425541, + 0.27149066908964414 + ], + [ + -0.639942291425541, + 1.3962377267466763 + ], + [ + -0.639942291425541, + 3.713604509333436 + ], + [ + -0.639942291425541, + 10.762665810339968 + ], + [ + -0.639942291425541, + 13.477572501236637 + ], + [ + -1.7549932537581299, + 19.03343512225001 + ], + [ + -3.965702987773966, + 27.837489677014446 + ], + [ + -8.183504453988235, + 42.65312333305019 + ], + [ + -11.722579247478507, + 58.70985719063856 + ], + [ + -13.72967097967694, + 66.31159592514882 + ], + [ + -15.513752519409081, + 73.95211904095777 + ], + [ + -17.462667679659717, + 88.4283893606314 + ], + [ + -18.597110832641647, + 95.57441161488418 + ], + [ + -20.313319705101094, + 105.28020303483936 + ], + [ + -21.08900733107157, + 113.9776005410331 + ], + [ + -22.69855915496032, + 131.87659251030118 + ], + [ + -23.348197541710533, + 141.2333244985698 + ], + [ + -23.82330621261758, + 158.96748284731916 + ], + [ + -25.08379860481955, + 175.7417277589302 + ], + [ + -25.626779942998837, + 188.63753454068888 + ], + [ + -26.61578166611116, + 198.19788453077467 + ], + [ + -26.61578166611116, + 204.83970982814685 + ], + [ + -26.61578166611116, + 220.217717013011 + ], + [ + -26.61578166611116, + 227.27647440934197 + ], + [ + -26.61578166611116, + 235.59572419787514 + ], + [ + -26.61578166611116, + 242.2375494952471 + ], + [ + -26.61578166611116, + 247.61888240041708 + ], + [ + -26.61578166611116, + 254.67763979674828 + ], + [ + -26.61578166611116, + 267.57344657850695 + ], + [ + -25.00622984222241, + 282.9514537633711 + ], + [ + -24.094796881707225, + 287.5958834238693 + ], + [ + -22.320411437299754, + 294.3928462464353 + ], + [ + -17.879599778618967, + 307.09473112170144 + ], + [ + -15.34891889889036, + 312.1948772624571 + ], + [ + -9.133721795802103, + 322.2400320187744 + ], + [ + -4.925616424912278, + 328.1255618808252 + ], + [ + -1.3671494407728915, + 332.7699915413234 + ], + [ + 1.900434683627509, + 336.71630233844803 + ], + [ + 10.336037616056274, + 344.6380122186713 + ], + [ + 18.742552262511026, + 351.6095047570807 + ], + [ + 22.75673572690812, + 354.8770888814813 + ], + [ + 31.609270758295906, + 360.6753538856103 + ], + [ + 40.18061902526938, + 365.1743421162389 + ], + [ + 44.87352916239047, + 367.0456885138926 + ], + [ + 50.041547970418605, + 368.97521148349415 + ], + [ + 63.131276658670004, + 372.64033551620446 + ], + [ + 70.8105841557774, + 373.92022009905577 + ], + [ + 85.94618895752592, + 376.0727532611238 + ], + [ + 94.75024351229058, + 377.1878042234564 + ], + [ + 115.81985865271281, + 378.4676888063075 + ], + [ + 127.42608475629572, + 379.0591506211101 + ], + [ + 152.64562869565998, + 379.22398424162884 + ], + [ + 164.49425718235875, + 379.7475733891588 + ], + [ + 177.47732882203923, + 380.3390352039612 + ], + [ + 201.28124284400724, + 381.5607432148647 + ], + [ + 222.93262370390744, + 382.1134206483687 + ], + [ + 238.58212155786146, + 382.685490272522 + ], + [ + 252.04030186844875, + 382.685490272522 + ], + [ + 261.02858223438125, + 382.685490272522 + ], + [ + 277.35680676105926, + 382.685490272522 + ], + [ + 285.50152683374904, + 382.685490272522 + ], + [ + 292.880255375793, + 382.685490272522 + ], + [ + 301.06375982978125, + 382.685490272522 + ], + [ + 309.2472642837697, + 382.685490272522 + ], + [ + 326.4190491036902, + 382.685490272522 + ], + [ + 344.39560983555566, + 382.685490272522 + ], + [ + 353.38389020148816, + 382.685490272522 + ], + [ + 373.0281793291897, + 383.23816770602593 + ], + [ + 382.8794121790147, + 383.79084513952967 + ], + [ + 406.6154535337105, + 384.5568366701757 + ], + [ + 419.2397696463795, + 384.96407267381005 + ], + [ + 432.23253738138465, + 384.96407267381005 + ], + [ + 445.48709969015454, + 384.96407267381005 + ], + [ + 459.31373162307773, + 384.96407267381005 + ], + [ + 473.12097136535203, + 384.96407267381005 + ], + [ + 487.2287900626893, + 384.96407267381005 + ], + [ + 502.1122963859975, + 384.96407267381005 + ], + [ + 517.1024597578767, + 384.61501324212327 + ], + [ + 531.9180934139122, + 383.23816770602593 + ], + [ + 544.3969680967116, + 381.3086447364244 + ], + [ + 553.8603571335511, + 379.84453434240504 + ], + [ + 563.2655695984427, + 378.6810029034493 + ], + [ + 572.8840961604765, + 377.50777536916917 + ], + [ + 590.6570388905243, + 376.1600181190454 + ], + [ + 597.9872869559454, + 375.28736953982866 + ], + [ + 605.9768695034409, + 374.1917107681454 + ], + [ + 614.3639919592465, + 373.0863559011375 + ], + [ + 629.5868616189164, + 370.924126643745 + ], + [ + 638.497573222252, + 369.3533592011547 + ], + [ + 647.0204410126021, + 367.66623861466906 + ], + [ + 655.3009064198368, + 365.98881412350784 + ], + [ + 664.2310102138217, + 363.82658486611535 + ], + [ + 681.0343434114066, + 359.98693111756165 + ], + [ + 700.6301520624852, + 355.8176101279703 + ], + [ + 709.16271594816, + 353.55841991733155 + ], + [ + 716.9098961125401, + 351.3574062786404 + ], + [ + 725.0837044712034, + 349.16608873527366 + ], + [ + 746.3763298040922, + 341.38012418959534 + ], + [ + 750.3032484105679, + 339.13063007428104 + ], + [ + 758.7291552476718, + 335.1940153724811 + ], + [ + 767.1550620847756, + 331.2574006706809 + ], + [ + 775.8524595909694, + 326.02150919538053 + ], + [ + 784.5498570971631, + 320.7856177200799 + ], + [ + 795.7973276737348, + 314.58011671231634 + ], + [ + 802.6815553542224, + 310.84712001233356 + ], + [ + 807.9271429248474, + 307.9867718915675 + ], + [ + 818.8255540697323, + 301.00558325783345 + ], + [ + 825.0407511728208, + 297.3792436064216 + ], + [ + 831.4304779917525, + 293.15174604488266 + ], + [ + 836.1815647008211, + 289.79689706256045 + ], + [ + 839.7400316849607, + 287.14986303893625 + ], + [ + 844.0450980090968, + 283.4653468155766 + ], + [ + 849.1161558638787, + 279.645085257672 + ], + [ + 853.1109471376262, + 276.87200199482777 + ], + [ + 856.3688351667024, + 274.2152718758789 + ], + [ + 858.9092121417557, + 271.8203363306952 + ], + [ + 861.1684023523944, + 269.9489899330415 + ], + [ + 862.9233956061526, + 268.25217325123117 + ], + [ + 864.4262903814702, + 266.342042472279 + ], + [ + 865.7546554409446, + 264.4222155980019 + ], + [ + 867.1993736443146, + 261.96910348087044 + ], + [ + 869.2064653765133, + 258.64334278452225 + ], + [ + 871.2523414900102, + 254.5031100809049 + ], + [ + 874.4035724705154, + 246.67836115392788 + ], + [ + 881.1811431024321, + 228.15881908388337 + ], + [ + 883.4888137896942, + 221.42972892858984 + ], + [ + 885.4474250452695, + 215.7769053543302 + ], + [ + 887.4642128727928, + 209.51322777461883 + ], + [ + 889.1901178405769, + 202.76474542867572 + ], + [ + 890.3342570888835, + 197.03435309181918 + ], + [ + 892.2056034865373, + 187.48369919705783 + ], + [ + 893.1946052096496, + 181.6951302882535 + ], + [ + 893.8345475010751, + 175.11148156282934 + ], + [ + 893.9605967402954, + 168.45026407480805 + ], + [ + 893.9605967402954, + 161.72117391951429 + ], + [ + 893.9605967402954, + 154.84664233435115 + ], + [ + 893.9605967402954, + 146.99280512140035 + ], + [ + 892.6031433948469, + 138.6735553328674 + ], + [ + 890.0918547057677, + 130.81002202459194 + ], + [ + 887.3769480148712, + 123.25676376670458 + ], + [ + 881.9568307284026, + 111.66023375844634 + ], + [ + 878.1074808845242, + 105.10567331899597 + ], + [ + 873.7054536071419, + 98.40567144967622 + ], + [ + 870.8160172004018, + 94.06182074424169 + ], + [ + 865.4346842952318, + 86.76066096479485 + ], + [ + 863.4566808490072, + 84.28815665701404 + ], + [ + 859.5103700518825, + 79.3528441367771 + ], + [ + 854.8950286773584, + 73.71941275316658 + ], + [ + 847.7393103277809, + 65.53590829917835 + ], + [ + 842.3967618039096, + 59.69885891375088 + ], + [ + 836.9087718501687, + 53.163690664949854 + ], + [ + 832.1576851410996, + 47.35572956549595 + ], + [ + 826.3497240416459, + 42.08105370889689 + ], + [ + 820.5417629421922, + 36.80637785229783 + ], + [ + 809.3233806515946, + 26.04371204195786 + ], + [ + 803.3214976456479, + 21.09870342639624 + ], + [ + 797.3196146397017, + 16.153694810834622 + ], + [ + 782.1452254566548, + 3.4905943168669182 + ], + [ + 776.6281472169399, + -1.173227534280386 + ], + [ + 771.169245549173, + -5.914618148024829 + ], + [ + 765.3031078777713, + -10.53965561787345 + ], + [ + 760.1156968790938, + -14.389005461751822 + ], + [ + 755.7330617923608, + -17.80203101602183 + ], + [ + 745.0673569352671, + -25.665564324297293 + ], + [ + 739.7635927926945, + -29.456737596227867 + ], + [ + 730.3389881371531, + -34.70232516685314 + ], + [ + 724.7734294208153, + -37.746899098787026 + ], + [ + 718.7521542242198, + -40.9175222699414 + ], + [ + 713.0993306499599, + -43.3027617198004 + ], + [ + 708.6488228959547, + -45.07714716420787 + ], + [ + 703.0735680842918, + -47.00667013380939 + ], + [ + 696.567488121465, + -48.73257510159351 + ], + [ + 691.0310176911007, + -50.03185187509416 + ], + [ + 675.9438933659753, + -53.784240765726054 + ], + [ + 661.8263785733134, + -56.09191145298814 + ], + [ + 654.5446109845157, + -57.158481938697605 + ], + [ + 646.3514104352025, + -58.273532901030194 + ], + [ + 638.0127684560202, + -58.9813478597282 + ], + [ + 629.6644303815133, + -59.56311357920595 + ], + [ + 624.350970143616, + -60.12548710803458 + ], + [ + 615.2560327291121, + -60.70725282751255 + ], + [ + 596.9595008515344, + -61.90956864776672 + ], + [ + 587.1276601923587, + -62.54951093919226 + ], + [ + 570.1982777555536, + -64.19784714437947 + ], + [ + 555.4989972434137, + -64.84748553112968 + ], + [ + 549.7879970972062, + -65.37107467865985 + ], + [ + 532.6646927539086, + -65.91405601683914 + ], + [ + 529.7073836798963, + -66.4085568783953 + ], + [ + 519.1386397760489, + -66.90305773995146 + ], + [ + 515.1438485023009, + -66.90305773995146 + ], + [ + 511.1490572285534, + -66.90305773995146 + ], + [ + 507.1542659548054, + -66.90305773995146 + ], + [ + 499.1646834073099, + -66.90305773995146 + ], + [ + 490.58363904501175, + -65.57469268047703 + ], + [ + 486.5888477712638, + -64.7020441012603 + ], + [ + 477.4357337848128, + -62.8791781802297 + ], + [ + 473.4409425110648, + -62.00652960101297 + ], + [ + 463.36669946877373, + -59.91217301089273 + ], + [ + 458.6447010456782, + -58.97165176440353 + ], + [ + 453.9808791945311, + -58.040826613239005 + ], + [ + 444.7017159688594, + -55.37440039896569 + ], + [ + 440.3481691681004, + -53.73576028910293 + ], + [ + 436.34368179902776, + -52.38800303897938 + ], + [ + 428.3734914421816, + -49.653704157433594 + ], + [ + 424.91198541128824, + -48.373819574582285 + ], + [ + 418.8228375474205, + -46.26976688913737 + ], + [ + 413.1215334965377, + -44.1851063943418 + ], + [ + 406.1500409581281, + -42.34284828266209 + ], + [ + 400.71053148101055, + -40.66542379150087 + ], + [ + 396.8999660184304, + -39.63763768709009 + ], + [ + 393.65177408467935, + -38.76498910787336 + ], + [ + 391.0629166330027, + -37.95051710060443 + ], + [ + 388.2995294654829, + -37.13604509333527 + ], + [ + 385.42948524939266, + -36.33126918139101 + ], + [ + 383.2769520873244, + -35.5652776507452 + ], + [ + 379.3500334808491, + -34.12055944737517 + ], + [ + 376.8484408870945, + -33.29639134478157 + ], + [ + 374.3177600073659, + -32.462527146863295 + ], + [ + 372.3300604658166, + -31.70623171154216 + ], + [ + 369.4115357731025, + -30.581484653885127 + ], + [ + 367.5304932801241, + -30.533004177262 + ], + [ + 366.9099431793479, + -30.533004177262 + ], + [ + 366.2603047925977, + -30.533004177262 + ], + [ + 365.8821570749369, + -30.533004177262 + ], + [ + 365.862764884288, + -31.124465992064415 + ], + [ + 365.862764884288, + -31.124465992064415 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 71, + "versionNonce": 515668771, + "index": "b05", + "isDeleted": false, + "id": "tgJjnP03JKdrW8zk40JdI", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1975.813887779664, + "y": -157.98727896005857, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 69.52100347760165, + "height": 112.95951053194699, + "seed": 1755957229, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264368901, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.2811867644143149 + ], + [ + 0, + 1.2701884875266387 + ], + [ + 0, + 3.141534885180363 + ], + [ + 0.7756876259704768, + 5.468597763091793 + ], + [ + 2.462808212456139, + 8.920407698660256 + ], + [ + 4.644429660497963, + 12.478874682799642 + ], + [ + 6.748482345942875, + 15.988861190316129 + ], + [ + 8.54225998099946, + 19.615200841727983 + ], + [ + 9.793056277876985, + 21.806518385094478 + ], + [ + 10.636616571119703, + 23.716649164046657 + ], + [ + 15.310134517591678, + 30.736622179079177 + ], + [ + 17.026343390051352, + 33.916941445557995 + ], + [ + 18.723160071861685, + 37.126348998010826 + ], + [ + 22.174970007430147, + 42.236191234091166 + ], + [ + 24.27902269287506, + 44.97049011563695 + ], + [ + 26.169761281178126, + 47.908406999000135 + ], + [ + 28.050803774156293, + 50.59422540392279 + ], + [ + 30.135464268951864, + 53.086121902352716 + ], + [ + 31.987418475956474, + 55.820420783898726 + ], + [ + 33.63575468114368, + 58.71955328596323 + ], + [ + 35.255002600356875, + 61.327802928288975 + ], + [ + 36.78698566164849, + 63.402767327759875 + ], + [ + 37.76629128943637, + 64.52751438541691 + ], + [ + 38.541978915406844, + 65.57469268047703 + ], + [ + 39.63763768709009, + 67.45573517345542 + ], + [ + 40.936914460590515, + 69.52100347760165 + ], + [ + 42.129534185520015, + 70.96572168097168 + ], + [ + 43.66151724681163, + 73.40913770277871 + ], + [ + 44.37902830083431, + 74.85385590614851 + ], + [ + 45.086843259532316, + 76.2791819188692 + ], + [ + 46.531561462902346, + 79.50798166197137 + ], + [ + 47.54965147198868, + 81.36963196430042 + ], + [ + 48.62591805302259, + 82.87252673961825 + ], + [ + 49.411301774317735, + 84.29785275233894 + ], + [ + 50.128812828340415, + 85.73287486038407 + ], + [ + 50.88510826366155, + 87.25516182635124 + ], + [ + 52.611013231445895, + 90.08642166114328 + ], + [ + 52.930984377158666, + 90.40639280685605 + ], + [ + 53.60001495455822, + 91.43417891126705 + ], + [ + 54.269045531957545, + 92.46196501567783 + ], + [ + 54.58901667767054, + 93.10190730710337 + ], + [ + 54.90898782338331, + 93.74184959852914 + ], + [ + 55.548930114808854, + 94.38179188995468 + ], + [ + 55.868901260521625, + 95.02173418138022 + ], + [ + 56.188872406234395, + 95.661676472806 + ], + [ + 56.828814697660164, + 96.30161876423153 + ], + [ + 57.148785843372934, + 96.9415610556573 + ], + [ + 57.468756989085705, + 97.58150334708284 + ], + [ + 58.108699280511246, + 98.22144563850838 + ], + [ + 58.748641571937014, + 98.86138792993415 + ], + [ + 59.388583863362555, + 99.5013302213597 + ], + [ + 60.13518320335925, + 100.35458660992708 + ], + [ + 60.9108708293295, + 101.47933366758434 + ], + [ + 61.58959750205372, + 102.52651196264446 + ], + [ + 62.278020270102616, + 103.56399416237991 + ], + [ + 62.94705084750194, + 104.4754271228951 + ], + [ + 63.606385329576824, + 105.28020303483959 + ], + [ + 64.28511200230105, + 106.31768523457504 + ], + [ + 64.9541425797006, + 107.20002990911644 + ], + [ + 65.61347706177548, + 108.01450191638537 + ], + [ + 66.30189982982415, + 109.05198411612082 + ], + [ + 66.9709304072237, + 109.91493660001288 + ], + [ + 67.62056879397392, + 110.56457498676332 + ], + [ + 68.27020718072436, + 111.21421337351353 + ], + [ + 68.9101494721499, + 111.85415566493907 + ], + [ + 69.37556204773205, + 112.49409795636484 + ], + [ + 69.52100347760165, + 112.95951053194699 + ], + [ + 69.52100347760165, + 112.95951053194699 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 55, + "versionNonce": 107852173, + "index": "b06", + "isDeleted": false, + "id": "_cC-NvqcQiEdOjlSQrqJz", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2035.473962312116, + "y": -176.08988893114383, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 75.94951467783153, + "height": 117.22579247478438, + "seed": 1346129507, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264370507, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.29088285973898564 + ], + [ + 0, + 0.019392190649114127 + ], + [ + 0, + 0.9793056277876531 + ], + [ + 0.32966724103744127, + 2.394935545183671 + ], + [ + 1.6677283958365479, + 5.26497976127439 + ], + [ + 2.7342988815460103, + 7.116933968278772 + ], + [ + 5.701304050882982, + 11.344431529817712 + ], + [ + 7.019973015032747, + 13.89450460019566 + ], + [ + 10.63661657111993, + 18.403188926148914 + ], + [ + 14.020553839415925, + 22.640382583012524 + ], + [ + 20.06122122666079, + 30.794798751026747 + ], + [ + 22.281627056001298, + 33.79089220633773 + ], + [ + 28.302902252596823, + 41.082355890459894 + ], + [ + 31.648055139594135, + 45.83344259952901 + ], + [ + 34.39205011646459, + 49.95428311249702 + ], + [ + 39.77338302163503, + 56.72215764908924 + ], + [ + 41.88713180240461, + 59.67946672310154 + ], + [ + 44.00088058317374, + 62.63677579711384 + ], + [ + 47.840534331727895, + 67.75631412851885 + ], + [ + 49.663400252758265, + 70.63605443993424 + ], + [ + 51.31173645794547, + 73.53518694199875 + ], + [ + 52.659493708068794, + 75.84285762926083 + ], + [ + 54.21086896000975, + 78.03417517262733 + ], + [ + 55.84950906987228, + 80.38063024118787 + ], + [ + 57.003344413503555, + 82.48468292663279 + ], + [ + 58.17657194778417, + 84.85053018584267 + ], + [ + 59.35949557738854, + 87.20668134972789 + ], + [ + 60.523027016344486, + 89.3689106071206 + ], + [ + 61.696254550624644, + 91.31782576737123 + ], + [ + 62.840393798931245, + 93.21826045099897 + ], + [ + 63.780915045420215, + 95.11869513462648 + ], + [ + 64.73113238723431, + 97.00943372292954 + ], + [ + 65.84618334956645, + 98.93895669253106 + ], + [ + 66.75761631008186, + 100.83939137615857 + ], + [ + 67.4945195547541, + 102.46833539069644 + ], + [ + 68.21203060877656, + 103.9033574987418 + ], + [ + 68.92954166279901, + 105.33837960678716 + ], + [ + 70.2579067222739, + 107.4909127688552 + ], + [ + 71.62505616304657, + 109.58526935897544 + ], + [ + 72.30378283577079, + 110.61305546338622 + ], + [ + 73.0697743664166, + 112.07716585740536 + ], + [ + 73.38974551212937, + 112.71710814883113 + ], + [ + 73.74850103914082, + 113.39583482155513 + ], + [ + 74.06847218485359, + 114.05516930363001 + ], + [ + 74.39813942589103, + 114.70480769038045 + ], + [ + 74.7181105716038, + 115.29626950518286 + ], + [ + 74.98960124069322, + 115.98469227323153 + ], + [ + 75.29018019575665, + 116.28527122829519 + ], + [ + 75.35805286302934, + 116.64402675530641 + ], + [ + 75.6489357227681, + 116.9349096150454 + ], + [ + 75.94951467783153, + 116.9349096150454 + ], + [ + 75.94951467783153, + 116.9349096150454 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 104, + "versionNonce": 267991373, + "index": "b07", + "isDeleted": false, + "id": "6LHNmrbr8bkwvFIzsx7d0", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2288.183294757964, + "y": -435.3149974351438, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 741.7997728108667, + "height": 37.80507567073482, + "seed": 1970172493, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264376390, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.30057895506388377, + 0 + ], + [ + 0.8726485792167296, + 0 + ], + [ + 1.8034737303814836, + 0 + ], + [ + 3.9463107971250793, + 0 + ], + [ + 7.165414444902126, + 0 + ], + [ + 10.636616571119703, + 0 + ], + [ + 18.9558663596531, + 0 + ], + [ + 23.53242335287905, + 0 + ], + [ + 33.96542192218112, + 0 + ], + [ + 39.676422068389, + 0 + ], + [ + 52.97946485378179, + 0 + ], + [ + 69.92823948123623, + 0 + ], + [ + 78.28627365106786, + 0 + ], + [ + 93.90668321904832, + 0 + ], + [ + 102.5362080579689, + 0 + ], + [ + 120.96848527009206, + 0 + ], + [ + 130.01494220797213, + 0 + ], + [ + 149.30047580866267, + 1.6289440145378649 + ], + [ + 163.08832336028718, + 3.3354567916728683 + ], + [ + 176.56589586152404, + 5.003185187509416 + ], + [ + 184.7494003155125, + 6.089147863867993 + ], + [ + 200.2922411208956, + 7.6599153064580605 + ], + [ + 208.47574557488315, + 8.183504453988235 + ], + [ + 215.85447411692712, + 8.707093601518181 + ], + [ + 223.2332026589711, + 9.230682749048356 + ], + [ + 230.61193120101507, + 10.277861044108477 + ], + [ + 245.369388285103, + 11.848628486698544 + ], + [ + 252.73842073182277, + 12.372217634228718 + ], + [ + 260.9122290904861, + 12.895806781758665 + ], + [ + 269.09573354447457, + 13.419395929288612 + ], + [ + 286.01541988595454, + 14.107818697337507 + ], + [ + 306.7456716900151, + 15.232565754994539 + ], + [ + 316.8102186369815, + 16.008253380965016 + ], + [ + 327.1947367296607, + 16.968166818103555 + ], + [ + 337.8313533007804, + 17.57902082355531 + ], + [ + 347.5662330067098, + 18.13169825705927 + ], + [ + 356.7290430884859, + 18.713463976537014 + ], + [ + 365.9306375515607, + 19.266141410040973 + ], + [ + 375.1225359193104, + 19.847907129518944 + ], + [ + 384.6537976234222, + 20.400584563022676 + ], + [ + 394.61168752181766, + 20.972654187175976 + ], + [ + 404.7344110407321, + 21.525331620679935 + ], + [ + 415.2837627539302, + 22.12648953080702 + ], + [ + 426.22095828011334, + 22.717951345609436 + ], + [ + 437.1581538062974, + 23.32880535106119 + ], + [ + 448.6092423846858, + 24.308110978848845 + ], + [ + 461.03963659086185, + 25.568603371050813 + ], + [ + 474.57538566404673, + 26.877576239876134 + ], + [ + 489.11952865099283, + 28.215637394675014 + ], + [ + 504.01273106962526, + 29.56339464479879 + ], + [ + 519.0416788228031, + 30.92084799024701 + ], + [ + 534.0124500040329, + 31.79349656946374 + ], + [ + 548.1299647966944, + 32.452831051538624 + ], + [ + 562.0632537781885, + 33.596970299845 + ], + [ + 575.1141980851417, + 34.41144230711416 + ], + [ + 587.0791797157362, + 35.0513845985397 + ], + [ + 598.8405433445132, + 35.68163079464057 + ], + [ + 609.8359154426444, + 35.807680033860834 + ], + [ + 620.7052383015553, + 35.807680033860834 + ], + [ + 630.9249227737155, + 35.807680033860834 + ], + [ + 640.0683406648423, + 35.807680033860834 + ], + [ + 648.3294138814281, + 35.807680033860834 + ], + [ + 657.2207332941143, + 35.807680033860834 + ], + [ + 666.2574941366693, + 35.807680033860834 + ], + [ + 675.2942549792251, + 35.807680033860834 + ], + [ + 691.2831161695412, + 35.807680033860834 + ], + [ + 695.7724083048452, + 35.807680033860834 + ], + [ + 702.5499789367623, + 35.807680033860834 + ], + [ + 707.7955665073878, + 35.807680033860834 + ], + [ + 713.7004885600873, + 35.31317917230467 + ], + [ + 719.6054106127876, + 34.81867831074851 + ], + [ + 724.2498402732854, + 34.81867831074851 + ], + [ + 727.6337775415814, + 34.81867831074851 + ], + [ + 731.0177148098774, + 34.81867831074851 + ], + [ + 733.8683668353187, + 34.81867831074851 + ], + [ + 736.1954297132306, + 34.4211384024386 + ], + [ + 738.5224925911416, + 33.24791086815844 + ], + [ + 740.0059951758103, + 32.142556001150524 + ], + [ + 740.7138101345081, + 30.649357321157368 + ], + [ + 741.4507133791803, + 28.768314828178973 + ], + [ + 741.7997728108667, + 27.110282527667096 + ], + [ + 741.7997728108667, + 25.684956514946407 + ], + [ + 741.7997728108667, + 22.931265442751283 + ], + [ + 741.7997728108667, + 19.08191559887291 + ], + [ + 741.7997728108667, + 16.745156625637037 + ], + [ + 741.7997728108667, + 14.805937560710845 + ], + [ + 741.7997728108667, + 12.789149733187742 + ], + [ + 741.7997728108667, + 11.751667533452292 + ], + [ + 741.7997728108667, + 9.269467130346811 + ], + [ + 741.7997728108667, + 6.767874536592217 + ], + [ + 741.7997728108667, + 6.292765865685169 + ], + [ + 741.7997728108667, + 5.866137671401475 + ], + [ + 741.7997728108667, + 2.385239449859 + ], + [ + 741.7997728108667, + 1.7356010631087884 + ], + [ + 741.7997728108667, + 1.3768455360975622 + ], + [ + 741.7997728108667, + 1.066570485709235 + ], + [ + 741.7997728108667, + 0.7465993399964646 + ], + [ + 741.7997728108667, + 0.4363242896083648 + ], + [ + 741.7997728108667, + -0.5138930522055034 + ], + [ + 741.7997728108667, + -1.9973956368739891 + ], + [ + 741.7997728108667, + -1.9973956368739891 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 211, + "versionNonce": 646877539, + "index": "b08", + "isDeleted": false, + "id": "Rq-TtuLeB8svKCIKHH6wC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2757.4161318981396, + "y": -333.94232081613063, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 1002.6926097107034, + "height": 569.3644135576355, + "seed": 1275791885, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264384334, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.678726672724224, + 0 + ], + [ + -1.6386401098625356, + 0 + ], + [ + -2.7052105955717707, + 0 + ], + [ + -4.566860897901279, + 0 + ], + [ + -6.632129202047508, + 0 + ], + [ + -9.33733979761928, + 0 + ], + [ + -18.34501235420157, + 0 + ], + [ + -25.258328320663168, + 0 + ], + [ + -33.238214772834, + 0 + ], + [ + -42.061661518248, + 0 + ], + [ + -51.83532560547519, + 0 + ], + [ + -61.89017645711738, + 0 + ], + [ + -71.37295768460626, + 0.37814771766056765 + ], + [ + -80.55515995703172, + 0.9308251511645267 + ], + [ + -87.32303449362371, + 1.386541631422233 + ], + [ + -98.3862792590271, + 2.2301019246651776 + ], + [ + -103.37007225588786, + 3.0348778366094393 + ], + [ + -107.539393245479, + 3.9269186064755104 + ], + [ + -115.25748512388418, + 5.691607955558311 + ], + [ + -117.8366464802366, + 6.816355013215343 + ], + [ + -120.59033755243127, + 7.9992786428204 + ], + [ + -123.47977395917133, + 9.211290558399014 + ], + [ + -126.60191665370257, + 11.286254957870142 + ], + [ + -130.286432877062, + 14.030249934740596 + ], + [ + -136.69555188664253, + 19.87699541549273 + ], + [ + -139.84678286714825, + 23.018530300673092 + ], + [ + -143.77370147362308, + 26.92605671649926 + ], + [ + -145.05358605647416, + 28.1962452040259 + ], + [ + -147.89454198659132, + 31.79349656946397 + ], + [ + -148.67992570788647, + 32.95702800841946 + ], + [ + -150.3088697224248, + 35.817376129185504 + ], + [ + -151.9378137369622, + 38.67772424995155 + ], + [ + -153.14012955721682, + 41.5380723707176 + ], + [ + -154.4200141400679, + 44.92200963901382 + ], + [ + -155.72898700889255, + 48.9071048174369 + ], + [ + -156.71798873200532, + 54.87989953740953 + ], + [ + -157.7069904551172, + 60.85269425738193 + ], + [ + -158.6669038922564, + 66.09828182800698 + ], + [ + -159.16140475381235, + 71.34386939863225 + ], + [ + -159.72377828264052, + 78.12144003054914 + ], + [ + -160.2861518114696, + 84.30754884766338 + ], + [ + -160.2861518114696, + 89.68888175283337 + ], + [ + -160.2861518114696, + 97.23244391539606 + ], + [ + -160.2861518114696, + 104.1069755005592 + ], + [ + -160.2861518114696, + 110.10885850650561 + ], + [ + -160.2861518114696, + 115.05386712206723 + ], + [ + -160.2861518114696, + 119.96978745165484 + ], + [ + -160.2861518114696, + 126.93158389473956 + ], + [ + -160.2861518114696, + 132.83650594743972 + ], + [ + -160.2861518114696, + 137.69424970507976 + ], + [ + -160.2861518114696, + 145.50930253673187 + ], + [ + -160.2861518114696, + 153.77037575331724 + ], + [ + -160.0437494283533, + 159.51046418549868 + ], + [ + -159.55894466212158, + 163.3404218387277 + ], + [ + -158.86082579874892, + 168.6635781719499 + ], + [ + -158.40510931849076, + 173.90916574257517 + ], + [ + -157.92030455225904, + 179.9304409391707 + ], + [ + -157.43549978602823, + 185.83536299187085 + ], + [ + -156.69859654135598, + 191.14882322976837 + ], + [ + -155.758075294867, + 197.79064852714032 + ], + [ + -155.24418224266174, + 203.20106971828432 + ], + [ + -154.4587985213666, + 208.5533143374803 + ], + [ + -153.52797337020183, + 213.43045028576967 + ], + [ + -152.59714821903708, + 218.09427213691697 + ], + [ + -151.9862942135851, + 222.68052522546714 + ], + [ + -151.52088163800363, + 227.28617050466664 + ], + [ + -150.7451940120327, + 231.61062901945206 + ], + [ + -149.8434571468424, + 235.7217734370954 + ], + [ + -148.90293590035253, + 240.7540469105786 + ], + [ + -147.94302246321422, + 246.06750714847635 + ], + [ + -146.6437456897138, + 250.8282899528699 + ], + [ + -145.2572040582918, + 255.50180789934188 + ], + [ + -143.43433813726097, + 260.2141102271123 + ], + [ + -141.17514792662223, + 264.8876281735843 + ], + [ + -138.85778114403547, + 269.11512573512323 + ], + [ + -136.11378616716502, + 273.3135350106884 + ], + [ + -133.2922224276972, + 277.5410325722273 + ], + [ + -129.898589064077, + 281.94305984960965 + ], + [ + -126.03954312487349, + 286.30630274569353 + ], + [ + -121.05575012801364, + 290.78589878567277 + ], + [ + -112.94011834129833, + 297.38893970174627 + ], + [ + -110.47731012884196, + 299.35724705264624 + ], + [ + -105.55169370392923, + 303.2938617544462 + ], + [ + -99.92795841564384, + 307.3662217907911 + ], + [ + -93.80972226580161, + 310.9440809655798 + ], + [ + -87.69148611595938, + 314.52194014036854 + ], + [ + -80.60364043365462, + 318.87548694112775 + ], + [ + -73.51579475134986, + 323.22903374188695 + ], + [ + -66.4279490690451, + 327.5825805426459 + ], + [ + -58.81651423920994, + 331.4028421005505 + ], + [ + -51.205079409374775, + 335.2231036584549 + ], + [ + -42.77917257227091, + 339.712395793759 + ], + [ + -33.79089220633796, + 344.2016879290629 + ], + [ + -23.619688210800632, + 349.60241302488225 + ], + [ + -7.931405975547932, + 357.36898537991124 + ], + [ + 5.759480622830779, + 363.5647902923504 + ], + [ + 19.56672036510463, + 369.9642132066065 + ], + [ + 37.68872252683923, + 378.90401309591607 + ], + [ + 53.55153447793509, + 386.8548112621131 + ], + [ + 66.2437232578759, + 393.3221068436417 + ], + [ + 79.05226518171366, + 400.39056033529755 + ], + [ + 90.40639280685537, + 406.6930222963074 + ], + [ + 96.06891247644035, + 409.9412142300587 + ], + [ + 103.71913168757328, + 414.5080751279597 + ], + [ + 112.2613916685732, + 419.5791329827414 + ], + [ + 116.94460571036961, + 422.20677481571647 + ], + [ + 120.28006250204271, + 424.3302196918105 + ], + [ + 123.8967060581299, + 426.6863708556957 + ], + [ + 126.621308844351, + 428.04382420114393 + ], + [ + 128.05633095239682, + 428.7613352551666 + ], + [ + 128.68657714849724, + 429.23644392607366 + ], + [ + 129.3362155352479, + 429.8860823128239 + ], + [ + 130.17977582849107, + 430.7296426060668 + ], + [ + 130.82941421524083, + 431.1659668956752 + ], + [ + 131.46935650666637, + 431.2823200395708 + ], + [ + 131.89598470095007, + 431.2823200395708 + ], + [ + 131.7117588897827, + 431.2823200395708 + ], + [ + 131.12029707498004, + 431.2823200395708 + ], + [ + 130.79062983394215, + 430.9817410845071 + ], + [ + 130.46096259290516, + 430.6520738434697 + ], + [ + 130.13129535186727, + 430.6229855574959 + ], + [ + 129.80162811083028, + 430.6229855574959 + ], + [ + 129.49135306044172, + 430.3030144117829 + ], + [ + 129.49135306044172, + 429.9830432660701 + ], + [ + 128.89989124563908, + 429.97334717074546 + ], + [ + 129.78223592018094, + 430.8653879406115 + ], + [ + 133.83520376587603, + 434.3947666387771 + ], + [ + 142.03810041051383, + 441.44382793978366 + ], + [ + 152.1317356434547, + 449.646724584421 + ], + [ + 162.21567478107045, + 457.8399251337339 + ], + [ + 172.2996139186862, + 466.0331256830468 + ], + [ + 182.11206238721206, + 472.80100021963904 + ], + [ + 192.53536486118992, + 479.5494825655819 + ], + [ + 204.3936894432136, + 486.51127900866686 + ], + [ + 216.1356608813412, + 492.89130973227384 + ], + [ + 226.6753164992151, + 498.8738005475709 + ], + [ + 248.90846307859283, + 509.70433902518334 + ], + [ + 256.8010846728421, + 512.9913153402331 + ], + [ + 263.5495670187847, + 514.4554257342522 + ], + [ + 265.90571818267017, + 514.8432695472375 + ], + [ + 268.2618693465556, + 515.066279739704 + ], + [ + 270.3950103179741, + 515.221417264898 + ], + [ + 274.496458640293, + 515.9680166048947 + ], + [ + 284.9973298768682, + 518.3047755781306 + ], + [ + 294.4510228183826, + 521.310565128766 + ], + [ + 305.0294628175552, + 524.5490609671926 + ], + [ + 316.4805513959436, + 527.6324192804252 + ], + [ + 328.3388759779673, + 530.7545619749565 + ], + [ + 340.2747693225874, + 533.9154890507859 + ], + [ + 352.16218219058464, + 537.0473278406416 + ], + [ + 374.34684829333946, + 542.5644060803565 + ], + [ + 385.25495553354904, + 545.1435674367083 + ], + [ + 396.2115432503815, + 547.140963073582 + ], + [ + 406.5087964851391, + 548.9250446133142 + ], + [ + 416.55395124145616, + 550.243713577464 + ], + [ + 426.5797138071248, + 551.4169411117443 + ], + [ + 436.4600349429229, + 552.5707764553754 + ], + [ + 446.3403560787219, + 553.7246117990064 + ], + [ + 456.443687406987, + 554.9075354286113 + ], + [ + 467.28392197992434, + 556.1195473441901 + ], + [ + 478.3859511266264, + 557.3509514504183 + ], + [ + 489.2940583668351, + 558.5629633659971 + ], + [ + 506.1264798503944, + 559.6780143283295 + ], + [ + 513.3209825812701, + 560.1337308085872 + ], + [ + 521.5626636072066, + 560.6670160514418 + ], + [ + 532.7228693258558, + 562.2377834940321 + ], + [ + 535.6704823045438, + 562.2377834940321 + ], + [ + 540.9160698751693, + 562.6934999742896 + ], + [ + 545.4926268683948, + 563.1492164545473 + ], + [ + 550.0691838616203, + 563.604932934805 + ], + [ + 554.6360447595216, + 564.5163658953202 + ], + [ + 559.871936234822, + 564.9720823755779 + ], + [ + 565.7768582875224, + 565.4568871418094 + ], + [ + 571.6817803402218, + 565.9416919080409 + ], + [ + 578.3236056375936, + 566.465281055571 + ], + [ + 585.7023341796375, + 567.5124593506312 + ], + [ + 596.7074023730938, + 568.7050790755607 + ], + [ + 606.9852634172021, + 569.3644135576355 + ], + [ + 616.245034452224, + 569.3644135576355 + ], + [ + 628.8596544695693, + 569.3644135576355 + ], + [ + 644.7418586113135, + 569.3644135576355 + ], + [ + 662.0881731470781, + 569.3644135576355 + ], + [ + 678.4357898644057, + 569.3644135576355 + ], + [ + 695.7336239235465, + 569.3644135576355 + ], + [ + 713.3902135096987, + 569.3644135576355 + ], + [ + 731.5800883387055, + 569.3644135576355 + ], + [ + 749.4499920219996, + 569.3644135576355 + ], + [ + 766.6411690325704, + 569.3644135576355 + ], + [ + 783.3087568956098, + 569.3644135576355 + ], + [ + 795.2252580495815, + 569.3644135576355 + ], + [ + 804.630470514473, + 569.3644135576355 + ], + [ + 814.7919784146861, + 569.3644135576355 + ], + [ + 822.6846000089354, + 569.3644135576355 + ], + [ + 828.6767869195573, + 569.3644135576355 + ], + [ + 832.4388719055132, + 569.3644135576355 + ], + [ + 835.6191911719925, + 569.3644135576355 + ], + [ + 838.4504510067845, + 569.3644135576355 + ], + [ + 839.8951692101546, + 569.3644135576355 + ], + [ + 841.0877889350841, + 569.3644135576355 + ], + [ + 841.8828687517043, + 569.3644135576355 + ], + [ + 842.309496945988, + 569.141403365169 + ], + [ + 842.4064578992338, + 568.8117361241316 + ], + [ + 842.4064578992338, + 568.4529805971204 + ], + [ + 842.4064578992338, + 567.8906070682917 + ], + [ + 842.4064578992338, + 567.2603608721906 + ], + [ + 842.1446633254691, + 566.6107224854404 + ], + [ + 841.8149960844312, + 566.2131825771305 + ], + [ + 841.8149960844312, + 566.2131825771305 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 211, + "versionNonce": 1857499366, + "index": "b09", + "isDeleted": false, + "id": "RFujU7F0y3-GJAs8ZQMm9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3598.951180065904, + "y": 232.68101801099988, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 1103.270206513097, + "height": 544.8623806722937, + "seed": 1789777059, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351768686, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.281186764414997, + 0 + ], + [ + 2.9476129786880847, + 0 + ], + [ + 6.195804912439598, + 0 + ], + [ + 10.471782950601664, + 0 + ], + [ + 15.358614994214804, + 0 + ], + [ + 21.573812097303744, + -0.32966724103744127 + ], + [ + 26.412163664293985, + -0.8629524838920588 + ], + [ + 33.16064601023663, + -1.6580323005116497 + ], + [ + 47.39451394679509, + -4.828655471666025 + ], + [ + 74.43692380718949, + -12.692188779941489 + ], + [ + 85.76196314635854, + -16.405793289274925 + ], + [ + 96.63128600526943, + -19.595808651078414 + ], + [ + 116.82825256647448, + -25.927358898062266 + ], + [ + 136.12348226249014, + -32.89885143647166 + ], + [ + 145.2087235816689, + -36.311876990741666 + ], + [ + 162.97197021639204, + -43.157320289930794 + ], + [ + 170.350698758436, + -46.28915907978649 + ], + [ + 181.8405717181231, + -50.64270588054569 + ], + [ + 188.05576882121113, + -53.45457352468861 + ], + [ + 199.79774025933875, + -59.09770100362357 + ], + [ + 205.74144669333782, + -61.84169598049402 + ], + [ + 210.28891540058976, + -64.3238963835995 + ], + [ + 212.61597827850073, + -65.49712391787989 + ], + [ + 214.09948086316945, + -66.21463497190257 + ], + [ + 216.15505307199146, + -67.57208831735079 + ], + [ + 216.794995363417, + -68.221726704101 + ], + [ + 217.43493765484254, + -68.87136509085121 + ], + [ + 218.10396823224164, + -69.90884729058689 + ], + [ + 219.16084262262666, + -71.33417330330758 + ], + [ + 220.25650139430945, + -73.21521579628575 + ], + [ + 221.4200328332654, + -75.55197476952185 + ], + [ + 223.5725659953332, + -79.01348080041498 + ], + [ + 226.31656097220366, + -83.59973388896515 + ], + [ + 229.11873252102214, + -89.74705832478116 + ], + [ + 232.09543378568378, + -96.87368838838461 + ], + [ + 237.86461050383878, + -110.15733898312851 + ], + [ + 241.2582438674599, + -118.47658877166168 + ], + [ + 244.14768027419996, + -126.23346503136622 + ], + [ + 247.3570878266528, + -138.0723974227401 + ], + [ + 251.28400643312762, + -155.56415338837382 + ], + [ + 252.71902854117343, + -164.00945241612703 + ], + [ + 253.52380445311792, + -171.59179895998818 + ], + [ + 253.78559902688266, + -179.59107760280858 + ], + [ + 253.78559902688266, + -188.36604387159923 + ], + [ + 253.78559902688266, + -197.95548214765904 + ], + [ + 253.78559902688266, + -207.93276423670386 + ], + [ + 253.417147404547, + -218.04579166029362 + ], + [ + 252.10817453572145, + -228.0909464166109 + ], + [ + 249.6550624185902, + -237.58342373942446 + ], + [ + 247.25043077808186, + -245.2530351412072 + ], + [ + 244.5064358012114, + -253.34927473727384 + ], + [ + 241.22915558148543, + -261.62974014450833 + ], + [ + 237.80643393189166, + -269.30904764161573 + ], + [ + 233.5886324656767, + -277.55072866755177 + ], + [ + 229.61323338257807, + -285.0070259721929 + ], + [ + 225.7154030620768, + -292.60876470670314 + ], + [ + 221.28428749872091, + -300.57895506354953 + ], + [ + 216.80469145874122, + -308.4134000858512 + ], + [ + 212.3057032281131, + -316.2769333941267 + ], + [ + 207.08920394346114, + -325.02281137694354 + ], + [ + 201.84361637283655, + -333.74929716911106 + ], + [ + 196.78225461337934, + -341.7291836212821 + ], + [ + 191.1391271344437, + -349.3018340698186 + ], + [ + 186.28138337680411, + -354.9061771674551 + ], + [ + 180.66734418384294, + -361.7516204666442 + ], + [ + 173.70554774075845, + -369.4697123450503 + ], + [ + 167.69396863948714, + -375.5588602089183 + ], + [ + 158.54085465303615, + -384.1786889525149 + ], + [ + 155.370231481882, + -386.81602688081443 + ], + [ + 148.27268970425212, + -392.2652324532569 + ], + [ + 141.17514792662223, + -397.19084887816916 + ], + [ + 134.07760614899234, + -401.55409177425304 + ], + [ + 126.20437674539244, + -406.0530800048816 + ], + [ + 118.33114734179253, + -410.5520682355102 + ], + [ + 110.45791793819262, + -415.0510564661388 + ], + [ + 102.82709091770812, + -418.88101411936805 + ], + [ + 94.63389036839544, + -422.14859824376845 + ], + [ + 85.64561000246249, + -425.52283941674 + ], + [ + 77.21000707003441, + -429.45945411853995 + ], + [ + 68.77440413760542, + -433.39606882034013 + ], + [ + 61.987137410364085, + -435.54860198240794 + ], + [ + 56.00464659506724, + -437.59447809590506 + ], + [ + 46.938797466536926, + -440.9687192688766 + ], + [ + 29.95123845778471, + -447.13543589534174 + ], + [ + 21.486547239382162, + -449.7824699189657 + ], + [ + 6.612737011398167, + -454.058447957128 + ], + [ + -1.6677283958360931, + -456.2594615958192 + ], + [ + -10.239076662809566, + -458.4895635204841 + ], + [ + -19.527935983805946, + -460.81662639839556 + ], + [ + -29.233727403760895, + -462.9012868931911 + ], + [ + -39.2497938741044, + -464.6659762422739 + ], + [ + -48.81014386419065, + -466.3821851147334 + ], + [ + -57.88568908804427, + -468.0886978918684 + ], + [ + -67.5333039360521, + -469.8242989549774 + ], + [ + -77.63663526431719, + -471.6083804947093 + ], + [ + -87.72057440193294, + -473.70273708482955 + ], + [ + -98.25053392448172, + -475.74861319832667 + ], + [ + -109.19742554598997, + -477.5908713100064 + ], + [ + -120.76486726827443, + -479.4331294216863 + ], + [ + -132.69106451757034, + -480.9263281016795 + ], + [ + -144.66574224348915, + -482.18682049388144 + ], + [ + -156.5143707301877, + -483.43761679075874 + ], + [ + -168.42117578883426, + -484.68841308763604 + ], + [ + -181.0842762828015, + -485.977993765812 + ], + [ + -193.9509947785864, + -486.79246577308095 + ], + [ + -206.8274093696955, + -487.946301116712 + ], + [ + -219.72321615145484, + -489.7109904657948 + ], + [ + -232.57054245659037, + -491.1363164785155 + ], + [ + -245.33060390380433, + -492.4162010613668 + ], + [ + -257.2471050577751, + -493.6573012629194 + ], + [ + -268.23278106058115, + -494.86931317849826 + ], + [ + -279.25724144468677, + -496.10071728472644 + ], + [ + -290.3398784007395, + -497.3321213909544 + ], + [ + -301.296466117572, + -498.5538294018579 + ], + [ + -312.3791030736247, + -499.7852335080861 + ], + [ + -322.54061097383783, + -500.9778532330156 + ], + [ + -331.538587435095, + -501.569315047818 + ], + [ + -345.38461155866753, + -501.598403333792 + ], + [ + -349.88359978929657, + -501.598403333792 + ], + [ + -358.88157625055374, + -501.598403333792 + ], + [ + -367.8795527118109, + -501.598403333792 + ], + [ + -376.87752917306807, + -501.598403333792 + ], + [ + -385.87550563432524, + -501.598403333792 + ], + [ + -394.8734820955824, + -501.598403333792 + ], + [ + -403.87145855683957, + -501.598403333792 + ], + [ + -412.86943501809674, + -501.598403333792 + ], + [ + -421.8674114793539, + -501.598403333792 + ], + [ + -431.7380365198278, + -501.598403333792 + ], + [ + -441.6086615603017, + -501.04572590028806 + ], + [ + -450.60663802155887, + -499.9306749379555 + ], + [ + -459.60461448281603, + -498.8156239756229 + ], + [ + -469.47523952329084, + -497.66178863199184 + ], + [ + -480.21851314298146, + -496.46916890706234 + ], + [ + -492.2998479174712, + -495.13110775226323 + ], + [ + -503.0431215371618, + -493.93848802733373 + ], + [ + -513.8251795381511, + -493.327634021882 + ], + [ + -523.695804578625, + -492.774956588378 + ], + [ + -530.7933463562549, + -492.3871127753928 + ], + [ + -540.1112939632249, + -492.3871127753928 + ], + [ + -550.7963910109675, + -492.3871127753928 + ], + [ + -558.2720805062581, + -492.3871127753928 + ], + [ + -565.6023285716783, + -492.3871127753928 + ], + [ + -572.9810571137223, + -492.3871127753928 + ], + [ + -580.5827958482332, + -493.93848802733373 + ], + [ + -589.8231746926058, + -496.3140313818683 + ], + [ + -597.386129045818, + -497.9526714917308 + ], + [ + -602.9225994761819, + -499.2713404558806 + ], + [ + -611.2612414553641, + -501.2008634254821 + ], + [ + -621.6360634527191, + -503.4794458267702 + ], + [ + -629.6838225721622, + -505.1083898413083 + ], + [ + -637.9642879793973, + -506.42705880545805 + ], + [ + -645.7793408110492, + -507.85238481817873 + ], + [ + -653.8949725977654, + -509.49102492804127 + ], + [ + -662.8638607730481, + -510.8290860828404 + ], + [ + -672.0072786641749, + -511.97322533114675 + ], + [ + -681.722766179455, + -513.1367567701025 + ], + [ + -691.7582248404478, + -514.3196803997073 + ], + [ + -701.8421639780636, + -515.5026040293124 + ], + [ + -711.8582304484071, + -516.6855276589172 + ], + [ + -719.4793613735665, + -517.7617942399513 + ], + [ + -726.3732851493787, + -518.3532560547537 + ], + [ + -734.4210442688227, + -518.896237392933 + ], + [ + -742.1391361472288, + -519.8755430207207 + ], + [ + -748.9360989697943, + -520.9130252204561 + ], + [ + -755.0931195009352, + -521.9311152295425 + ], + [ + -761.2210517461017, + -522.5128809490202 + ], + [ + -766.6605612232197, + -522.9976857152517 + ], + [ + -772.003109747091, + -523.9285108664162 + ], + [ + -776.773588646809, + -524.8690321129054 + ], + [ + -780.9041252551015, + -525.3247485931631 + ], + [ + -784.9473970054723, + -525.7610728827715 + ], + [ + -790.0766314322027, + -527.0409574656228 + ], + [ + -791.7734481140124, + -527.4675856599065 + ], + [ + -795.1670814776335, + -527.8942138541902 + ], + [ + -798.5607148412546, + -528.3208420484739 + ], + [ + -801.4307590573444, + -529.135314055743 + ], + [ + -804.3008032734351, + -529.949786063012 + ], + [ + -807.6944366370562, + -530.8030424515794 + ], + [ + -810.564480853147, + -531.6175144588483 + ], + [ + -813.4345250692377, + -532.4319864661175 + ], + [ + -816.3045692853284, + -533.2464584733864 + ], + [ + -818.6413282585645, + -534.4196860076665 + ], + [ + -820.9780872318006, + -535.5929135419469 + ], + [ + -823.3148462050358, + -536.3782972632421 + ], + [ + -825.6516051782719, + -537.163680984537 + ], + [ + -827.988364151508, + -538.3369085188174 + ], + [ + -830.2281621714974, + -539.2386453840081 + ], + [ + -832.3419109522674, + -539.742842340889 + ], + [ + -833.8641979182339, + -540.3730885369898 + ], + [ + -835.0568176431643, + -540.9742464471169 + ], + [ + -836.6954577530269, + -541.4396590226993 + ], + [ + -838.3534900535387, + -541.7984145497105 + ], + [ + -839.8272965428823, + -542.1862583626958 + ], + [ + -841.0102201724867, + -542.5450138897072 + ], + [ + -842.0670945628717, + -542.9134655120431 + ], + [ + -843.4342440036444, + -543.2722210390543 + ], + [ + -844.5686871566268, + -543.4855351361962 + ], + [ + -845.2668060200003, + -543.4855351361962 + ], + [ + -846.469121840254, + -543.8442906632076 + ], + [ + -847.6811337558329, + -544.2030461902189 + ], + [ + -848.3404682379078, + -544.2030461902189 + ], + [ + -848.8155769088144, + -544.3969680967116 + ], + [ + -849.1549402451765, + -544.726635337749 + ], + [ + -849.4846074862144, + -544.8623806722937 + ], + [ + -849.4846074862144, + -544.8623806722937 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 92, + "versionNonce": 1519518371, + "index": "b0A", + "isDeleted": false, + "id": "q-4fzmBoeeAu1SSZbh1kD", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3026.705787349106, + "y": -432.40616883775465, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 190.8094598934067, + "height": 304.3507361448311, + "seed": 1850932515, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264389439, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.144139248306601, + 0 + ], + [ + 3.5584669841400682, + 0 + ], + [ + 6.9714925384096205, + -0.6884227680488948 + ], + [ + 12.585531731370793, + -2.840955930116934 + ], + [ + 19.19826874276896, + -5.439509477117781 + ], + [ + 26.664262142734515, + -8.62952483892127 + ], + [ + 34.896247073345876, + -12.430394206176516 + ], + [ + 42.216799043441824, + -16.037341666939028 + ], + [ + 49.304644725746584, + -19.644289127701768 + ], + [ + 56.1306958342866, + -23.222148302490496 + ], + [ + 71.915939022786, + -30.54270027258667 + ], + [ + 79.21709880223261, + -34.36296183049103 + ], + [ + 87.1775930637541, + -38.22200776969407 + ], + [ + 94.10060512554082, + -41.47019970344536 + ], + [ + 98.02752373201565, + -43.71969381875965 + ], + [ + 103.12766987277155, + -46.35703174705918 + ], + [ + 108.22781601352744, + -49.55674320418734 + ], + [ + 114.61754283245864, + -54.33691819923024 + ], + [ + 120.01826792827796, + -57.7887281347987 + ], + [ + 125.59352273994045, + -61.89987255244205 + ], + [ + 130.68397278537213, + -66.51521392696623 + ], + [ + 134.96964691885842, + -69.86036681396376 + ], + [ + 138.62507485624428, + -73.0697743664166 + ], + [ + 143.0755826102495, + -77.52997821574672 + ], + [ + 147.67153179412435, + -82.62042826117772 + ], + [ + 153.80916013461592, + -88.67079174374726 + ], + [ + 159.9467884751075, + -94.72115522631668 + ], + [ + 163.18528431353388, + -98.46384802162413 + ], + [ + 166.84071225091975, + -102.89496358498036 + ], + [ + 170.6415816181743, + -108.26660039482579 + ], + [ + 173.4437531669928, + -112.49409795636473 + ], + [ + 176.04230671399364, + -116.63433065998197 + ], + [ + 178.09787892281565, + -120.46428831321111 + ], + [ + 179.8334799859249, + -124.11971625059687 + ], + [ + 181.4527279051381, + -128.19207628694164 + ], + [ + 182.63565153474246, + -132.31291679990966 + ], + [ + 183.54708449525788, + -136.63737531469496 + ], + [ + 184.77848860148606, + -142.29989498427926 + ], + [ + 186.38804042537504, + -149.46530942918127 + ], + [ + 187.72610158017415, + -156.3495371096691 + ], + [ + 188.7538876845847, + -162.82652878652232 + ], + [ + 189.81076207496972, + -170.001639326749 + ], + [ + 190.57675360561552, + -177.93304530229682 + ], + [ + 190.8094598934067, + -186.73709985706148 + ], + [ + 190.8094598934067, + -196.50106784896457 + ], + [ + 190.8094598934067, + -206.54622260528186 + ], + [ + 190.8094598934067, + -216.05809211874453 + ], + [ + 190.8094598934067, + -223.75679180650127 + ], + [ + 190.8094598934067, + -230.718588249586 + ], + [ + 190.8094598934067, + -238.62090593916002 + ], + [ + 190.8094598934067, + -253.32018645130006 + ], + [ + 190.8094598934067, + -258.9730100255597 + ], + [ + 190.8094598934067, + -264.36403902605434 + ], + [ + 190.43131217574592, + -269.755068026549 + ], + [ + 189.6168401684772, + -274.0795265413342 + ], + [ + 188.33695558562522, + -278.13249438702985 + ], + [ + 186.97950224017768, + -282.17576613740084 + ], + [ + 185.70931375265081, + -285.27851664128264 + ], + [ + 184.09006583343762, + -288.2455218106196 + ], + [ + 182.78109296461207, + -291.1834386939827 + ], + [ + 181.68543419292928, + -293.44262890462164 + ], + [ + 179.96922532046938, + -295.28488701630147 + ], + [ + 177.8748687303496, + -297.45681236901873 + ], + [ + 174.49093146205269, + -300.3656409664079 + ], + [ + 173.31770392777253, + -301.15102468770294 + ], + [ + 170.98094495453643, + -302.3242522219832 + ], + [ + 168.64418598130123, + -303.10963594327836 + ], + [ + 165.77414176521052, + -303.9241079505473 + ], + [ + 163.36951012470217, + -304.3507361448311 + ], + [ + 161.48846763172332, + -304.3507361448311 + ], + [ + 159.60742513874538, + -304.3507361448311 + ], + [ + 157.72638264576653, + -304.3507361448311 + ], + [ + 155.8453401527886, + -304.3507361448311 + ], + [ + 154.80785795305292, + -304.3507361448311 + ], + [ + 153.77037575331724, + -304.3507361448311 + ], + [ + 152.34504974059655, + -304.3507361448311 + ], + [ + 150.91972372787586, + -304.3507361448311 + ], + [ + 149.66892743099834, + -304.3507361448311 + ], + [ + 148.53448427801686, + -304.3507361448311 + ], + [ + 147.47760988763184, + -304.2343830009355 + ], + [ + 146.30438235335168, + -303.88532356924884 + ], + [ + 145.00510557985126, + -303.65261728145765 + ], + [ + 144.2100257632319, + -303.65261728145765 + ], + [ + 143.4052498512874, + -303.34234223106944 + ], + [ + 142.24171841233147, + -303.03206718068134 + ], + [ + 141.47572688168566, + -303.03206718068134 + ], + [ + 141.28180497519315, + -303.5847446141853 + ], + [ + 141.28180497519315, + -304.1859025243124 + ], + [ + 141.28180497519315, + -304.1859025243124 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 183, + "versionNonce": 574849251, + "index": "b0B", + "isDeleted": false, + "id": "QSmwIWpWitoiyVBk9334A", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3199.839265465711, + "y": -731.317395505468, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 909.2222507812639, + "height": 532.7519576118301, + "seed": 1928721891, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715264392337, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.300578955063429, + 0 + ], + [ + -0.6011579101277675, + -0.2811867644142012 + ], + [ + -0.6011579101277675, + -1.0374821997354502 + ], + [ + -0.6011579101277675, + -6.273373675035941 + ], + [ + -0.6011579101277675, + -9.570046085410354 + ], + [ + -0.6011579101277675, + -14.21447574590843 + ], + [ + -0.6011579101277675, + -20.21635875185484 + ], + [ + -0.6011579101277675, + -31.618966853620464 + ], + [ + -1.105354867007918, + -41.27627779695263 + ], + [ + -2.501592593755049, + -45.57164802576392 + ], + [ + -7.7277879737312105, + -55.30652773169311 + ], + [ + -11.257166671896812, + -60.88178254335571 + ], + [ + -14.796241465386629, + -66.40855687839519 + ], + [ + -19.207964838093176, + -72.6043617908341 + ], + [ + -24.502032885341578, + -79.55646213859427 + ], + [ + -35.68163079464102, + -94.51753722449939 + ], + [ + -41.69320989591233, + -101.98353062446495 + ], + [ + -53.6969759078047, + -113.92912006440997 + ], + [ + -60.83330206673327, + -120.06674840490109 + ], + [ + -68.06658917890763, + -126.55343617707899 + ], + [ + -81.95139768377885, + -136.07500178586633 + ], + [ + -90.60031471334878, + -141.02001040142795 + ], + [ + -98.43475973565091, + -145.0438899611496 + ], + [ + -106.67644076158649, + -148.41813113412104 + ], + [ + -125.0408453064374, + -155.3411431959073 + ], + [ + -144.33607500245216, + -162.16719430444732 + ], + [ + -160.53825028991014, + -166.57891767715432 + ], + [ + -175.75142385425534, + -170.6512777134991 + ], + [ + -184.72031202953895, + -173.45344926231735 + ], + [ + -202.59991180815723, + -177.9330453022967 + ], + [ + -211.5978882694144, + -180.182539417611 + ], + [ + -229.53566461998162, + -183.55678059058255 + ], + [ + -238.53364108123878, + -185.2439011770682 + ], + [ + -247.49283316119727, + -186.36864823472536 + ], + [ + -254.25101160246504, + -186.93102176355399 + ], + [ + -260.2335024177619, + -187.4643070064086 + ], + [ + -276.6877761836604, + -187.99759224926333 + ], + [ + -283.7465335799916, + -187.99759224926333 + ], + [ + -302.4503014612037, + -189.1999080695175 + ], + [ + -320.2426363819013, + -189.1999080695175 + ], + [ + -329.7738980860131, + -189.1999080695175 + ], + [ + -340.2650732272632, + -189.1999080695175 + ], + [ + -351.7549461869503, + -189.1999080695175 + ], + [ + -363.71023172221976, + -189.1999080695175 + ], + [ + -385.92398611094904, + -189.1999080695175 + ], + [ + -394.0977944696124, + -189.1999080695175 + ], + [ + -404.94772513787393, + -189.1999080695175 + ], + [ + -419.1815930744324, + -188.85084863783084 + ], + [ + -431.1077903237274, + -187.90063129601708 + ], + [ + -442.34556480497486, + -186.33955994875146 + ], + [ + -453.37002518907957, + -184.15793850070963 + ], + [ + -464.3653972872107, + -181.72421857422728 + ], + [ + -475.3607693853419, + -178.89295873943513 + ], + [ + -486.35614148347304, + -175.8580809028258 + ], + [ + -497.23516043770815, + -172.83289916154104 + ], + [ + -508.68624901609746, + -169.36169703532323 + ], + [ + -520.6124462653934, + -165.59961204936656 + ], + [ + -532.5677318006628, + -161.83752706340988 + ], + [ + -544.4260563826856, + -157.6488138831695 + ], + [ + -555.0723690491304, + -153.42131632163046 + ], + [ + -564.477581514022, + -149.81436886086794 + ], + [ + -572.971361018398, + -146.4692159738703 + ], + [ + -579.0023323103187, + -143.83187804557076 + ], + [ + -587.1082680017098, + -139.837086771823 + ], + [ + -596.5813531338745, + -135.10539225340324 + ], + [ + -603.0777370013766, + -131.86689641497662 + ], + [ + -609.7777388706963, + -128.76414591109483 + ], + [ + -616.5068290259896, + -125.67109150253759 + ], + [ + -623.2940957532319, + -122.55864490333113 + ], + [ + -630.2558921963164, + -118.84504039399769 + ], + [ + -637.227384734726, + -115.1120436940148 + ], + [ + -644.053435843266, + -111.44691966130449 + ], + [ + -650.8697908564809, + -107.50060886417975 + ], + [ + -653.3422951642615, + -105.53230151327978 + ], + [ + -658.7624124507302, + -102.09018767303587 + ], + [ + -665.8987386096587, + -97.03852200890333 + ], + [ + -672.5405639070304, + -91.49235548321462 + ], + [ + -676.8456302311661, + -87.69148611595938 + ], + [ + -680.5204503592013, + -84.49177465883133 + ], + [ + -691.5643029339553, + -74.41753161654003 + ], + [ + -697.1977343175658, + -70.34517158019526 + ], + [ + -702.8214696058521, + -66.27281154385037 + ], + [ + -708.4452048941375, + -62.20045150750548 + ], + [ + -712.8860165528185, + -58.82621033453404 + ], + [ + -716.628709348126, + -55.587714496107424 + ], + [ + -721.9421695860237, + -51.689884175605926 + ], + [ + -726.0727061943162, + -48.490172718477766 + ], + [ + -729.1851527935223, + -45.843138694853565 + ], + [ + -733.4902191176589, + -42.497985807856026 + ], + [ + -737.9019424903654, + -38.59045939202986 + ], + [ + -741.0143890895715, + -35.48770888814806 + ], + [ + -744.757081884879, + -31.938937999333234 + ], + [ + -749.1881974482358, + -27.97323501155938 + ], + [ + -752.8921058622445, + -24.744435268457323 + ], + [ + -755.8009344596339, + -22.301019246650412 + ], + [ + -758.2055661001423, + -19.71216179497401 + ], + [ + -763.0051332858338, + -14.466574224348847 + ], + [ + -769.171849912299, + -8.309553693208386 + ], + [ + -773.8259756681218, + -3.4033294589453362 + ], + [ + -776.6766276935632, + -0.06787266727235419 + ], + [ + -782.1549215519799, + 6.157020531140461 + ], + [ + -789.7469641911657, + 14.582927368244555 + ], + [ + -795.9136808176308, + 21.273233142239633 + ], + [ + -802.6136826869506, + 28.55500073103724 + ], + [ + -809.7112244645796, + 36.234308228144755 + ], + [ + -817.2450905318183, + 43.971792297199954 + ], + [ + -824.9147019336006, + 51.63170760365813 + ], + [ + -832.1479890457754, + 59.281926814791746 + ], + [ + -839.2164425374312, + 66.94184212124992 + ], + [ + -846.1588467898664, + 74.04907999420425 + ], + [ + -851.4916992184135, + 79.7212957591131 + ], + [ + -857.0281696487773, + 85.70378657441017 + ], + [ + -862.6422088417385, + 91.78323834295361 + ], + [ + -867.0345400237966, + 96.63128600526898 + ], + [ + -871.5917048263727, + 101.68295166940152 + ], + [ + -875.7416336253145, + 106.73461733353406 + ], + [ + -879.6491600411409, + 111.21421337351342 + ], + [ + -883.0137051187876, + 115.05386712206712 + ], + [ + -885.311679710725, + 118.14692153062435 + ], + [ + -887.4254284914946, + 120.68729850567752 + ], + [ + -889.1513334592792, + 123.18889109943223 + ], + [ + -890.3245609935593, + 125.13780625968297 + ], + [ + -891.4105236699179, + 126.6116127490269 + ], + [ + -892.5352707275752, + 128.4635669560313 + ], + [ + -894.1254303608143, + 131.98324955887222 + ], + [ + -894.522970269124, + 133.14678099782793 + ], + [ + -895.6961978034042, + 135.47384387573925 + ], + [ + -896.8694253376848, + 137.80090675365068 + ], + [ + -897.6548090589799, + 140.127969631562 + ], + [ + -898.4692810662491, + 142.98831775232804 + ], + [ + -899.35162574079, + 146.97341293075124 + ], + [ + -900.2339704153319, + 150.95850810917443 + ], + [ + -901.1163150898728, + 154.94360328759763 + ], + [ + -902.0374441457129, + 159.52016028082323 + ], + [ + -902.9197888202543, + 163.50525545924643 + ], + [ + -903.8021334947957, + 167.49035063766962 + ], + [ + -904.7232625506358, + 172.06690763089534 + ], + [ + -905.6443916064754, + 176.64346462412095 + ], + [ + -906.6333933295878, + 182.61625934409346 + ], + [ + -907.312120002312, + 188.71510330328613 + ], + [ + -907.9617583890622, + 194.20309325702704 + ], + [ + -908.8441030636036, + 200.2728489302458 + ], + [ + -909.2222507812639, + 205.92567250450554 + ], + [ + -909.2222507812639, + 210.5701021650035 + ], + [ + -909.2222507812639, + 217.67734003795783 + ], + [ + -909.2222507812639, + 223.86344885507208 + ], + [ + -909.2222507812639, + 229.40961538076078 + ], + [ + -909.2222507812639, + 236.9240892573497 + ], + [ + -909.2222507812639, + 241.56851891784765 + ], + [ + -909.2222507812639, + 247.62857849574186 + ], + [ + -909.2222507812639, + 255.05578751440896 + ], + [ + -909.2222507812639, + 266.6135331413685 + ], + [ + -909.2222507812639, + 271.67489490082573 + ], + [ + -909.2222507812639, + 275.01035169249883 + ], + [ + -909.2222507812639, + 280.09110564260516 + ], + [ + -908.9313679215256, + 286.81049970257425 + ], + [ + -908.175072486204, + 291.7361161274865 + ], + [ + -907.2539434303644, + 296.3514575020107 + ], + [ + -906.3231182791997, + 301.00558325783356 + ], + [ + -905.3825970327107, + 305.7081894902793 + ], + [ + -904.48086016752, + 309.94538314714293 + ], + [ + -903.5888193976539, + 313.9886548975138 + ], + [ + -902.6967786277878, + 318.0319266478849 + ], + [ + -901.8241300485711, + 321.6388741086474 + ], + [ + -900.961177564679, + 325.11007623486523 + ], + [ + -900.1370094620852, + 328.11586578550066 + ], + [ + -899.35162574079, + 330.56897790263235 + ], + [ + -898.2171825878086, + 332.95421735249136 + ], + [ + -897.0439550535284, + 335.32006461170124 + ], + [ + -896.2391791415839, + 337.2786758672768 + ], + [ + -895.5119719922368, + 338.79126673791905 + ], + [ + -894.8332453195126, + 339.8578372236285 + ], + [ + -894.1545186467883, + 340.90501551868863 + ], + [ + -893.4757919740641, + 341.9424977184241 + ], + [ + -892.8358496826386, + 342.5921361051743 + ], + [ + -891.8759362455003, + 343.5520495423126 + ], + [ + -891.5753572904364, + 343.5520495423126 + ], + [ + -890.9741993803091, + 343.5520495423126 + ], + [ + -889.752491369406, + 343.5520495423126 + ], + [ + -889.752491369406, + 343.5520495423126 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 4, + "versionNonce": 927988383, + "index": "b0P", + "isDeleted": false, + "id": "5XvKf8YNEFoLn7zLejSmz", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1322.0788638851793, + "y": -760.5633820137263, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 0.0001, + "height": 0.0001, + "seed": 582607153, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271906958, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.0001, + 0.0001 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 206, + "versionNonce": 774711441, + "index": "b0Q", + "isDeleted": false, + "id": "wqI5_WW7VNREgUjvPTk89", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1217.3876332066175, + "y": -765.276101339236, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 85.56060291427775, + "height": 100.2582618152968, + "seed": 1423646431, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271912109, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.3443082612245689, + 0 + ], + [ + 0.3658275275508913, + 0 + ], + [ + 0.04303853265309954, + 0 + ], + [ + -0.24747156275498128, + 0 + ], + [ + -0.5810201908161616, + 0 + ], + [ + -1.9259743362242716, + 0 + ], + [ + -2.6468697581631204, + 0 + ], + [ + -2.969658753060912, + 0 + ], + [ + -3.313967014285481, + 0 + ], + [ + -4.002583536734392, + 0.3012697285713557 + ], + [ + -4.368411064285283, + 0.6563376229590858 + ], + [ + -5.057027586734193, + 1.6354642408161908 + ], + [ + -5.422855114285312, + 2.356359662754926 + ], + [ + -5.508932179591284, + 4.239295466326098 + ], + [ + -5.864000073979014, + 4.583603727550553 + ], + [ + -6.229827601530133, + 7.23047348571356 + ], + [ + -6.595655129081024, + 7.58554138010129 + ], + [ + -6.961482656631915, + 8.29567716887675 + ], + [ + -6.961482656631915, + 9.71594874642767 + ], + [ + -6.961482656631915, + 10.426084535203131 + ], + [ + -6.961482656631915, + 11.114701057652042 + ], + [ + -7.305790917856484, + 11.448249685713222 + ], + [ + -7.650099179080826, + 11.781798313774402 + ], + [ + -7.650099179080826, + 12.448895569896763 + ], + [ + -7.650099179080826, + 13.029915760713038 + ], + [ + -7.650099179080826, + 13.352704755611057 + ], + [ + -7.650099179080826, + 13.643214851019138 + ], + [ + -7.650099179080826, + 14.116638710202778 + ], + [ + -7.650099179080826, + 14.740697433672153 + ], + [ + -7.650099179080826, + 15.4508332224475 + ], + [ + -7.499464314795205, + 16.01033414693734 + ], + [ + -7.144396420407475, + 16.37616167448823 + ], + [ + -6.778568892856583, + 16.73122956887596 + ], + [ + -6.251346867856455, + 17.097057096426965 + ], + [ + -5.315258782652563, + 17.62427912142698 + ], + [ + -4.981710154591383, + 17.62427912142698 + ], + [ + -4.6481615265302025, + 17.62427912142698 + ], + [ + -4.314612898469022, + 17.62427912142698 + ], + [ + -3.981064270407842, + 17.62427912142698 + ], + [ + -2.9804183862243008, + 17.62427912142698 + ], + [ + -2.603831225510021, + 17.62427912142698 + ], + [ + -2.022811034693632, + 17.62427912142698 + ], + [ + -1.5924257081630913, + 17.62427912142698 + ], + [ + -1.2265981806122, + 17.62427912142698 + ], + [ + -0.6240587234692612, + 17.62427912142698 + ], + [ + 0.0645577989796493, + 17.62427912142698 + ], + [ + 0.7854532209182707, + 17.62427912142698 + ], + [ + 1.495589009693731, + 17.62427912142698 + ], + [ + 2.2164844316323524, + 17.62427912142698 + ], + [ + 2.9481394867343624, + 17.62427912142698 + ], + [ + 5.175383551530103, + 17.62427912142698 + ], + [ + 5.917798239795275, + 17.62427912142698 + ], + [ + 6.6386936617341235, + 17.62427912142698 + ], + [ + 8.134282671427854, + 17.62427912142698 + ], + [ + 8.844418460203315, + 17.62427912142698 + ], + [ + 9.565313882141936, + 17.62427912142698 + ], + [ + 10.996345092856018, + 17.258451593875975 + ], + [ + 11.706480881631478, + 16.89262406632497 + ], + [ + 13.115992826019237, + 16.53755617193724 + ], + [ + 14.181196509182428, + 16.16096901122296 + ], + [ + 15.224880926019068, + 16.16096901122296 + ], + [ + 15.935016714794529, + 15.795141483671955 + ], + [ + 17.35528829234545, + 15.063486428570059 + ], + [ + 18.065424081120682, + 14.697658901019054 + ], + [ + 19.485695658671602, + 14.331831373468049 + ], + [ + 20.195831447447063, + 13.966003845917044 + ], + [ + 20.905967236222523, + 12.879280896427417 + ], + [ + 21.454708527548974, + 12.319779971937578 + ], + [ + 22.380036979589704, + 11.717240514794867 + ], + [ + 22.745864507140823, + 11.351412987243862 + ], + [ + 23.961703054589634, + 10.44760380152968 + ], + [ + 24.671838843365094, + 9.726708379590946 + ], + [ + 25.371214998977166, + 9.016572590815485 + ], + [ + 26.102870054079176, + 8.2741579025502 + ], + [ + 26.856044375507736, + 7.305790917856484 + ], + [ + 27.619978330099457, + 6.132990903060659 + ], + [ + 28.373152651528017, + 4.960190888264833 + ], + [ + 29.126326972956576, + 3.8089101397955574 + ], + [ + 30.105453590813568, + 2.636110124999732 + ], + [ + 31.27825360560928, + 1.2158385474488114 + ], + [ + 32.24662059030311, + -0.40886606020399086 + ], + [ + 33.04283344438477, + -2.0228110346937456 + ], + [ + 33.86056556479275, + -3.959545004081292 + ], + [ + 35.0226059464253, + -6.434260631632014 + ], + [ + 36.33528119234347, + -9.091890022958296 + ], + [ + 37.65871607142503, + -11.738759781121416 + ], + [ + 38.92835278469033, + -13.998282745406868 + ], + [ + 39.87520050305761, + -16.12869011173325 + ], + [ + 41.521424377036965, + -19.991398417345067 + ], + [ + 42.317637231118624, + -21.605343391834708 + ], + [ + 43.081571185710345, + -22.853460838773458 + ], + [ + 43.823985873975516, + -24.004741587242734 + ], + [ + 44.58791982856724, + -25.478811330609915 + ], + [ + 46.14806663724062, + -27.964286591323912 + ], + [ + 46.89048132550579, + -29.104807706629913 + ], + [ + 47.65441528009774, + -30.288367354589013 + ], + [ + 48.47214740050572, + -31.89155269591538 + ], + [ + 50.05381347550565, + -35.08716374540495 + ], + [ + 50.83926669642392, + -36.67958945356804 + ], + [ + 52.02282634438302, + -39.078987648975954 + ], + [ + 52.45321167091356, + -40.380903261730964 + ], + [ + 53.27094379132154, + -42.468272095404245 + ], + [ + 54.08867591172975, + -44.555640929077526 + ], + [ + 54.90640803213773, + -46.64300976275081 + ], + [ + 55.72414015254594, + -48.73037859642409 + ], + [ + 56.541872272953924, + -50.81774743009737 + ], + [ + 57.35960439336213, + -52.90511626377065 + ], + [ + 58.650760372953755, + -55.49818785611728 + ], + [ + 59.898877819892505, + -57.585556689790565 + ], + [ + 61.07167783468822, + -59.167222764790495 + ], + [ + 62.28751638213703, + -61.254591598463776 + ], + [ + 63.10524850254524, + -63.34196043213706 + ], + [ + 64.27804851734095, + -64.92362650713687 + ], + [ + 65.45084853213689, + -66.50529258213669 + ], + [ + 67.05403387346314, + -68.91545041070788 + ], + [ + 68.66797884795278, + -71.07813667652408 + ], + [ + 69.4319128025445, + -72.24017705815663 + ], + [ + 70.89522291274852, + -73.96171836427891 + ], + [ + 71.45472383723836, + -74.6933734193808 + ], + [ + 71.82055136478925, + -75.42502847448281 + ], + [ + 72.34777338978915, + -76.15668352958483 + ], + [ + 73.068668811728, + -76.88833858468672 + ], + [ + 73.60665046989106, + -77.61999363978873 + ], + [ + 73.9617183642788, + -78.34088906172747 + ], + [ + 74.71489268570735, + -79.27697714693147 + ], + [ + 75.04844131376854, + -79.82571843825792 + ], + [ + 75.7155385698909, + -80.66496982499257 + ], + [ + 76.43643399182974, + -81.40738451325774 + ], + [ + 76.80226151938064, + -81.77321204080886 + ], + [ + 77.15732941376837, + -81.89156800560465 + ], + [ + 77.56619547397236, + -81.89156800560465 + ], + [ + 77.88898446887038, + -81.89156800560465 + ], + [ + 77.91050373519693, + -81.5902982770333 + ], + [ + 77.91050373519693, + -80.92320102091094 + ], + [ + 77.91050373519693, + -80.21306523213548 + ], + [ + 77.91050373519693, + -79.07254411682948 + ], + [ + 77.91050373519693, + -77.93202300152336 + ], + [ + 77.91050373519693, + -76.79150188621736 + ], + [ + 77.91050373519693, + -75.22059544438082 + ], + [ + 77.91050373519693, + -73.64968900254416 + ], + [ + 77.91050373519693, + -70.50787611887108 + ], + [ + 77.91050373519693, + -68.93696967703443 + ], + [ + 77.91050373519693, + -65.55844486376941 + ], + [ + 77.91050373519693, + -62.27675674897387 + ], + [ + 77.91050373519693, + -61.26535123162705 + ], + [ + 77.91050373519693, + -60.544455809688316 + ], + [ + 77.91050373519693, + -59.82356038774958 + ], + [ + 77.91050373519693, + -59.102664965810845 + ], + [ + 77.91050373519693, + -58.54316404132112 + ], + [ + 77.91050373519693, + -58.123538347953854 + ], + [ + 77.91050373519693, + -57.789989719892674 + ], + [ + 77.91050373519693, + -57.38112365968857 + ], + [ + 77.91050373519693, + -57.058334664790664 + ], + [ + 77.61999363978885, + -57.036815398464114 + ], + [ + 77.28644501172766, + -56.800103468872294 + ], + [ + 77.23264684591118, + -56.445035574484564 + ], + [ + 77.23264684591118, + -56.068448413770284 + ], + [ + 77.23264684591118, + -55.7348997857091 + ], + [ + 77.23264684591118, + -55.39059152448465 + ], + [ + 76.96365601682965, + -54.7988117005051 + ], + [ + 76.59782848927853, + -54.09943554489291 + ], + [ + 76.18896242907454, + -53.02347222856656 + ], + [ + 75.7908560020337, + -51.097497892342176 + ], + [ + 75.37123030866655, + -48.98860979234246 + ], + [ + 74.97312388162572, + -46.37401893366916 + ], + [ + 74.5319789219318, + -43.253725316322516 + ], + [ + 74.0908339622381, + -40.01507573417996 + ], + [ + 73.67120826887071, + -36.88402248367004 + ], + [ + 73.23006330917701, + -33.78524813264994 + ], + [ + 72.75663944999337, + -30.126972857140117 + ], + [ + 72.28321559080973, + -26.899082908160835 + ], + [ + 72.19713852550353, + -23.43448102958962 + ], + [ + 71.3148486061159, + -18.732521337243156 + ], + [ + 71.3148486061159, + -17.44136535765142 + ], + [ + 70.87370364642197, + -14.859053398468063 + ], + [ + 70.43255868672827, + -12.276741439284592 + ], + [ + 70.43255868672827, + -9.694429480101121 + ], + [ + 69.99141372703434, + -7.112117520917764 + ], + [ + 69.55026876734041, + -4.5298055617342925 + ], + [ + 69.55026876734041, + -1.9474936025508214 + ], + [ + 69.15216234029981, + 0.12911559795918492 + ], + [ + 68.75405591325898, + 2.2057247984691912 + ], + [ + 68.75405591325898, + 4.2823339989791975 + ], + [ + 68.35594948621815, + 5.853240440815739 + ], + [ + 67.95784305917732, + 7.424146882652394 + ], + [ + 67.95784305917732, + 8.564667997958395 + ], + [ + 67.55973663213672, + 9.705189113264396 + ], + [ + 67.16163020509589, + 11.082422158162217 + ], + [ + 67.16163020509589, + 13.234348790815147 + ], + [ + 66.80656231070816, + 13.933724946427333 + ], + [ + 66.45149441632043, + 14.772976333161864 + ], + [ + 66.45149441632043, + 15.504631388263874 + ], + [ + 66.45149441632043, + 16.22552681020261 + ], + [ + 66.45149441632043, + 16.946422232141344 + ], + [ + 66.45149441632043, + 17.50592315663107 + ], + [ + 66.45149441632043, + 17.925548849998336 + ], + [ + 66.45149441632043, + 18.259097478059516 + ], + [ + 66.1394650545858, + 18.36669380969215 + ], + [ + 65.21413660254507, + 17.46288462397797 + ], + [ + 63.42803749744303, + 15.558429554080135 + ], + [ + 60.027993417851576, + 13.557137785713053 + ], + [ + 55.691861253056004, + 11.932433178060137 + ], + [ + 55.691861253056004, + 11.932433178060137 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 39, + "versionNonce": 1227834257, + "index": "b0R", + "isDeleted": false, + "id": "-t-IREurx_zxAMkuY8eCl", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1255.917879564267, + "y": -822.4205130693327, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 65.14957880356542, + "height": 25.99527372244654, + "seed": 1555494993, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271913276, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.3120293617346306, + 0 + ], + [ + 0.6240587234692612, + 0 + ], + [ + 2.5392734265303716, + 0 + ], + [ + 4.2608147326527614, + 0 + ], + [ + 6.369702832652365, + 0.24747156275509496 + ], + [ + 8.188080837244115, + 0.634818356632536 + ], + [ + 9.242524887244144, + 0.763933954591721 + ], + [ + 11.319134087754037, + 1.4633101102039063 + ], + [ + 15.99957451377395, + 3.593717476530287 + ], + [ + 19.80848465356962, + 5.121585385713843 + ], + [ + 21.573064492344884, + 5.820961541326028 + ], + [ + 24.370569114793625, + 7.338069817346195 + ], + [ + 25.468051697446526, + 8.05896523928493 + ], + [ + 27.706055395405656, + 8.9304955255094 + ], + [ + 30.04089579183392, + 9.705189113264396 + ], + [ + 31.12761874132366, + 10.09253590714195 + ], + [ + 34.08651786122141, + 11.340653354080587 + ], + [ + 36.51819495611903, + 11.771038680611127 + ], + [ + 39.38025737754742, + 12.976117594896778 + ], + [ + 41.456866578057316, + 13.793849715304873 + ], + [ + 43.533475778567436, + 14.611581835712968 + ], + [ + 45.61008497907733, + 15.429313956121064 + ], + [ + 47.68669417958745, + 16.247046076529045 + ], + [ + 49.76330338009734, + 17.06477819693714 + ], + [ + 51.33420982193411, + 18.237578211732966 + ], + [ + 53.410819022444, + 19.45341675918189 + ], + [ + 55.48742822295412, + 20.271148879589987 + ], + [ + 57.058334664790664, + 21.056602100508258 + ], + [ + 58.629241106627205, + 22.229402115304083 + ], + [ + 60.20014754846375, + 23.40220213009991 + ], + [ + 61.87865032193304, + 24.295251682650814 + ], + [ + 63.12676776887179, + 25.156022335711896 + ], + [ + 63.83690355764725, + 25.75856179285472 + ], + [ + 64.55779897958587, + 25.99527372244654 + ], + [ + 65.14957880356542, + 25.99527372244654 + ], + [ + 65.14957880356542, + 25.99527372244654 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 42, + "versionNonce": 725031775, + "index": "b0S", + "isDeleted": false, + "id": "nHwq4Rg0dYA2K3ilkwgKD", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1337.6372934392593, + "y": -812.1988615642316, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 4.185497300509724, + "height": 87.89544331070613, + "seed": 1278104401, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271914541, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.9576073515304415 + ], + [ + 0, + 4.465247762754643 + ], + [ + 0, + 9.543794615815386 + ], + [ + 0, + 13.374224021937493 + ], + [ + 0, + 19.647090156120612 + ], + [ + 0, + 27.168073737242366 + ], + [ + 0, + 31.57952333418075 + ], + [ + 0, + 35.33463530815993 + ], + [ + 0, + 41.048000517853325 + ], + [ + 0, + 46.82592352652625 + ], + [ + 0, + 50.4734391688728 + ], + [ + 0, + 53.47537682142354 + ], + [ + 0, + 55.896294283158 + ], + [ + 0, + 57.83302825254566 + ], + [ + 0, + 59.26405946325974 + ], + [ + 0, + 60.243186081116846 + ], + [ + 0, + 61.67421729183093 + ], + [ + 0, + 63.10524850254512 + ], + [ + 0, + 63.81538429132058 + ], + [ + 0, + 66.17174395407551 + ], + [ + 0, + 67.77492929540188 + ], + [ + 0, + 69.38887426989152 + ], + [ + -0.49494312551018993, + 70.99205961121788 + ], + [ + -1.2911559795916219, + 72.5737256862177 + ], + [ + -1.5924257081630913, + 74.1661513943809 + ], + [ + -1.5924257081630913, + 76.124404630095 + ], + [ + -1.5924257081630913, + 78.23329273009472 + ], + [ + -1.882935803571172, + 79.98711293570682 + ], + [ + -2.2810422306120017, + 81.56877901070675 + ], + [ + -2.3993981954079118, + 83.17196435203311 + ], + [ + -2.6791486576528314, + 84.45236069846158 + ], + [ + -3.0449761852037227, + 85.28085245203283 + ], + [ + -3.131053250509922, + 86.00174787397157 + ], + [ + -3.131053250509922, + 86.7226432959103 + ], + [ + -3.131053250509922, + 87.44353871784904 + ], + [ + -3.432322979081164, + 87.85240477805303 + ], + [ + -3.7981505066322825, + 87.89544331070613 + ], + [ + -4.185497300509724, + 87.89544331070613 + ], + [ + -4.185497300509724, + 87.89544331070613 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 100, + "versionNonce": 1483552831, + "index": "b0T", + "isDeleted": false, + "id": "uP0Z4eAPv-T5aocX2gipq", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1349.3652935872176, + "y": -794.0688796841313, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 43.888543672955166, + "height": 43.275244582649066, + "seed": 612437919, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271916645, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.9576073515304415, + 0 + ], + [ + 2.6038312255097935, + 0 + ], + [ + 4.6481615265302025, + 0 + ], + [ + 7.628579912754276, + 0 + ], + [ + 11.502047851529369, + 0 + ], + [ + 14.08435981071284, + 0 + ], + [ + 17.7318754530595, + 0.3873467938774411 + ], + [ + 20.873688336732585, + 1.9582532357140963 + ], + [ + 22.444594778569353, + 2.743706456632367 + ], + [ + 24.725637009181355, + 4.228535833162823 + ], + [ + 25.866158124487356, + 4.970950521428108 + ], + [ + 28.17947925458907, + 7.68237807857065 + ], + [ + 29.352279269385008, + 9.253284520407306 + ], + [ + 31.6010426005073, + 13.546378152549778 + ], + [ + 32.44029398724183, + 15.66602588571277 + ], + [ + 34.09727749438457, + 19.69012868877371 + ], + [ + 34.90424998162939, + 21.304073663263353 + ], + [ + 35.68970320254766, + 22.72434524081416 + ], + [ + 36.270723393363824, + 23.71423149183454 + ], + [ + 36.63655092091494, + 24.435126913773274 + ], + [ + 36.99161881530267, + 25.156022335711896 + ], + [ + 37.17453257907823, + 25.87691775765063 + ], + [ + 37.17453257907823, + 26.404139782650645 + ], + [ + 37.17453257907823, + 26.80224620969136 + ], + [ + 37.17453257907823, + 27.329468234691376 + ], + [ + 37.17453257907823, + 27.781372827548466 + ], + [ + 37.17453257907823, + 28.168719621425907 + ], + [ + 37.17453257907823, + 28.717460912752472 + ], + [ + 37.17453257907823, + 29.66430863111964 + ], + [ + 37.17453257907823, + 30.815589379588914 + ], + [ + 37.17453257907823, + 31.98838939438474 + ], + [ + 37.17453257907823, + 33.139670142854015 + ], + [ + 37.17453257907823, + 34.301710524486566 + ], + [ + 37.17453257907823, + 35.765020634690586 + ], + [ + 37.17453257907823, + 37.03465734795577 + ], + [ + 37.17453257907823, + 37.8739087346903 + ], + [ + 37.17453257907823, + 38.60556378979231 + ], + [ + 37.17453257907823, + 39.32645921173105 + ], + [ + 37.17453257907823, + 40.03659500050651 + ], + [ + 37.17453257907823, + 40.74673078928197 + ], + [ + 37.17453257907823, + 41.45686657805743 + ], + [ + 37.17453257907823, + 42.17776199999605 + ], + [ + 37.17453257907823, + 42.586628060200155 + ], + [ + 36.840983951016824, + 42.95245558775116 + ], + [ + 36.507435322955644, + 43.275244582649066 + ], + [ + 36.1631270617313, + 43.275244582649066 + ], + [ + 35.09792337856811, + 43.275244582649066 + ], + [ + 34.73209585101722, + 43.275244582649066 + ], + [ + 34.01120042907837, + 43.275244582649066 + ], + [ + 32.85991968060921, + 43.275244582649066 + ], + [ + 31.70863893213982, + 43.275244582649066 + ], + [ + 30.9877435102012, + 43.275244582649066 + ], + [ + 29.83646276173181, + 43.275244582649066 + ], + [ + 28.254796686732107, + 43.275244582649066 + ], + [ + 26.673130611732176, + 43.275244582649066 + ], + [ + 25.091464536732246, + 43.275244582649066 + ], + [ + 23.940183788263084, + 42.90941705509806 + ], + [ + 22.788903039793695, + 42.1562427336695 + ], + [ + 21.637622291324533, + 41.403068412241055 + ], + [ + 20.916726869385684, + 40.68217299030232 + ], + [ + 19.765446120916522, + 39.928998668873874 + ], + [ + 18.614165372447133, + 39.175824347445314 + ], + [ + 17.7749139857126, + 38.56252525713933 + ], + [ + 16.89262406632497, + 37.76631240305767 + ], + [ + 16.12869011173302, + 37.08845551377203 + ], + [ + 15.38627542346785, + 36.43211789081295 + ], + [ + 14.62234146887613, + 35.409952740302856 + ], + [ + 13.858407514284409, + 34.59222061989476 + ], + [ + 12.90080016275374, + 33.62385363520093 + ], + [ + 11.706480881631478, + 32.590928851527565 + ], + [ + 10.522921233672378, + 31.63332149999701 + ], + [ + 9.145688188774557, + 30.25608845509919 + ], + [ + 7.7576955107135745, + 28.868095777038093 + ], + [ + 6.574135862754474, + 27.684536129079106 + ], + [ + 5.4120954811219235, + 26.522495747446555 + ], + [ + 4.465247762754643, + 25.34969573265073 + ], + [ + 3.701313808162922, + 24.18765535101818 + ], + [ + 2.9588991198975236, + 23.273086532140724 + ], + [ + 2.227244064795741, + 22.541431477038714 + ], + [ + 1.732300939285551, + 21.809776421936704 + ], + [ + 1.3557137785712712, + 21.314833296426627 + ], + [ + 0.9898862510201525, + 20.938246135712347 + ], + [ + 0.5917798239795502, + 20.195831447447063 + ], + [ + 0.24747156275498128, + 19.851523186222607 + ], + [ + 0.17215413061217077, + 19.507214924998152 + ], + [ + -0.0645577989796493, + 18.850877302039066 + ], + [ + -0.40886606020421823, + 18.237578211732966 + ], + [ + -0.8177321204082091, + 17.473644257141245 + ], + [ + -1.4848293765305698, + 15.891978182141315 + ], + [ + -1.8829358035713994, + 14.697658901019054 + ], + [ + -2.9373798535712012, + 12.179904740815232 + ], + [ + -3.464601878571102, + 10.824190962243847 + ], + [ + -4.637401893367041, + 8.327956068366575 + ], + [ + -6.283625767346393, + 5.508932179591284 + ], + [ + -6.714011093876934, + 4.658921159693477 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 146, + "versionNonce": 274611857, + "index": "b0U", + "isDeleted": false, + "id": "b-YlSRdNX8T1CypWp0vgX", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1423.4991660821086, + "y": -804.0968577922937, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 42.952455587751274, + "height": 34.0112004290786, + "seed": 415069311, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271919549, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.3012697285714694 + ], + [ + 0, + 0.9468477183672803 + ], + [ + 0, + 2.119647733163106 + ], + [ + 0, + 3.357005546938467 + ], + [ + 0, + 4.960190888264947 + ], + [ + 0, + 6.724770727040209 + ], + [ + 0, + 7.660858812244214 + ], + [ + 0, + 9.791266178570595 + ], + [ + 0, + 10.684315731121501 + ], + [ + 0, + 11.168499223468416 + ], + [ + 0, + 11.835596479590777 + ], + [ + 0, + 12.793203831121332 + ], + [ + 0, + 13.320425856121233 + ], + [ + 0, + 13.686253383672238 + ], + [ + 0, + 14.288792840815063 + ], + [ + 0, + 14.708418534182329 + ], + [ + 0, + 15.095765328059883 + ], + [ + 0, + 15.418554322957789 + ], + [ + 0, + 15.75210295101897 + ], + [ + 0, + 16.38692130765162 + ], + [ + 0, + 17.07553783010053 + ], + [ + 0, + 17.796433252039265 + ], + [ + 0, + 18.506569040814725 + ], + [ + 0, + 19.550253457651365 + ], + [ + 0, + 21.078121366834807 + ], + [ + 0, + 22.336998446936718 + ], + [ + 0, + 24.338290215303914 + ], + [ + 0, + 24.693358109691644 + ], + [ + 0, + 25.403493898467104 + ], + [ + 0, + 26.113629687242565 + ], + [ + 0, + 26.823765476018025 + ], + [ + 0, + 27.533901264793485 + ], + [ + 0, + 28.222517787242396 + ], + [ + 0.3550678943877301, + 28.556066415303576 + ], + [ + 1.0221651505100908, + 28.556066415303576 + ], + [ + 1.3341945122449488, + 28.556066415303576 + ], + [ + 1.6247046076530296, + 28.556066415303576 + ], + [ + 1.9474936025508214, + 28.556066415303576 + ], + [ + 2.2918018637753903, + 28.556066415303576 + ], + [ + 2.6145908586734095, + 28.556066415303576 + ], + [ + 2.9373798535712012, + 28.556066415303576 + ], + [ + 3.2601688484692204, + 29.266202204079036 + ], + [ + 3.2601688484692204, + 29.599750832140217 + ], + [ + 3.582957843367012, + 30.256088455099302 + ], + [ + 3.9057468382650313, + 30.912426078058388 + ], + [ + 4.2608147326527614, + 31.24597470611957 + ], + [ + 4.615882627040492, + 31.6010426005073 + ], + [ + 4.970950521428222, + 32.31117838928276 + ], + [ + 5.648807410713744, + 32.989035278568394 + ], + [ + 6.240587234693294, + 33.311824273466414 + ], + [ + 6.563376229591313, + 33.41942060509905 + ], + [ + 6.617174395407574, + 33.77448849948678 + ], + [ + 6.864645958162782, + 34.0112004290786 + ], + [ + 7.187434953060574, + 34.0112004290786 + ], + [ + 7.477945048468655, + 34.0112004290786 + ], + [ + 7.811493676530063, + 34.0112004290786 + ], + [ + 8.188080837244115, + 34.0112004290786 + ], + [ + 8.510869832142134, + 34.0112004290786 + ], + [ + 8.801379927550215, + 34.0112004290786 + ], + [ + 9.134928555611395, + 34.0112004290786 + ], + [ + 9.511515716325675, + 34.0112004290786 + ], + [ + 9.834304711223695, + 34.0112004290786 + ], + [ + 10.135574439795164, + 34.0112004290786 + ], + [ + 10.469123067856344, + 34.0112004290786 + ], + [ + 11.136220323978705, + 34.0112004290786 + ], + [ + 11.523567117856146, + 34.0112004290786 + ], + [ + 11.846356112754165, + 34.0112004290786 + ], + [ + 12.169145107651957, + 34.0112004290786 + ], + [ + 12.491934102549976, + 34.0112004290786 + ], + [ + 12.803963464284607, + 34.0112004290786 + ], + [ + 13.137512092345787, + 34.0112004290786 + ], + [ + 13.180550624998887, + 33.68841143418058 + ], + [ + 13.492579986733517, + 33.3548628061194 + ], + [ + 13.847647881121247, + 33.33334353979285 + ], + [ + 13.879926780610958, + 33.02131417805822 + ], + [ + 13.879926780610958, + 32.677005916833764 + ], + [ + 13.879926780610958, + 32.31117838928276 + ], + [ + 14.234994674998688, + 31.97762976122158 + ], + [ + 14.590062569386419, + 31.633321499997123 + ], + [ + 14.945130463774149, + 31.289013238772668 + ], + [ + 15.300198358161879, + 30.923185711221663 + ], + [ + 15.655266252549609, + 30.557358183670658 + ], + [ + 16.01033414693734, + 30.191530656119767 + ], + [ + 16.36540204132507, + 29.82570312856876 + ], + [ + 17.05401856377398, + 29.481394867344306 + ], + [ + 17.72111581989634, + 29.13708660611985 + ], + [ + 18.05466444795752, + 28.771259078568846 + ], + [ + 18.37745344285554, + 28.082642556119936 + ], + [ + 18.90467546785544, + 27.749093928058755 + ], + [ + 19.23822409591662, + 27.609218696936296 + ], + [ + 19.50721492499838, + 27.24339116938529 + ], + [ + 19.862282819385882, + 27.017438872956745 + ], + [ + 20.28190851275326, + 27.017438872956745 + ], + [ + 20.615457140814442, + 27.017438872956745 + ], + [ + 20.992044301528722, + 26.7484480438751 + ], + [ + 21.31483329642674, + 26.41489941581392 + ], + [ + 21.64838192448792, + 26.070591154589465 + ], + [ + 21.971170919385713, + 25.737042526528285 + ], + [ + 22.26168101479402, + 25.67248472754875 + ], + [ + 22.5952296428552, + 25.457292064283365 + ], + [ + 22.907259004589832, + 25.091464536732474 + ], + [ + 23.262326898977562, + 24.94082967244674 + ], + [ + 23.649673692855004, + 24.68259847652837 + ], + [ + 24.219934250508004, + 24.338290215303914 + ], + [ + 24.661079210201933, + 24.241453516834554 + ], + [ + 25.016147104589663, + 23.628154426528454 + ], + [ + 25.371214998977393, + 23.54207736122237 + ], + [ + 25.737042526528285, + 23.26232689897745 + ], + [ + 26.350341616834385, + 22.918018637752994 + ], + [ + 26.834525109181186, + 22.562950743365263 + ], + [ + 27.114275571426106, + 21.938892019896002 + ], + [ + 27.469343465813836, + 21.530025959691898 + ], + [ + 27.824411360201566, + 21.164198432141006 + ], + [ + 28.878855410201595, + 20.08823511581454 + ], + [ + 29.212404038262775, + 19.743926854590086 + ], + [ + 29.890260927548297, + 19.055310332141175 + ], + [ + 30.600396716323758, + 18.657203905100346 + ], + [ + 31.26749397244612, + 18.33441491020244 + ], + [ + 32.41877472091551, + 17.204653428059714 + ], + [ + 32.77384261530324, + 17.204653428059714 + ], + [ + 33.12891050969097, + 16.83882590050871 + ], + [ + 33.4839784040787, + 16.117930478569974 + ], + [ + 34.19411419285416, + 15.397035056631239 + ], + [ + 34.90424998162939, + 15.031207529080348 + ], + [ + 35.25931787601712, + 14.665380001529343 + ], + [ + 35.61438577040485, + 13.944484579590608 + ], + [ + 36.30300229285376, + 13.245108423978422 + ], + [ + 36.97009954897635, + 12.900800162753967 + ], + [ + 37.30364817703753, + 12.534972635202962 + ], + [ + 37.63719680509871, + 11.835596479590777 + ], + [ + 37.97074543315989, + 11.211537756121515 + ], + [ + 37.97074543315989, + 10.877989128060221 + ], + [ + 38.21821699591487, + 10.576719399488866 + ], + [ + 38.54100599081289, + 10.243170771427685 + ], + [ + 38.83151608622097, + 9.94190104285633 + ], + [ + 39.44481517652707, + 8.790620294387054 + ], + [ + 39.97203720152697, + 8.058965239285044 + ], + [ + 41.45686657805754, + 5.950077139285213 + ], + [ + 42.220800532649264, + 4.766517491326113 + ], + [ + 42.780301457138876, + 3.593717476530287 + ], + [ + 42.952455587751274, + 2.6683890244895565 + ], + [ + 42.952455587751274, + 0.7531743214285598 + ], + [ + 42.952455587751274, + 0.7531743214285598 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 4, + "versionNonce": 433354623, + "index": "b0V", + "isDeleted": false, + "id": "XSIUWEJBiBhZhPD58zHEP", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1408.9951805780283, + "y": -845.1556179433103, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 0.0001, + "height": 0.0001, + "seed": 706383441, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271920454, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.0001, + 0.0001 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 20, + "versionNonce": 1855670815, + "index": "b0W", + "isDeleted": false, + "id": "sgQfjO_gtnfSWvTkEubgr", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1081.4181489224463, + "y": -147.69467703419105, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 0, + "height": 17.68883692040663, + "seed": 105767871, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271923435, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.32278899489801915 + ], + [ + 0, + 0.9576073515304415 + ], + [ + 0, + 1.5493871755099917 + ], + [ + 0, + 2.55003305969376 + ], + [ + 0, + 4.067141335714041 + ], + [ + 0, + 7.187434953060574 + ], + [ + 0, + 8.704543229080855 + ], + [ + 0, + 10.017218474999027 + ], + [ + 0, + 13.083713926529526 + ], + [ + 0, + 13.804609348468148 + ], + [ + 0, + 14.52550477040677 + ], + [ + 0, + 15.59070845356996 + ], + [ + 0, + 16.30084424234542 + ], + [ + 0, + 17.01098003112088 + ], + [ + 0, + 17.68883692040663 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 72, + "versionNonce": 1546162225, + "index": "b0X", + "isDeleted": false, + "id": "F-jFJemZPHsWuLt_fVGhI", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1083.075132429589, + "y": -124.94881252705022, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 40.961923452547126, + "height": 209.97424118110303, + "seed": 1446547039, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271928150, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.3120293617346306 + ], + [ + 0, + 1.409511944387532 + ], + [ + 0, + 4.0671413357138135 + ], + [ + 0, + 7.822253309693224 + ], + [ + 0, + 12.664088233162147 + ], + [ + 0, + 17.8179525183657 + ], + [ + 0, + 23.294605798467273 + ], + [ + 0, + 27.867449892854438 + ], + [ + 0, + 31.69787929897666 + ], + [ + 0, + 36.7764261520374 + ], + [ + 0, + 41.854973005098145 + ], + [ + 0, + 46.93351985815889 + ], + [ + 0, + 53.56145388672962 + ], + [ + 0, + 60.103310849994386 + ], + [ + 0, + 63.93374025611661 + ], + [ + 0, + 69.92685592805469 + ], + [ + 0, + 76.79150188621725 + ], + [ + 0, + 79.86875697091091 + ], + [ + 0, + 85.13021758774721 + ], + [ + 0, + 92.5113259377465 + ], + [ + 0, + 98.05253701682773 + ], + [ + 0, + 103.24943983468438 + ], + [ + 0, + 108.42482338621448 + ], + [ + 0, + 113.12678307856095 + ], + [ + -0.3658275275508913, + 117.6243097408053 + ], + [ + -1.2050789142856502, + 122.06803823723362 + ], + [ + -2.1626862658160917, + 126.03834287447808 + ], + [ + -3.1633321499996327, + 130.41751357192675 + ], + [ + -4.185497300509724, + 134.97959803315075 + ], + [ + -5.196902817856653, + 139.5201632280482 + ], + [ + -6.219067968366744, + 144.5018733826396 + ], + [ + -7.628579912754503, + 149.1069963765167 + ], + [ + -9.102649656121685, + 153.63680193825098 + ], + [ + -10.662796464794837, + 158.71534879131173 + ], + [ + -12.664088233162147, + 163.87997270967867 + ], + [ + -14.654620368366068, + 168.40977827141296 + ], + [ + -16.60211397091689, + 172.3478040091677 + ], + [ + -18.07618371428407, + 176.16747378212654 + ], + [ + -19.528734191324702, + 179.99790318824853 + ], + [ + -21.325592929589902, + 183.22579313722804 + ], + [ + -23.068653502038615, + 185.82962436273783 + ], + [ + -24.843992973977265, + 189.76765010049257 + ], + [ + -25.242099401018095, + 190.55310332141084 + ], + [ + -26.500976481120006, + 192.62971252192096 + ], + [ + -27.759853561221917, + 194.70632172243086 + ], + [ + -28.588345314793287, + 196.78293092294098 + ], + [ + -29.416837068364657, + 198.85954012345087 + ], + [ + -30.21304992244609, + 200.43044656528764 + ], + [ + -31.00926277652775, + 202.00135300712418 + ], + [ + -31.80547563060918, + 203.57225944896072 + ], + [ + -32.55864995203774, + 204.71278056426672 + ], + [ + -32.92447747958886, + 205.42291635304218 + ], + [ + -33.29030500713975, + 206.13305214181764 + ], + [ + -33.65613253469064, + 206.8431879305931 + ], + [ + -33.65613253469064, + 207.55332371936856 + ], + [ + -34.02196006224176, + 208.36029620661338 + ], + [ + -34.38778758979265, + 209.07043199538884 + ], + [ + -34.59222061989476, + 209.51157695508255 + ], + [ + -34.9365288811191, + 209.84512558314373 + ], + [ + -35.28083714234367, + 209.97424118110303 + ], + [ + -35.62514540356801, + 209.97424118110303 + ], + [ + -35.98021329795574, + 209.97424118110303 + ], + [ + -36.32452155918031, + 209.97424118110303 + ], + [ + -36.66882982040465, + 209.97424118110303 + ], + [ + -37.17453257907823, + 209.80208705049085 + ], + [ + -37.84162983520059, + 209.05967236222546 + ], + [ + -39.229622513261575, + 206.7571108652869 + ], + [ + -40.961923452547126, + 203.79821174538938 + ], + [ + -40.961923452547126, + 203.79821174538938 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 83, + "versionNonce": 713459601, + "index": "b0Y", + "isDeleted": false, + "id": "MjXL8zTDSUKxDIt25WA8h", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1048.0632861163272, + "y": -112.48915732399018, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 89.5309075515222, + "height": 181.22450136886073, + "seed": 930412529, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271929726, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.1943192811222616, + 0.39810642704082966 + ], + [ + 2.388638562244523, + 1.7538202056121008 + ], + [ + 2.388638562244523, + 3.6475156423466615 + ], + [ + 2.388638562244523, + 4.960190888264833 + ], + [ + 2.388638562244523, + 6.767809259693195 + ], + [ + 5.810201908162526, + 16.61287360408005 + ], + [ + 7.069078988264437, + 20.1850718142839 + ], + [ + 8.919735892345898, + 24.790194808161004 + ], + [ + 10.447603801529567, + 28.771259078568846 + ], + [ + 11.684961615304928, + 32.6985251831602 + ], + [ + 15.76286258418213, + 41.747376673465624 + ], + [ + 17.99010664897787, + 46.62149049642426 + ], + [ + 20.680014939793864, + 52.93739516326036 + ], + [ + 23.649673692854776, + 59.145703498463945 + ], + [ + 26.027552621936138, + 63.76158612550421 + ], + [ + 30.61115634948669, + 73.61741010305445 + ], + [ + 32.66624628367026, + 78.74975512193146 + ], + [ + 34.68905731836389, + 83.46247444744131 + ], + [ + 36.636550920914715, + 87.50809651682857 + ], + [ + 40.35938399540419, + 95.31959019335864 + ], + [ + 42.005607869383766, + 99.8924342877458 + ], + [ + 43.49043724591411, + 103.61526736223527 + ], + [ + 44.84615102448538, + 106.88619584386765 + ], + [ + 46.19110516989349, + 110.07104726019384 + ], + [ + 47.48226114948534, + 112.7394362846835 + ], + [ + 49.3329180535668, + 118.09773359998917 + ], + [ + 50.13989054081162, + 120.18510243366245 + ], + [ + 52.56080800254608, + 123.92945477447824 + ], + [ + 53.81968508264799, + 126.87759426121283 + ], + [ + 54.605138303566264, + 127.6630474821311 + ], + [ + 55.777938318361976, + 129.23395392396765 + ], + [ + 56.563391539280246, + 130.8048603658042 + ], + [ + 57.811508986218996, + 132.8814695663143 + ], + [ + 59.059626433157746, + 134.9580787668242 + ], + [ + 60.23242644795346, + 136.52898520866074 + ], + [ + 61.40522646274917, + 138.0998916504975 + ], + [ + 62.57802647754511, + 139.67079809233405 + ], + [ + 64.14893291938165, + 141.2417045341706 + ], + [ + 65.32173293417736, + 142.81261097600714 + ], + [ + 66.10718615509586, + 144.3835174178439 + ], + [ + 67.27998616989157, + 145.95442385968045 + ], + [ + 68.45278618468728, + 147.525330301517 + ], + [ + 69.62558619948322, + 149.09623674335353 + ], + [ + 70.79838621427893, + 150.66714318519007 + ], + [ + 71.80979173162586, + 152.47476155661866 + ], + [ + 73.12246697754404, + 154.46529369182235 + ], + [ + 74.23070919336033, + 156.57418179182218 + ], + [ + 75.04844131376831, + 158.51091576120984 + ], + [ + 75.99528903213559, + 159.96346623825048 + ], + [ + 77.18960831325808, + 161.1793047856993 + ], + [ + 78.23329273009472, + 162.54577819743395 + ], + [ + 79.01874595101299, + 164.12744427243388 + ], + [ + 79.81495880509442, + 165.92430301069885 + ], + [ + 80.63269092550263, + 167.8287580805968 + ], + [ + 81.43966341274745, + 169.5395397535558 + ], + [ + 83.22576251784926, + 172.62755447141262 + ], + [ + 84.3985625326452, + 174.0155471494736 + ], + [ + 85.37768915050219, + 175.60797285763692 + ], + [ + 86.15238273825707, + 176.9529270030448 + ], + [ + 86.88403779335908, + 177.856736188759 + ], + [ + 87.37898091886927, + 178.57763161069784 + ], + [ + 87.7448084464204, + 179.29852703263646 + ], + [ + 88.09987634080812, + 180.0194224545753 + ], + [ + 88.21823230560403, + 180.49284631375872 + ], + [ + 88.47646350152218, + 180.61120227855463 + ], + [ + 88.81001212958336, + 180.61120227855463 + ], + [ + 89.19735892346102, + 180.61120227855463 + ], + [ + 89.52014791835882, + 180.61120227855463 + ], + [ + 89.5309075515222, + 180.89095274079955 + ], + [ + 89.5309075515222, + 181.22450136886073 + ], + [ + 89.5309075515222, + 180.61120227855463 + ], + [ + 89.17583965713447, + 179.59979676120793 + ], + [ + 88.01379927550192, + 177.64154352549372 + ], + [ + 87.6156928484611, + 176.84533067141228 + ], + [ + 86.81947999437966, + 175.26366459641235 + ], + [ + 86.0663056729511, + 174.1123838479432 + ], + [ + 85.31313135152254, + 172.9611030994738 + ], + [ + 84.51691849744111, + 171.37943702447387 + ], + [ + 83.72070564335945, + 169.79777094947417 + ], + [ + 83.72070564335945, + 169.79777094947417 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 37, + "versionNonce": 63791825, + "index": "b0Z", + "isDeleted": false, + "id": "PCzP-csKchDVbaMYcVYHk", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1037.8631538775526, + "y": 24.222741648446117, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 93.52273145509321, + "height": 0.6670972561223607, + "seed": 1803851601, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271930858, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.33354862806118035 + ], + [ + 0.6348183566324224, + -0.6670972561223607 + ], + [ + 2.3240807632651013, + -0.6670972561223607 + ], + [ + 4.282333998979084, + -0.6670972561223607 + ], + [ + 6.983001922958465, + -0.6670972561223607 + ], + [ + 10.167853339284648, + -0.6670972561223607 + ], + [ + 12.87928089642719, + -0.6670972561223607 + ], + [ + 16.11793047856986, + -0.6670972561223607 + ], + [ + 21.842055321426415, + -0.6670972561223607 + ], + [ + 23.133211301018036, + -0.6670972561223607 + ], + [ + 30.06241505816024, + -0.6670972561223607 + ], + [ + 33.81752703213965, + -0.6670972561223607 + ], + [ + 36.991618815302445, + -0.6670972561223607 + ], + [ + 42.74802255764894, + -0.6670972561223607 + ], + [ + 48.50442629999543, + -0.6670972561223607 + ], + [ + 51.66775844999506, + -0.6670972561223607 + ], + [ + 58.015942016321105, + -0.6670972561223607 + ], + [ + 61.1900337994839, + -0.6670972561223607 + ], + [ + 64.36412558264692, + -0.6670972561223607 + ], + [ + 67.88252562703428, + -0.6670972561223607 + ], + [ + 70.46483758621775, + -0.6670972561223607 + ], + [ + 72.70284128417688, + -0.6670972561223607 + ], + [ + 78.57760099131906, + -0.6670972561223607 + ], + [ + 82.84917535713498, + -0.6670972561223607 + ], + [ + 84.75363042703293, + -0.6670972561223607 + ], + [ + 87.33594238621617, + -0.6670972561223607 + ], + [ + 88.3150690040734, + -0.6670972561223607 + ], + [ + 89.26191672244067, + -0.6670972561223607 + ], + [ + 90.13344700866492, + -0.6670972561223607 + ], + [ + 91.57523785254239, + -0.6670972561223607 + ], + [ + 92.3068929076444, + -0.6670972561223607 + ], + [ + 93.02778832958302, + -0.6670972561223607 + ], + [ + 93.52273145509321, + -0.6670972561223607 + ], + [ + 93.52273145509321, + -0.6670972561223607 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 87, + "versionNonce": 125588913, + "index": "b0a", + "isDeleted": false, + "id": "PqVr-ugoiC_9_9D1Ap5Xx", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1144.74934972142, + "y": -22.51710481277405, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 16.160969011223187, + "height": 169.30282782396398, + "seed": 985506449, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271932310, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.3120293617346306 + ], + [ + 0, + -0.6348183566326497 + ], + [ + 0, + -0.3120293617346306 + ], + [ + 0, + 2.5607926928569213 + ], + [ + 0, + 5.885519340305564 + ], + [ + 0, + 7.962128540815684 + ], + [ + 0, + 10.544440499999155 + ], + [ + 0, + 14.374869906121148 + ], + [ + 0, + 18.20529931224314 + ], + [ + 0, + 22.035728718365363 + ], + [ + 0, + 24.930070039283464 + ], + [ + 0, + 33.15042977601729 + ], + [ + 0, + 37.93846653366995 + ], + [ + 0, + 40.929644553057415 + ], + [ + 0, + 44.60943909489379 + ], + [ + 0, + 54.00259884642355 + ], + [ + 0, + 58.145057614280404 + ], + [ + 0, + 62.954613638259616 + ], + [ + 0, + 71.32560823927906 + ], + [ + 0, + 77.0174541826459 + ], + [ + 0, + 82.30043406580876 + ], + [ + 0, + 87.49733688366541 + ], + [ + 0, + 92.24233510866497 + ], + [ + 0, + 96.34175534386873 + ], + [ + 0.2905100954083082, + 100.53801227754184 + ], + [ + 0.7962128540816593, + 104.64819214590875 + ], + [ + 1.3019156127550104, + 108.1773518234595 + ], + [ + 1.7645798387754894, + 111.41600140560195 + ], + [ + 2.227244064795741, + 114.27806382703034 + ], + [ + 2.6576293913262816, + 116.55910605764234 + ], + [ + 3.098774351020211, + 118.67875379080533 + ], + [ + 3.5291596775507514, + 120.78764189080516 + ], + [ + 3.948785370918131, + 122.5307024632541 + ], + [ + 4.336132164795572, + 124.13388780458035 + ], + [ + 4.734238591836402, + 125.72631351274345 + ], + [ + 5.121585385713843, + 127.32949885406993 + ], + [ + 5.519691812754672, + 128.92192456223302 + ], + [ + 5.907038606632113, + 130.50359063723295 + ], + [ + 5.971596405611763, + 131.73018881784492 + ], + [ + 6.283625767346393, + 132.52640167192658 + ], + [ + 6.6386936617341235, + 133.22577782753865 + ], + [ + 6.670972561224062, + 133.92515398315095 + ], + [ + 6.670972561224062, + 134.6352897719264 + ], + [ + 6.972242289795304, + 135.34542556070187 + ], + [ + 7.327310184183034, + 135.7435319877427 + ], + [ + 7.3703487168361335, + 136.12011914845675 + ], + [ + 7.703897344897314, + 136.44290814335477 + ], + [ + 8.037445972958494, + 136.7656971382528 + ], + [ + 8.392513867346224, + 137.08848613315058 + ], + [ + 8.747581761733954, + 137.4435540275383 + ], + [ + 8.747581761733954, + 138.13217054998722 + ], + [ + 9.102649656121685, + 138.82078707243613 + ], + [ + 9.457717550509415, + 139.5309228612116 + ], + [ + 9.812785444897145, + 140.24105864998705 + ], + [ + 10.264690037754235, + 141.04803113723187 + ], + [ + 10.619757932141965, + 141.86576325764008 + ], + [ + 10.985585459692857, + 142.5866586795787 + ], + [ + 11.340653354080587, + 143.30755410151733 + ], + [ + 11.717240514794867, + 144.1790843877418 + ], + [ + 12.104587308672535, + 145.49175963365997 + ], + [ + 12.491934102549976, + 146.92279084437428 + ], + [ + 13.008396494386716, + 148.09559085917 + ], + [ + 13.610935951529427, + 149.66649730100653 + ], + [ + 13.836888247958086, + 151.77538540100636 + ], + [ + 14.019802011733418, + 153.64756157141437 + ], + [ + 14.407148805611087, + 155.25074691274085 + ], + [ + 14.816014865815077, + 156.8646918872305 + ], + [ + 15.203361659692519, + 158.23116529896492 + ], + [ + 15.386275423468078, + 159.39320568059748 + ], + [ + 15.61222771989651, + 160.79195799182185 + ], + [ + 15.999574513774178, + 162.39514333314833 + ], + [ + 16.160969011223187, + 163.72933784539305 + ], + [ + 16.160969011223187, + 164.62238739794407 + ], + [ + 16.160969011223187, + 165.33252318671953 + ], + [ + 16.160969011223187, + 166.05341860865815 + ], + [ + 16.160969011223187, + 166.77431403059677 + ], + [ + 16.160969011223187, + 167.49520945253562 + ], + [ + 16.160969011223187, + 168.21610487447424 + ], + [ + 16.160969011223187, + 168.66800946733133 + ], + [ + 16.160969011223187, + 168.4420571709029 + ], + [ + 16.160969011223187, + 166.38696723671933 + ], + [ + 14.805255232651689, + 162.6964130617198 + ], + [ + 11.566605650509246, + 158.80142585661793 + ], + [ + 11.566605650509246, + 158.80142585661793 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 186, + "versionNonce": 1986205055, + "index": "b0b", + "isDeleted": false, + "id": "mdwu6G0y__HWi672-wrRR", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1152.4962855989704, + "y": 51.26169978772941, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 53.09878966070937, + "height": 67.85024672754457, + "seed": 1424895519, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271934676, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.7531743214285598 + ], + [ + 0, + -1.8183780045917501 + ], + [ + 0, + -2.141166999489542 + ], + [ + 0, + -2.700667923979381 + ], + [ + 0, + -3.4215633459180026 + ], + [ + 0, + -3.862708305611932 + ], + [ + 0, + -4.5620844612240035 + ], + [ + 0, + -5.186143184693492 + ], + [ + 0, + -6.563376229591313 + ], + [ + 0, + -7.284271651529934 + ], + [ + 0, + -9.640631314284974 + ], + [ + 0, + -10.415324902039856 + ], + [ + 0, + -11.867875379080488 + ], + [ + 0, + -12.556491901529398 + ], + [ + 0, + -13.944484579590608 + ], + [ + 0.7101357887754602, + -15.160323127039419 + ], + [ + 1.0544440499998018, + -16.236286443365998 + ], + [ + 1.3987523112243707, + -17.31224975969235 + ], + [ + 1.3987523112243707, + -18.10846261377378 + ], + [ + 1.7538202056121008, + -19.25974336224317 + ], + [ + 2.496234893877272, + -20.411024110712333 + ], + [ + 2.883581687754713, + -21.562304859181722 + ], + [ + 3.2709284816323816, + -22.713585607651112 + ], + [ + 4.056381702550652, + -24.295251682650814 + ], + [ + 4.841834923468923, + -25.876917757650745 + ], + [ + 5.659567043876905, + -27.964286591324026 + ], + [ + 6.477299164285114, + -30.051655424997307 + ], + [ + 7.262752385203385, + -31.63332149999701 + ], + [ + 8.048205606121655, + -33.21498757499694 + ], + [ + 8.952014791835836, + -35.03336557958869 + ], + [ + 9.845064344386856, + -36.72262798622114 + ], + [ + 10.587479032652027, + -37.74479313673123 + ], + [ + 11.179258856631577, + -38.47644819183324 + ], + [ + 11.545086384182696, + -39.06822801581279 + ], + [ + 11.900154278570426, + -39.44481517652707 + ], + [ + 12.265981806121317, + -39.961277568363585 + ], + [ + 12.771684564794668, + -40.53153812601681 + ], + [ + 13.320425856121119, + -40.735971156118694 + ], + [ + 13.740051549488498, + -40.735971156118694 + ], + [ + 14.073600177549679, + -40.91888491989425 + ], + [ + 14.181196509182428, + -41.284712447445145 + ], + [ + 14.40714880561086, + -41.467626211220704 + ], + [ + 14.74069743367204, + -41.467626211220704 + ], + [ + 15.07424606173322, + -41.467626211220704 + ], + [ + 15.4077946897944, + -41.682818874485974 + ], + [ + 15.719824051529258, + -42.048646402036866 + ], + [ + 17.00022039795749, + -42.199281266322714 + ], + [ + 17.72111581989634, + -42.199281266322714 + ], + [ + 18.44201124183496, + -42.446752829077695 + ], + [ + 19.16290666377381, + -42.812580356628814 + ], + [ + 19.883802085712432, + -42.930936321424724 + ], + [ + 20.604697507651053, + -43.199927150506255 + ], + [ + 21.659141557651083, + -43.56575467805715 + ], + [ + 23.143970934181425, + -43.66259137652651 + ], + [ + 24.747156275507905, + -43.66259137652651 + ], + [ + 26.759207677038376, + -43.66259137652651 + ], + [ + 28.825057244385107, + -43.66259137652651 + ], + [ + 30.44976185203791, + -43.66259137652651 + ], + [ + 32.39725545458873, + -43.66259137652651 + ], + [ + 34.47386465509885, + -43.66259137652651 + ], + [ + 36.59351238826184, + -43.66259137652651 + ], + [ + 38.72391975458822, + -43.339802381628715 + ], + [ + 40.391662894894125, + -42.629666592853255 + ], + [ + 41.585982176016614, + -41.898011537751245 + ], + [ + 43.727149175506156, + -39.83216197040451 + ], + [ + 44.0714574367305, + -39.48785370918017 + ], + [ + 45.20121891887334, + -37.56187937295567 + ], + [ + 45.58856571275078, + -36.7764261520374 + ], + [ + 46.37401893366928, + -35.20551971020086 + ], + [ + 47.19175105407726, + -33.12891050969097 + ], + [ + 48.00948317448524, + -31.052301309180848 + ], + [ + 48.79493639540374, + -29.481394867344306 + ], + [ + 49.58038961632201, + -27.910488425507765 + ], + [ + 50.36584283724028, + -26.339581983670996 + ], + [ + 51.15129605815855, + -24.768675541834455 + ], + [ + 51.93674927907682, + -23.197769099997913 + ], + [ + 52.32409607295426, + -22.057247984691912 + ], + [ + 52.32409607295426, + -20.91672686938591 + ], + [ + 52.32409607295426, + -19.34582042754937 + ], + [ + 52.71144286683193, + -17.7749139857126 + ], + [ + 53.09878966070937, + -16.40844057397817 + ], + [ + 53.09878966070937, + -15.02044789591696 + ], + [ + 53.09878966070937, + -13.557137785713167 + ], + [ + 53.09878966070937, + -12.395097404080616 + ], + [ + 53.09878966070937, + -11.243816655611226 + ], + [ + 53.09878966070937, + -10.081776273978676 + ], + [ + 53.09878966070937, + -8.930495525509514 + ], + [ + 53.09878966070937, + -7.940609274489134 + ], + [ + 53.09878966070937, + -6.498818430611664 + ], + [ + 53.09878966070937, + -5.777923008673042 + ], + [ + 53.09878966070937, + -5.057027586734193 + ], + [ + 53.09878966070937, + -4.336132164795572 + ], + [ + 53.09878966070937, + -3.6152367428569505 + ], + [ + 53.09878966070937, + -2.8943413209181017 + ], + [ + 53.09878966070937, + -2.1734458989794803 + ], + [ + 53.09878966070937, + -1.4525504770406314 + ], + [ + 53.09878966070937, + -0.73165505510201 + ], + [ + 53.09878966070937, + -0.010759633163388571 + ], + [ + 53.09878966070937, + 0.7101357887754602 + ], + [ + 52.86207773111755, + 1.4310312107140817 + ], + [ + 52.2272593744849, + 2.4531963612241725 + ], + [ + 51.71079698264816, + 3.604477109693562 + ], + [ + 51.32345018877072, + 4.454488129591482 + ], + [ + 50.69939146530146, + 5.175383551530103 + ], + [ + 50.23672723928098, + 5.896278973468725 + ], + [ + 49.83862081224038, + 6.9399633903053655 + ], + [ + 49.15000428979147, + 8.091244138774755 + ], + [ + 48.40758960152607, + 8.919735892346125 + ], + [ + 47.68669417958745, + 9.629871681121585 + ], + [ + 46.9657987576486, + 10.340007469897046 + ], + [ + 46.25566296887337, + 11.039383625509117 + ], + [ + 45.545527180097906, + 11.738759781121416 + ], + [ + 45.12590148673053, + 12.448895569896877 + ], + [ + 44.760073959179635, + 13.15903135867211 + ], + [ + 44.103736336220436, + 13.86916714744757 + ], + [ + 43.393600547444976, + 14.568543303059869 + ], + [ + 42.296117964792074, + 15.31095799132504 + ], + [ + 40.779009688771794, + 16.41920020714133 + ], + [ + 38.17517846326177, + 18.162260779590042 + ], + [ + 37.37896560918011, + 18.54960757346771 + ], + [ + 36.22768486071095, + 19.292022261732882 + ], + [ + 35.07640411224156, + 20.034436949998053 + ], + [ + 33.49473803724186, + 20.819890170916324 + ], + [ + 31.91307196224193, + 21.605343391834595 + ], + [ + 30.761791213772767, + 22.347758080099993 + ], + [ + 30.04089579183392, + 23.057893868875453 + ], + [ + 28.889615043364756, + 23.412961763263183 + ], + [ + 27.738334294895367, + 23.412961763263183 + ], + [ + 26.587053546426205, + 23.800308557140625 + ], + [ + 25.435772797956815, + 24.187655351018066 + ], + [ + 24.714877376018194, + 24.187655351018066 + ], + [ + 23.993981954079345, + 24.187655351018066 + ], + [ + 23.273086532140724, + 24.187655351018066 + ], + [ + 22.455354411732515, + 24.187655351018066 + ], + [ + 21.616103024997983, + 24.187655351018066 + ], + [ + 20.884447969895973, + 24.187655351018066 + ], + [ + 20.16355254795735, + 24.187655351018066 + ], + [ + 19.43189749285534, + 24.187655351018066 + ], + [ + 18.70024243775333, + 24.187655351018066 + ], + [ + 17.96858738265132, + 24.187655351018066 + ], + [ + 17.38756719183516, + 24.187655351018066 + ], + [ + 16.95718186530462, + 24.187655351018066 + ], + [ + 16.45147910663104, + 24.187655351018066 + ], + [ + 15.795141483672069, + 24.187655351018066 + ], + [ + 15.063486428570059, + 23.993981954079345 + ], + [ + 14.095119443876229, + 23.423721396426345 + ], + [ + 12.933079062243678, + 22.659787441834624 + ], + [ + 12.007750610202947, + 21.917372753569452 + ], + [ + 11.254576288774388, + 20.938246135712234 + ], + [ + 10.490642334182667, + 19.991398417344953 + ], + [ + 9.468477183672576, + 19.17366629693697 + ], + [ + 8.306436802040025, + 18.15150114642688 + ], + [ + 7.650099179080826, + 17.25845159387586 + ], + [ + 7.273512018366773, + 16.52679653877385 + ], + [ + 6.9076844908156545, + 15.795141483672069 + ], + [ + 6.531097330101375, + 15.321717624488429 + ], + [ + 6.165269802550483, + 14.945130463774149 + ], + [ + 5.788682641836203, + 14.310312107141499 + ], + [ + 5.422855114285312, + 13.858407514284409 + ], + [ + 5.336778048979113, + 13.481820353570129 + ], + [ + 5.336778048979113, + 12.847001996937479 + ], + [ + 5.336778048979113, + 12.136866208162019 + ], + [ + 5.336778048979113, + 11.415970786223397 + ], + [ + 5.035508320407644, + 10.705834997447937 + ], + [ + 4.669680792856752, + 9.619112047958197 + ], + [ + 4.605122993877103, + 8.457071666325646 + ], + [ + 4.605122993877103, + 7.6716184454073755 + ], + [ + 4.605122993877103, + 6.961482656631915 + ], + [ + 4.605122993877103, + 6.251346867856455 + ], + [ + 4.605122993877103, + 5.476653280101573 + ], + [ + 4.605122993877103, + 4.346891797958733 + ], + [ + 4.605122993877103, + 3.260168848468993 + ], + [ + 4.605122993877103, + 2.5392734265303716 + ], + [ + 4.605122993877103, + 1.8398972709180725 + ], + [ + 4.605122993877103, + 1.1728000147957118 + ], + [ + 4.271574365815923, + 0.5057027586733511 + ], + [ + 3.582957843367012, + 0.17215413061217077 + ], + [ + 3.217130315816121, + -0.19367339693872054 + ], + [ + 2.4209174617344615, + -0.9468477183672803 + ], + [ + 1.1297614821428397, + -2.2380036979591296 + ], + [ + 0.3765871607142799, + -3.3892844464282916 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 65, + "versionNonce": 1673278897, + "index": "b0c", + "isDeleted": false, + "id": "GLYhwFHUA_N691_2o5-Ch", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1233.042899459167, + "y": 6.297192798447895, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 37.32516744336385, + "height": 51.34496945509727, + "seed": 1783431615, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271936375, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.6348183566324224 + ], + [ + 0, + 1.9259743362242716 + ], + [ + 0, + 3.8196697729588323 + ], + [ + 0, + 7.434906515815555 + ], + [ + 0, + 15.09576532805977 + ], + [ + 0, + 19.162906663773583 + ], + [ + 0, + 23.369923230610084 + ], + [ + 0, + 26.673130611732176 + ], + [ + 0, + 32.55864995203774 + ], + [ + 0, + 36.00173256428229 + ], + [ + 0, + 36.78718578520056 + ], + [ + 0, + 38.358092227037105 + ], + [ + 0, + 39.928998668873874 + ], + [ + 0, + 41.069519784179874 + ], + [ + 0, + 41.779655572955335 + ], + [ + 0, + 42.489791361730795 + ], + [ + 0, + 43.19992715050603 + ], + [ + 0, + 43.91006293928149 + ], + [ + 0, + 44.62019872805695 + ], + [ + 0, + 45.33033451683241 + ], + [ + 0, + 46.04047030560787 + ], + [ + 0, + 46.75060609438333 + ], + [ + 0, + 47.46074188315879 + ], + [ + 0.10759633163252147, + 48.27847400356677 + ], + [ + 0.5702605576530004, + 49.10696575713814 + ], + [ + 1.5171082760202808, + 50.41964100305654 + ], + [ + 2.001291768367082, + 50.77470889744427 + ], + [ + 2.582311959183471, + 51.129776791832 + ], + [ + 3.023456918877173, + 51.34496945509727 + ], + [ + 3.518400044387363, + 51.34496945509727 + ], + [ + 3.991823903571003, + 51.34496945509727 + ], + [ + 4.400689963774994, + 51.34496945509727 + ], + [ + 4.734238591836174, + 51.34496945509727 + ], + [ + 5.2937395163260135, + 51.34496945509727 + ], + [ + 6.186789068877033, + 51.34496945509727 + ], + [ + 6.993761556121854, + 51.34496945509727 + ], + [ + 7.714656978060475, + 51.34496945509727 + ], + [ + 8.435552399999096, + 51.34496945509727 + ], + [ + 9.156447821937945, + 51.34496945509727 + ], + [ + 9.651390947448135, + 51.34496945509727 + ], + [ + 10.458363434692956, + 51.34496945509727 + ], + [ + 11.824836846427388, + 51.34496945509727 + ], + [ + 12.879280896427417, + 51.34496945509727 + ], + [ + 13.91220568010067, + 51.05445935968919 + ], + [ + 15.063486428570059, + 50.65635293264836 + ], + [ + 15.90273781530459, + 50.26900613877069 + ], + [ + 16.95718186530462, + 49.9031786112198 + ], + [ + 18.45277087499835, + 49.18228318928118 + ], + [ + 20.034436949998053, + 48.07404097346489 + ], + [ + 21.626862658161144, + 47.19175105407726 + ], + [ + 23.595875527038515, + 46.02971067244471 + ], + [ + 25.694003993875185, + 44.76007395917941 + ], + [ + 27.770613194385078, + 43.83474550713868 + ], + [ + 29.8041838622421, + 43.02777301989386 + ], + [ + 31.49344626887455, + 42.22080053264904 + ], + [ + 32.72004444948675, + 41.456866578057316 + ], + [ + 33.84980593162959, + 41.015721618363386 + ], + [ + 35.86185733315983, + 40.284066563261604 + ], + [ + 36.61503165458839, + 40.208749131118566 + ], + [ + 36.97009954897612, + 40.208749131118566 + ], + [ + 37.32516744336385, + 40.208749131118566 + ], + [ + 37.32516744336385, + 40.208749131118566 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 4, + "versionNonce": 1482485375, + "index": "b0d", + "isDeleted": false, + "id": "-QF3MQt8o4Z_gQ7BaDp7l", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1239.7676701862072, + "y": -27.068429640834893, + "strokeColor": "#ffc9c9", + "backgroundColor": "transparent", + "width": 0.0001, + "height": 0.0001, + "seed": 213280593, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271937117, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.0001, + 0.0001 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 34, + "versionNonce": 1348278271, + "index": "b0f", + "isDeleted": false, + "id": "NeYMnOvmdj1SUxkJAoHi0", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1833.570305200438, + "y": -181.13561690561642, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 85.10869832142066, + "height": 141.04803113723187, + "seed": 1575102431, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271963268, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.33354862806118035 + ], + [ + 0, + -1.312675245918399 + ], + [ + 0, + -3.7981505066322825 + ], + [ + 0, + -5.659567043877132 + ], + [ + 0, + -7.854532209182935 + ], + [ + 0, + -11.921673544896976 + ], + [ + 2.43167709489785, + -21.992690185712263 + ], + [ + 9.199486354591045, + -34.96880778060904 + ], + [ + 13.417262554590707, + -42.231560165812425 + ], + [ + 17.80719288520254, + -49.33291805356703 + ], + [ + 22.509152577549003, + -56.17604474540303 + ], + [ + 27.189593003568916, + -62.92233473876968 + ], + [ + 35.98021329795597, + -76.90985785101338 + ], + [ + 41.360029879587955, + -83.98969647244121 + ], + [ + 46.5246537979549, + -90.99421766172645 + ], + [ + 50.83926669642392, + -97.9449406851952 + ], + [ + 54.73425390152556, + -103.66906552805176 + ], + [ + 58.56468330764778, + -108.72609311478595 + ], + [ + 62.793219140810606, + -114.12742896274472 + ], + [ + 67.11859167244279, + -119.23825471529517 + ], + [ + 71.04585777703437, + -124.09084927192748 + ], + [ + 74.37058442448301, + -128.48077960253931 + ], + [ + 76.96365601682965, + -132.06373744590633 + ], + [ + 78.8250725540745, + -134.49541454080395 + ], + [ + 80.4497771617273, + -136.2277154800895 + ], + [ + 81.7194138749926, + -137.83090082141598 + ], + [ + 82.55866526172713, + -139.0790182683545 + ], + [ + 83.27956068366575, + -139.88599075559932 + ], + [ + 83.98969647244121, + -140.3056164489667 + ], + [ + 85.10869832142066, + -141.04803113723187 + ], + [ + 85.10869832142066, + -141.04803113723187 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 46, + "versionNonce": 1192399327, + "index": "b0g", + "isDeleted": false, + "id": "7ydPFQ-egXBjzu_DeP_QO", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1798.0204772290128, + "y": -324.8412774341746, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 204.85265579538918, + "height": 166.94646816120894, + "seed": 579363903, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271964509, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.3120293617346306, + 0 + ], + [ + 0.9360880852038918, + 0 + ], + [ + 2.528513793366983, + 0 + ], + [ + 6.423500998468853, + 0 + ], + [ + 8.898216626019575, + 0 + ], + [ + 16.58059470459034, + 0 + ], + [ + 18.45277087499835, + 0.9360880852038918 + ], + [ + 28.69594164642581, + 6.563376229591086 + ], + [ + 34.69981695152728, + 10.383046002549918 + ], + [ + 47.49302078264873, + 18.17302041275343 + ], + [ + 54.508301605096904, + 22.853460838773344 + ], + [ + 61.52358242754531, + 28.114921455609647 + ], + [ + 76.47947252448262, + 39.444815176526845 + ], + [ + 83.80678270866565, + 45.56704644642423 + ], + [ + 98.34304711223581, + 58.865953036219025 + ], + [ + 105.67035729641884, + 66.37617698417739 + ], + [ + 120.0775061020297, + 79.63204504131909 + ], + [ + 126.9636713265188, + 85.93719007499203 + ], + [ + 136.98088980151783, + 96.14808194692978 + ], + [ + 142.36070638315005, + 101.22662879999052 + ], + [ + 148.26774498978216, + 106.88619584386765 + ], + [ + 153.71211937039402, + 112.04006012907121 + ], + [ + 158.37104053008738, + 116.93569321835639 + ], + [ + 162.57805709692366, + 121.44397951376413 + ], + [ + 166.73127549794367, + 125.32820708570262 + ], + [ + 170.604743436719, + 128.9649630948859 + ], + [ + 176.72697470661637, + 135.34542556070164 + ], + [ + 178.64218940967726, + 136.8302549372322 + ], + [ + 184.09732342345228, + 142.97400547345615 + ], + [ + 186.59355831732955, + 145.74999082957834 + ], + [ + 191.17716204488033, + 151.1836055770268 + ], + [ + 193.43668500916579, + 153.8735138678428 + ], + [ + 195.78228503875744, + 156.6925377566181 + ], + [ + 199.2684061836551, + 160.73815982600559 + ], + [ + 202.14122823824664, + 163.61098188059714 + ], + [ + 202.95896035865462, + 164.42871400100512 + ], + [ + 203.67985578059347, + 165.14960942294374 + ], + [ + 204.36847230304238, + 165.83822594539265 + ], + [ + 204.85265579538918, + 166.94646816120894 + ], + [ + 204.85265579538918, + 166.70975623161712 + ], + [ + 204.37923193620554, + 164.50403143314793 + ], + [ + 199.20384838467544, + 155.261506545904 + ], + [ + 199.20384838467544, + 155.261506545904 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 43, + "versionNonce": 1955028831, + "index": "b0h", + "isDeleted": false, + "id": "fIETLmNMeXbK4WUKcr2nF", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2137.7451347259203, + "y": -207.4859585224508, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 59.651406257137296, + "height": 103.70134442754147, + "seed": 64022047, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271965801, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.32278899489801915 + ], + [ + 0, + -2.5392734265303716 + ], + [ + 0, + -5.207662451019814 + ], + [ + 0, + -7.876051475509485 + ], + [ + 0, + -12.309020338774417 + ], + [ + -0.4411449596937018, + -16.1502093780598 + ], + [ + 2.2487633311220634, + -25.823119591834256 + ], + [ + 5.4766532801013454, + -33.38714170560911 + ], + [ + 9.274803786733628, + -41.004961985200225 + ], + [ + 12.82548273061093, + -47.72973271224055 + ], + [ + 16.60211397091689, + -54.12095481121946 + ], + [ + 19.91608098520237, + -59.371655794892376 + ], + [ + 23.606635160201677, + -64.68691457754494 + ], + [ + 27.695295762242495, + -70.68003024948325 + ], + [ + 30.923185711221777, + -75.58642297193182 + ], + [ + 34.18335455969054, + -79.64280467448248 + ], + [ + 37.52960047346596, + -83.50551298009441 + ], + [ + 40.197989497955405, + -86.6796047632572 + ], + [ + 42.21004089948565, + -89.1328011244816 + ], + [ + 44.168294135200085, + -91.3277662897874 + ], + [ + 46.395538199995826, + -93.56576998774653 + ], + [ + 48.29999326989355, + -95.26579202754215 + ], + [ + 49.90317861122003, + -96.48163057499119 + ], + [ + 51.23737312346475, + -97.6544305897869 + ], + [ + 52.410173138260234, + -98.59051867499079 + ], + [ + 53.56145388672985, + -99.3652122627459 + ], + [ + 54.443743806117254, + -99.88167465458264 + ], + [ + 55.164639228055876, + -100.25826181529692 + ], + [ + 55.88553464999495, + -100.62408934284781 + ], + [ + 56.60643007193357, + -100.74244530764372 + ], + [ + 57.327325493872195, + -100.74244530764372 + ], + [ + 57.77923008672951, + -100.74244530764372 + ], + [ + 58.14505761428018, + -100.74244530764372 + ], + [ + 58.47860624234136, + -100.74244530764372 + ], + [ + 58.8229145035657, + -100.74244530764372 + ], + [ + 59.15646313162733, + -100.74244530764372 + ], + [ + 59.210261297443594, + -101.06523430254174 + ], + [ + 59.210261297443594, + -102.14119761886809 + ], + [ + 58.43556770968826, + -103.70134442754147 + ], + [ + 58.43556770968826, + -103.70134442754147 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 38, + "versionNonce": 681145407, + "index": "b0i", + "isDeleted": false, + "id": "ePmvU0Rho2Dvb_rj43jjB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2080.708319327456, + "y": -366.3089036453953, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 164.98821492549496, + "height": 174.47821137549408, + "seed": 1099977631, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271966727, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.31202936173485796, + 0 + ], + [ + 2.5069945270406606, + 0 + ], + [ + 6.929203757142204, + 1.011405517346816 + ], + [ + 11.502047851529369, + 4.056381702550652 + ], + [ + 17.04325893061059, + 8.424792766835935 + ], + [ + 23.477519562242833, + 13.686253383672124 + ], + [ + 30.13773249030328, + 20.346466311732797 + ], + [ + 36.797945418363724, + 27.006679239793357 + ], + [ + 43.18916751734287, + 32.81688114795611 + ], + [ + 50.07533274183197, + 40.294826196424765 + ], + [ + 63.7293072260145, + 56.100727313259995 + ], + [ + 75.97376976580927, + 69.70090363162626 + ], + [ + 82.54790562856351, + 77.02821381580907 + ], + [ + 95.16895532907256, + 92.05942134488942 + ], + [ + 101.45258109641918, + 98.87026913723571 + ], + [ + 113.62172620407091, + 114.39641979182602 + ], + [ + 119.61484187600945, + 121.60537401121314 + ], + [ + 130.76182183315132, + 133.41945122447737 + ], + [ + 136.51822557549758, + 140.1442219515177 + ], + [ + 144.85694127702754, + 150.67790281835346 + ], + [ + 148.50445691937375, + 155.04631388263874 + ], + [ + 154.97099645049593, + 162.83628829284203 + ], + [ + 158.6185120928426, + 167.96863331171903 + ], + [ + 160.22169743416862, + 169.71169388416797 + ], + [ + 161.54513231325018, + 171.03512876324953 + ], + [ + 162.40590296631126, + 171.8958994163106 + ], + [ + 163.12679838825034, + 172.61679483824923 + ], + [ + 163.84769381018896, + 173.33769026018808 + ], + [ + 164.56858923212758, + 174.0585856821267 + ], + [ + 164.98821492549496, + 174.47821137549408 + ], + [ + 164.37491583518886, + 173.54212329028996 + ], + [ + 162.17995066988306, + 170.5079067382494 + ], + [ + 157.72546254029157, + 165.54771584998457 + ], + [ + 148.83800554743493, + 160.63056349437284 + ], + [ + 148.83800554743493, + 160.63056349437284 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 56, + "versionNonce": 338602847, + "index": "b0j", + "isDeleted": false, + "id": "Zct854TaLbq6is95DX4Po", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2093.3508882942915, + "y": 253.05861976475148, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 136.7979760377425, + "height": 290.48857614180974, + "seed": 1074442367, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271973493, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.9360880852038918 + ], + [ + 0, + -2.872822054591552 + ], + [ + 0, + -6.132990903060545 + ], + [ + 0, + -12.341299238264128 + ], + [ + 0, + -20.862928703569423 + ], + [ + 0, + -29.62127009846654 + ], + [ + 0, + -39.1435454479556 + ], + [ + 0, + -49.95697677703606 + ], + [ + 0.39810642704105703, + -60.501417277035216 + ], + [ + 2.248763331122518, + -70.6154724505036 + ], + [ + 5.595009244897483, + -80.70800835764544 + ], + [ + 9.845064344387083, + -90.46699563672632 + ], + [ + 14.751457066835428, + -100.06458841835797 + ], + [ + 19.840763553059332, + -110.06028762703068 + ], + [ + 24.93007003928369, + -120.26041986580526 + ], + [ + 30.503560017854397, + -129.95484934590627 + ], + [ + 36.19540596122124, + -138.98218156988514 + ], + [ + 42.81258035662904, + -148.9025633464148 + ], + [ + 49.601908882648786, + -159.57611944437303 + ], + [ + 56.36971814234175, + -170.28195444182097 + ], + [ + 63.643230160708754, + -180.4282885147793 + ], + [ + 70.99205961121788, + -190.44550698977832 + ], + [ + 78.59912025764606, + -202.02287227345073 + ], + [ + 85.36692951733903, + -212.86858250202113 + ], + [ + 92.3929699729506, + -222.1326266555916 + ], + [ + 97.62215169029741, + -229.01879188008093 + ], + [ + 101.6032159607048, + -234.53848369283537 + ], + [ + 109.51154633570422, + -244.39430767038561 + ], + [ + 111.69575186784687, + -247.13801412701787 + ], + [ + 115.40782530917295, + -251.91529125150737 + ], + [ + 118.33444552958099, + -255.36913349691508 + ], + [ + 120.13130426784619, + -257.5748582953843 + ], + [ + 121.30410428264213, + -258.7584179433434 + ], + [ + 122.44462539794813, + -259.51159226477193 + ], + [ + 123.15476118672359, + -260.23248768671056 + ], + [ + 123.86489697549905, + -260.9533831086494 + ], + [ + 124.55351349794773, + -261.3192106362003 + ], + [ + 125.24213002039687, + -261.6850381637512 + ], + [ + 125.95226580917233, + -262.40593358569004 + ], + [ + 127.09278692447833, + -263.5572143341592 + ], + [ + 128.66369336631487, + -265.1388804091591 + ], + [ + 130.23459980815142, + -266.72054648415906 + ], + [ + 131.880823682131, + -268.80791531783234 + ], + [ + 133.65616315406942, + -271.3041502117096 + ], + [ + 135.0011172994773, + -273.6605098744644 + ], + [ + 135.84036868621206, + -275.81243650711735 + ], + [ + 136.5289852086612, + -277.94284387344373 + ], + [ + 136.7979760377425, + -280.0840108729333 + ], + [ + 136.7979760377425, + -282.20365860609627 + ], + [ + 136.10935951529382, + -284.90432653007565 + ], + [ + 134.2049044453961, + -288.28285134334055 + ], + [ + 132.56944020457968, + -290.48857614180974 + ], + [ + 132.56944020457968, + -290.48857614180974 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 98, + "versionNonce": 1716244447, + "index": "b0k", + "isDeleted": false, + "id": "xpRSc3B7L6Dqb8uz2o8RL", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1926.1892274698173, + "y": -168.04114334592373, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 393.9639682729228, + "height": 340.53162998415223, + "seed": 1087676319, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271974960, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.3335486280614077 + ], + [ + 0.3120293617346306, + -0.6670972561225881 + ], + [ + 1.8291376377549113, + -0.6670972561225881 + ], + [ + 11.017864359182568, + -0.6670972561225881 + ], + [ + 18.40973234234525, + -0.6670972561225881 + ], + [ + 31.11685910816027, + 1.6569835071425132 + ], + [ + 36.09856926275165, + 4.142458767856624 + ], + [ + 50.87154559591363, + 11.523567117855919 + ], + [ + 66.95719717499378, + 19.916080985202143 + ], + [ + 76.76998261989092, + 25.747802159691446 + ], + [ + 85.87263227601238, + 32.28965912295598 + ], + [ + 98.11709481580715, + 41.6612996081592 + ], + [ + 111.40524177243856, + 52.00130707805624 + ], + [ + 123.64970431223378, + 62.07232371887176 + ], + [ + 134.8504824351919, + 71.17497337499321 + ], + [ + 146.36328991988444, + 81.27826891529844 + ], + [ + 157.87609740457742, + 92.08094061121596 + ], + [ + 169.38890488926995, + 102.88361230713326 + ], + [ + 179.92258575610572, + 113.41729317396903 + ], + [ + 190.45626662294148, + 123.9509740408048 + ], + [ + 200.98994748977725, + 134.48465490764056 + ], + [ + 212.0723696479397, + 146.4924055178435 + ], + [ + 223.28390740406098, + 159.5761194443728 + ], + [ + 232.44035522599893, + 170.61550306988215 + ], + [ + 241.56452414844694, + 180.6650004443709 + ], + [ + 250.77477013620114, + 190.13347762804347 + ], + [ + 259.29639960150666, + 199.58043554538972 + ], + [ + 266.92497951426117, + 208.52169070406217 + ], + [ + 273.4991153770154, + 216.33318438059223 + ], + [ + 278.8036145265048, + 222.7889642785508 + ], + [ + 283.35493935456566, + 228.168780860183 + ], + [ + 288.5626018055857, + 233.94670386885582 + ], + [ + 294.9430642714012, + 240.90818652548774 + ], + [ + 301.3127671040536, + 247.8589095489565 + ], + [ + 306.14384239435935, + 253.51847659283362 + ], + [ + 309.54388647395103, + 257.9729647224251 + ], + [ + 313.03000761884846, + 262.51352991732256 + ], + [ + 316.7313214270114, + 266.9787776800772 + ], + [ + 319.98073064231744, + 270.7769281867095 + ], + [ + 323.0364664606843, + 274.67191539181135 + ], + [ + 326.08144264588805, + 278.405508099464 + ], + [ + 331.4182206948674, + 283.92519991221866 + ], + [ + 333.20431979996897, + 285.71129901732047 + ], + [ + 334.7967455081323, + 287.30372472548356 + ], + [ + 336.39993084945877, + 288.90691006681004 + ], + [ + 338.00311619078525, + 290.5100954081363 + ], + [ + 339.5955418989481, + 292.1025211162994 + ], + [ + 341.18796760711143, + 293.6949468244625 + ], + [ + 342.7803933152743, + 295.28737253262557 + ], + [ + 344.0069914958865, + 296.51397071323777 + ], + [ + 345.1690318775193, + 297.6760110948703 + ], + [ + 346.32031262598844, + 298.8272918433397 + ], + [ + 347.48235300762076, + 299.98933222497226 + ], + [ + 348.6336337560904, + 301.1406129734414 + ], + [ + 349.80643377088586, + 301.94758546068624 + ], + [ + 350.9577145193555, + 302.71151941527796 + ], + [ + 351.7001292076204, + 303.4324148372168 + ], + [ + 353.6368631770081, + 304.583695585686 + ], + [ + 353.99193107139604, + 304.9387634800737 + ], + [ + 354.7020668601715, + 305.64889926884916 + ], + [ + 355.41220264894696, + 306.3590350576246 + ], + [ + 356.55272376425296, + 307.1014497458898 + ], + [ + 357.69324487955896, + 307.8438644341552 + ], + [ + 358.4033806683344, + 308.55400022293065 + ], + [ + 359.1135164571099, + 309.2641360117061 + ], + [ + 360.2540375724159, + 310.0065506999713 + ], + [ + 362.5350798030279, + 311.4913800765016 + ], + [ + 364.1059862448644, + 312.2768332974201 + ], + [ + 365.67689268670097, + 313.44963331221584 + ], + [ + 367.7535018872111, + 314.66547185966465 + ], + [ + 369.83011108772075, + 315.88131040711346 + ], + [ + 371.4010175295573, + 317.45221684895023 + ], + [ + 373.7250982928224, + 319.3351526525214 + ], + [ + 376.0599386892511, + 321.2396077224191 + ], + [ + 377.83527816118954, + 322.86431233007215 + ], + [ + 379.933406628026, + 324.53205547037805 + ], + [ + 381.8593809642505, + 326.1782793443574 + ], + [ + 383.45180667241334, + 327.7707050525207 + ], + [ + 384.8828378831279, + 329.3631307606838 + ], + [ + 386.0879167974133, + 330.96631610201007 + ], + [ + 387.26071681220924, + 332.36506841323444 + ], + [ + 388.42275719384156, + 333.527108794867 + ], + [ + 389.5740379423107, + 334.6783895433364 + ], + [ + 390.5424049270048, + 335.8511895581321 + ], + [ + 391.29557924843334, + 337.0024703066015 + ], + [ + 392.0272343035351, + 337.9277987586422 + ], + [ + 392.7373700923106, + 338.6379345474177 + ], + [ + 393.44750588108604, + 339.34807033619313 + ], + [ + 393.9639682729228, + 339.86453272802964 + ], + [ + 393.802573775474, + 339.391108868846 + ], + [ + 392.3177443989432, + 337.1961437035402 + ], + [ + 389.1974507815969, + 333.54862806119354 + ], + [ + 385.17334797853596, + 329.3954096601735 + ], + [ + 377.4694506336384, + 324.00483344537815 + ], + [ + 377.4694506336384, + 324.00483344537815 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 45, + "versionNonce": 2004321727, + "index": "b0l", + "isDeleted": false, + "id": "u_O--YXn5lSl0iFt3duuu", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3262.514147080918, + "y": -289.36676689489036, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 108.58621788366372, + "height": 357.07994578925286, + "seed": 801556543, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271980834, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.3443082612247963, + 0 + ], + [ + 0.6886165224491378, + 0.9683669846938301 + ], + [ + 2.9696587530611396, + 6.520337696938213 + ], + [ + 5.455134013775023, + 13.223589157651986 + ], + [ + 8.145042304591243, + 26.490216847956845 + ], + [ + 13.288146956631408, + 42.87713815560846 + ], + [ + 23.98322232091641, + 83.15044508570668 + ], + [ + 26.780726943365153, + 90.14420664182853 + ], + [ + 29.578231565813894, + 100.41965631274593 + ], + [ + 30.976983877038037, + 110.69510598366332 + ], + [ + 36.57199312193552, + 138.69167147447706 + ], + [ + 39.36949774438426, + 152.68995421988393 + ], + [ + 42.091684934689965, + 165.64455254845416 + ], + [ + 44.813872124996124, + 178.59915087702439 + ], + [ + 47.53605931530183, + 191.5537492055946 + ], + [ + 53.32474195713803, + 213.43884305967413 + ], + [ + 56.54187227295415, + 224.34911108722417 + ], + [ + 61.351428296933136, + 242.4790929673245 + ], + [ + 67.05403387346314, + 261.0287005407922 + ], + [ + 70.84142474693226, + 270.72313002089345 + ], + [ + 74.58577708774828, + 279.7181833453824 + ], + [ + 81.21371111631925, + 298.224752386197 + ], + [ + 83.94665793978811, + 304.2609065907882 + ], + [ + 89.61698461682863, + 318.59273796425646 + ], + [ + 92.27461400815491, + 324.6073729025211 + ], + [ + 95.81453331886905, + 333.6239454933366 + ], + [ + 97.48227645917495, + 337.43285563313225 + ], + [ + 101.00067650356232, + 344.7171272846622 + ], + [ + 102.0766398198889, + 347.3101988770088 + ], + [ + 103.67982516121492, + 350.72100258976366 + ], + [ + 104.46527838213342, + 352.2919090316002 + ], + [ + 105.97162702499054, + 354.486874196906 + ], + [ + 106.43429125101056, + 355.19700998568146 + ], + [ + 106.82163804488846, + 355.6811934780285 + ], + [ + 107.17670593927596, + 355.788789809661 + ], + [ + 107.53177383366346, + 356.4020888999671 + ], + [ + 107.88684172805142, + 356.43436779945705 + ], + [ + 108.58621788366372, + 357.0584265229263 + ], + [ + 108.28494815509202, + 357.07994578925286 + ], + [ + 106.07922335662306, + 356.6065219300692 + ], + [ + 102.31335174948072, + 356.1330980708856 + ], + [ + 102.31335174948072, + 356.1330980708856 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 42, + "versionNonce": 459882271, + "index": "b0m", + "isDeleted": false, + "id": "BybBmhQTjIt4R9ukcuMg9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3170.842072529906, + "y": 149.98133406068132, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 303.07734694282954, + "height": 227.66307810150943, + "seed": 11690495, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271981940, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.34430826122434155 + ], + [ + 0, + -1.3126752459181716 + ], + [ + 0, + -2.668389024489443 + ], + [ + 1.0544440500002565, + -4.519045928570904 + ], + [ + 4.077900968877202, + -7.208954219387124 + ], + [ + 8.650745063264822, + -11.383691886733686 + ], + [ + 17.32300939285551, + -19.09834886479416 + ], + [ + 29.266202204079036, + -29.07252880714009 + ], + [ + 40.51001885969026, + -38.15365919693522 + ], + [ + 62.997652170912716, + -56.886180534178266 + ], + [ + 90.42395710407345, + -78.19025419744162 + ], + [ + 102.93741047294998, + -87.64797174795103 + ], + [ + 114.36414089233676, + -96.21263974590943 + ], + [ + 127.40481628621274, + -106.251377487235 + ], + [ + 140.63916507702788, + -115.97808586682595 + ], + [ + 153.7659175362105, + -125.50036121631479 + ], + [ + 166.36544797039278, + -135.0441558321304 + ], + [ + 176.71621507345344, + -142.18855225253787 + ], + [ + 186.70115464896253, + -148.9025633464148 + ], + [ + 198.65510709334922, + -157.9191359372303 + ], + [ + 209.7375292515112, + -166.29013053824997 + ], + [ + 219.8193055254901, + -174.32757651120824 + ], + [ + 230.64349648773396, + -182.56945551426884 + ], + [ + 241.48920671630458, + -190.15499689437024 + ], + [ + 261.35148953569023, + -203.9165677101853 + ], + [ + 263.38506020354725, + -205.44443561936873 + ], + [ + 270.71237038773006, + -210.28627054283766 + ], + [ + 279.5137503152805, + -215.9458375867148 + ], + [ + 285.56066415303485, + -219.81930552548988 + ], + [ + 290.6392110060956, + -222.875041343857 + ], + [ + 294.4696404122178, + -224.83329457957097 + ], + [ + 297.0519523714015, + -225.70482486579544 + ], + [ + 299.1285615719112, + -226.53331661936681 + ], + [ + 300.2690826872172, + -226.93142304640764 + ], + [ + 300.97921847599264, + -227.29725057395854 + ], + [ + 301.6893542647681, + -227.66307810150943 + ], + [ + 302.39949005354356, + -227.66307810150943 + ], + [ + 303.07734694282954, + -227.66307810150943 + ], + [ + 303.07734694282954, + -227.66307810150943 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 47, + "versionNonce": 1913152799, + "index": "b0n", + "isDeleted": false, + "id": "pBRkVs0IOoTrjpx-4fQyw", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2866.8393971350365, + "y": 4.973757919368154, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 63.8584228239738, + "height": 301.95834509384963, + "seed": 1707950943, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271983077, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.9791266178569913 + ], + [ + 0, + -4.497526662244354 + ], + [ + 0, + -9.586833148468486 + ], + [ + 0, + -20.260389246426712 + ], + [ + 0, + -33.68841143418058 + ], + [ + -1.2265981806122, + -60.80268700560646 + ], + [ + -5.455134013775023, + -77.630753272952 + ], + [ + -13.740051549488726, + -107.98367842652056 + ], + [ + -19.033791065814512, + -125.24213002039642 + ], + [ + -23.735750758160975, + -140.0151063535584 + ], + [ + -27.716815028568817, + -154.55137075712855 + ], + [ + -36.78718578520056, + -187.90623356324795 + ], + [ + -41.12331794999636, + -202.71148879589964 + ], + [ + -44.89994919030187, + -215.83824125508204 + ], + [ + -47.148712521424386, + -225.6402670668158 + ], + [ + -50.11837127448507, + -241.54300488212039 + ], + [ + -51.20509422397481, + -249.6988068198748 + ], + [ + -51.79687404795459, + -256.7140876423232 + ], + [ + -52.66840433417883, + -262.4597317515063 + ], + [ + -53.67980985152553, + -267.2262492428324 + ], + [ + -54.68045573570953, + -271.7452951714033 + ], + [ + -55.30451445917879, + -275.3390126479337 + ], + [ + -55.767178685198814, + -278.13651727038246 + ], + [ + -56.20832364489297, + -280.3960402346679 + ], + [ + -56.62794933826035, + -282.12834117395346 + ], + [ + -57.11213283060715, + -285.001163228545 + ], + [ + -57.11213283060715, + -285.80813571578983 + ], + [ + -57.40264292601523, + -286.5182715045653 + ], + [ + -57.76847045356635, + -287.6157540872182 + ], + [ + -57.843787885708934, + -289.1759008958916 + ], + [ + -58.220375046423214, + -292.4253101111974 + ], + [ + -58.61848147346427, + -293.99621655303395 + ], + [ + -58.650760372953755, + -295.1152184020134 + ], + [ + -59.04886679999481, + -296.32029731629905 + ], + [ + -59.457732860198576, + -297.901963391299 + ], + [ + -59.457732860198576, + -298.26779091884987 + ], + [ + -59.823560387749694, + -298.9886863407887 + ], + [ + -60.18938791530081, + -299.70958176272734 + ], + [ + -60.533696176525154, + -300.07540929027823 + ], + [ + -61.23307233213745, + -300.44123681782935 + ], + [ + -61.9324484877493, + -300.80706434538024 + ], + [ + -63.06220996989214, + -301.20517077242107 + ], + [ + -63.8584228239738, + -301.95834509384963 + ], + [ + -63.8584228239738, + -301.95834509384963 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 55, + "versionNonce": 951671121, + "index": "b0o", + "isDeleted": false, + "id": "DE0WgAe9wg_NiyPRfFvHC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2646.5036292177097, + "y": -12.607482669405726, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 288.23981281068745, + "height": 279.14792278772916, + "seed": 1331358047, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715271984534, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.33354862806118035 + ], + [ + 0, + -1.6031853413262525 + ], + [ + 0, + -2.851302788265002 + ], + [ + -0.1613944974487822, + -4.142458767856624 + ], + [ + -0.602539457142484, + -5.960836772448374 + ], + [ + 0.5164623918367397, + -8.822899193876765 + ], + [ + 2.8943413209181017, + -12.158385474488568 + ], + [ + 6.972242289795304, + -17.35528829234522 + ], + [ + 16.51603690561069, + -29.158605872446287 + ], + [ + 23.41296176326341, + -37.20681147856794 + ], + [ + 36.98085918213974, + -50.76394926428088 + ], + [ + 45.09362258724104, + -58.231134679586376 + ], + [ + 59.651406257137296, + -72.8534761484625 + ], + [ + 67.77492929540222, + -81.24599001580873 + ], + [ + 85.86187264284945, + -99.12850033315408 + ], + [ + 96.2018801127465, + -109.62990230049991 + ], + [ + 107.6931683311127, + -120.59396849386644 + ], + [ + 119.51800517754009, + -132.16057414437546 + ], + [ + 144.2974403525377, + -155.7564496714142 + ], + [ + 153.34629184284313, + -164.62238739794384 + ], + [ + 160.44764973059773, + -171.22880216018825 + ], + [ + 168.34522047243354, + -178.018130686208 + ], + [ + 175.76936735508616, + -184.2479582877379 + ], + [ + 181.74096376069747, + -189.9613234974313 + ], + [ + 186.7119142821257, + -194.5341675918187 + ], + [ + 191.403114341309, + -197.90193277192043 + ], + [ + 195.1259474157987, + -200.936149323961 + ], + [ + 197.91269240508382, + -203.65833651426692 + ], + [ + 205.41215671987902, + -209.7805677841643 + ], + [ + 210.41538614079718, + -213.67555498926595 + ], + [ + 218.64650551069417, + -220.91678810814278 + ], + [ + 225.478872569367, + -226.2428065239585 + ], + [ + 232.27896072854992, + -232.51567265814174 + ], + [ + 242.8234012285493, + -239.93981954079413 + ], + [ + 248.28929487548749, + -244.31899023824258 + ], + [ + 253.75518852242567, + -248.69816093569125 + ], + [ + 258.521706013752, + -252.92669676885407 + ], + [ + 263.0945501081392, + -256.48813534589453 + ], + [ + 267.66739420252634, + -260.049573922935 + ], + [ + 275.8016768739544, + -266.66674831834257 + ], + [ + 279.24475948619875, + -269.60412817191377 + ], + [ + 281.9454274101781, + -271.8851704025258 + ], + [ + 284.02203661068825, + -273.5421539096685 + ], + [ + 285.27015405762677, + -274.8010309897704 + ], + [ + 286.08788617803475, + -275.6295227433418 + ], + [ + 287.40056142395315, + -276.4902933964029 + ], + [ + 287.63727335354497, + -276.70548605966815 + ], + [ + 287.63727335354497, + -277.0497943208927 + ], + [ + 287.4758788560962, + -277.9536035066069 + ], + [ + 286.7227045346676, + -278.5561429637496 + ], + [ + 285.73281828364725, + -279.14792278772916 + ], + [ + 285.73281828364725, + -279.14792278772916 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 180, + "versionNonce": 802680881, + "index": "b0p", + "isDeleted": false, + "id": "qGx8Nqbt3jIJggkTYSqh4", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2489.3161483355807, + "y": -675.7021552550598, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 68.30215132040212, + "height": 79.12634228264574, + "seed": 1406973087, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715301806923, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.3227889948975644, + 0 + ], + [ + -0.9791266178572187, + 0 + ], + [ + -1.70002203979584, + 0 + ], + [ + -2.765225722959258, + 0 + ], + [ + -3.1310532505103765, + 0 + ], + [ + -3.851948672448998, + 0 + ], + [ + -6.154510169387322, + 0 + ], + [ + -6.8754055913259435, + 0 + ], + [ + -8.02668633979556, + 0 + ], + [ + -9.608352414795263, + 0 + ], + [ + -11.190018489794966, + 0 + ], + [ + -12.771684564794668, + 0 + ], + [ + -16.440719473467652, + 0 + ], + [ + -20.109754382140636, + 0 + ], + [ + -22.197123215813917, + 0.4303853265305406 + ], + [ + -27.533901264793712, + 2.367119295918087 + ], + [ + -32.31117838928276, + 4.077900968877202 + ], + [ + -34.2801912581599, + 4.917152355611734 + ], + [ + -37.48656194081286, + 6.337423933162654 + ], + [ + -38.89607388520017, + 6.724770727040209 + ], + [ + -39.875200503057386, + 7.079838621427939 + ], + [ + -40.434701427547225, + 7.44566614897883 + ], + [ + -40.81128858826196, + 7.80073404336656 + ], + [ + -41.54294364336329, + 8.69378359591758 + ], + [ + -42.834099622955364, + 10.135574439794937 + ], + [ + -43.5657546780576, + 10.641277198468401 + ], + [ + -44.45880423060862, + 11.588124916835682 + ], + [ + -45.05058405458749, + 12.309020338774303 + ], + [ + -45.782239109689726, + 13.029915760713038 + ], + [ + -46.97655839081199, + 14.450187338263959 + ], + [ + -47.72973271224055, + 15.90273781530459 + ], + [ + -47.82656941071036, + 16.34388277499852 + ], + [ + -47.82656941071036, + 17.30149012652896 + ], + [ + -47.82656941071036, + 17.710356186733065 + ], + [ + -47.82656941071036, + 18.678723171426782 + ], + [ + -47.82656941071036, + 19.356580060712417 + ], + [ + -47.82656941071036, + 20.798370904589888 + ], + [ + -47.82656941071036, + 21.46546816071225 + ], + [ + -46.901240958669405, + 22.918018637752994 + ], + [ + -44.975266622444906, + 24.467405813262985 + ], + [ + -43.42587944693514, + 25.597167295405825 + ], + [ + -41.521424377036965, + 26.72692877754855 + ], + [ + -40.380903261730964, + 27.469343465813722 + ], + [ + -39.24038214642496, + 28.211758154079007 + ], + [ + -36.95933991581296, + 29.696587530609463 + ], + [ + -35.108683011731955, + 30.761791213772653 + ], + [ + -33.968161896425954, + 30.761791213772653 + ], + [ + -33.25802610765004, + 30.761791213772653 + ], + [ + -32.547890318875034, + 30.761791213772653 + ], + [ + -31.407369203569033, + 31.14913800765021 + ], + [ + -30.266848088262122, + 31.53648480152765 + ], + [ + -28.061123289793613, + 31.53648480152765 + ], + [ + -26.19970675254899, + 31.53648480152765 + ], + [ + -25.048426004079374, + 31.53648480152765 + ], + [ + -22.51991221071239, + 31.53648480152765 + ], + [ + -20.916726869385457, + 31.708638932139934 + ], + [ + -19.31354152805943, + 32.095985726017375 + ], + [ + -17.69959655356979, + 32.31117838928276 + ], + [ + -16.322363508672424, + 32.48333251989493 + ], + [ + -13.761570815815503, + 33.01055454489483 + ], + [ + -12.416616670407166, + 33.01055454489483 + ], + [ + -10.114055173468842, + 33.613094002037656 + ], + [ + -7.7899744102032855, + 34.00044079591521 + ], + [ + -6.627934028570962, + 34.35550869030294 + ], + [ + -4.325372531632638, + 35.076404112241676 + ], + [ + -3.1848514163266373, + 35.194760077037586 + ], + [ + -0.9683669846936027, + 35.80805916734357 + ], + [ + -0.03227889948993834, + 35.95869403162931 + ], + [ + 1.6569835071422858, + 35.95869403162931 + ], + [ + 2.8728220545917793, + 35.95869403162931 + ], + [ + 4.110179868366686, + 35.95869403162931 + ], + [ + 5.2614606168363025, + 36.25996376020066 + ], + [ + 6.391222098978687, + 36.61503165458839 + ], + [ + 9.156447821937945, + 37.40048487550678 + ], + [ + 10.28620930408033, + 37.78783166938422 + ], + [ + 11.84635611275371, + 38.17517846326177 + ], + [ + 13.062194660203204, + 38.562525257139214 + ], + [ + 13.793849715304532, + 39.25114177958824 + ], + [ + 15.569189187242955, + 40.316345462751315 + ], + [ + 15.924257081631367, + 40.671413357139045 + ], + [ + 17.344528659182288, + 41.381549145914505 + ], + [ + 18.054664447957293, + 42.091684934689965 + ], + [ + 18.743280970405976, + 42.780301457138876 + ], + [ + 19.076829598467157, + 43.468917979587786 + ], + [ + 19.43189749285557, + 44.17905376836325 + ], + [ + 19.78696538724307, + 45.59932534591417 + ], + [ + 20.131273648467868, + 46.30946113468963 + ], + [ + 20.475581909691755, + 47.729732712240434 + ], + [ + 20.475581909691755, + 48.536705199485255 + ], + [ + 20.475581909691755, + 49.49431255101581 + ], + [ + 20.475581909691755, + 50.806987796934095 + ], + [ + 20.475581909691755, + 52.24877864081145 + ], + [ + 20.475581909691755, + 53.410819022444 + ], + [ + 20.475581909691755, + 54.55134013775 + ], + [ + 20.475581909691755, + 55.72414015254583 + ], + [ + 20.475581909691755, + 56.875420901015104 + ], + [ + 20.475581909691755, + 57.843787885708934 + ], + [ + 20.475581909691755, + 58.769116337749665 + ], + [ + 20.475581909691755, + 59.92039708621894 + ], + [ + 20.475581909691755, + 60.856485171422946 + ], + [ + 20.475581909691755, + 62.96537327142278 + ], + [ + 20.271148879590328, + 63.89070172346351 + ], + [ + 19.528734191324475, + 66.0103494566265 + ], + [ + 18.947714000508313, + 66.91415864234068 + ], + [ + 17.430605724488487, + 69.05532564183034 + ], + [ + 16.69895066938625, + 69.90533666172826 + ], + [ + 15.956535981121306, + 70.63699171683015 + ], + [ + 15.47235248877405, + 71.35788713876889 + ], + [ + 14.794495599488073, + 72.10030182703417 + ], + [ + 13.729291916325565, + 72.87499541478917 + ], + [ + 12.868521263264483, + 73.61741010305445 + ], + [ + 12.136866208162246, + 74.33830552499307 + ], + [ + 11.405211153060009, + 75.05920094693181 + ], + [ + 10.673556097957771, + 75.78009636887055 + ], + [ + 9.576073515305325, + 76.18896242907454 + ], + [ + 8.414033133673001, + 76.55478995662554 + ], + [ + 7.241233118877062, + 76.90985785101327 + ], + [ + 6.0791927372438295, + 76.95289638366637 + ], + [ + 5.304499149488947, + 77.27568537856428 + ], + [ + 4.174737667346562, + 77.630753272952 + ], + [ + 3.012697285714239, + 77.98582116733974 + ], + [ + 1.8183780045919775, + 78.34088906172747 + ], + [ + 0.6778568892859766, + 78.35164869489074 + ], + [ + -1.2911559795920766, + 78.35164869489074 + ], + [ + -2.087368833673281, + 78.35164869489074 + ], + [ + -3.238649582142898, + 78.35164869489074 + ], + [ + -4.389930330611605, + 78.35164869489074 + ], + [ + -5.541211079081222, + 78.35164869489074 + ], + [ + -6.692491827550839, + 78.35164869489074 + ], + [ + -8.274157902550542, + 78.73899548876818 + ], + [ + -9.855823977550244, + 79.12634228264574 + ], + [ + -11.007104726019861, + 79.12634228264574 + ], + [ + -12.158385474488568, + 79.12634228264574 + ], + [ + -13.740051549488271, + 79.12634228264574 + ], + [ + -14.891332297957888, + 79.12634228264574 + ], + [ + -16.042613046427505, + 79.12634228264574 + ], + [ + -17.193893794896212, + 79.12634228264574 + ], + [ + -18.45277087499835, + 79.12634228264574 + ], + [ + -19.71164795510049, + 79.12634228264574 + ], + [ + -20.583178241324276, + 79.12634228264574 + ], + [ + -21.616103024997756, + 79.12634228264574 + ], + [ + -22.35851771326361, + 79.12634228264574 + ], + [ + -22.842701205609956, + 79.12634228264574 + ], + [ + -23.477519562242378, + 79.12634228264574 + ], + [ + -24.19841498418191, + 79.12634228264574 + ], + [ + -24.768675541834455, + 79.12634228264574 + ], + [ + -25.543369129589337, + 79.12634228264574 + ], + [ + -25.887677390814133, + 79.12634228264574 + ], + [ + -26.23198565203802, + 78.93266888570702 + ], + [ + -26.544015013772878, + 78.37316796121718 + ], + [ + -26.909842541323997, + 77.64151290611528 + ], + [ + -27.28642970203873, + 76.90985785101327 + ], + [ + -27.65225722958894, + 76.39339545917665 + ], + [ + -27.802892093875016, + 75.99528903213582 + ], + [ + -28.03960402346729, + 75.42502847448281 + ], + [ + -28.4054315510175, + 74.7364119520339 + ], + [ + -28.534547148977254, + 74.01551653009517 + ], + [ + -28.534547148977254, + 73.28386147499316 + ], + [ + -28.534547148977254, + 72.55220641989126 + ], + [ + -28.534547148977254, + 72.07878256070762 + ], + [ + -28.534547148977254, + 71.70219539999334 + ], + [ + -28.534547148977254, + 71.08889630968724 + ], + [ + -28.534547148977254, + 70.36800088774862 + ], + [ + -28.534547148977254, + 69.92685592805469 + ], + [ + -28.534547148977254, + 69.5610284005038 + ], + [ + -28.534547148977254, + 68.91545041070788 + ], + [ + -28.534547148977254, + 68.50658435050389 + ], + [ + -28.534547148977254, + 68.14075682295288 + ], + [ + -28.534547148977254, + 67.4844191999938 + ], + [ + -28.534547148977254, + 66.76352377805506 + ], + [ + -28.534547148977254, + 66.03186872295305 + ], + [ + -28.534547148977254, + 65.31097330101431 + ], + [ + -28.534547148977254, + 64.5900778790757 + ], + [ + -28.534547148977254, + 63.85842282397368 + ], + [ + -28.534547148977254, + 62.73942097499423 + ], + [ + -29.26620220407858, + 61.17927416632085 + ], + [ + -29.26620220407858, + 61.17927416632085 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 135, + "versionNonce": 136791167, + "index": "b0q", + "isDeleted": false, + "id": "xSGpqtRJEwVx0VZ29RTmD", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3191.823357198271, + "y": -968.1705038989103, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 89.19735892346125, + "height": 129.14787685866145, + "seed": 785143793, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715301810289, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.3120293617346306 + ], + [ + 0, + 1.3879926780610958 + ], + [ + 0, + 3.4538422454078272 + ], + [ + 0, + 5.465893646938184 + ], + [ + 0, + 8.90897625918285 + ], + [ + 0, + 9.694429480101121 + ], + [ + 0, + 11.771038680611127 + ], + [ + 0, + 13.847647881121134 + ], + [ + 0, + 19.162906663773697 + ], + [ + 0, + 21.239515864283703 + ], + [ + 0, + 23.31612506479371 + ], + [ + 0, + 25.392734265303716 + ], + [ + 0, + 27.975046224487187 + ], + [ + 0, + 30.557358183670544 + ], + [ + 0, + 33.731449966833566 + ], + [ + 0, + 36.38907935815985 + ], + [ + 0, + 39.44481517652696 + ], + [ + 0, + 43.04929228622052 + ], + [ + 0, + 45.7069216775468 + ], + [ + 0, + 48.35379143570981 + ], + [ + 0, + 50.785468530607545 + ], + [ + 0, + 52.90511626377054 + ], + [ + 0, + 55.01400436377037 + ], + [ + 0, + 57.155171363260024 + ], + [ + 0, + 59.26405946325974 + ], + [ + 0, + 61.37294756325957 + ], + [ + 0, + 63.7293072260145 + ], + [ + 0, + 66.10718615509586 + ], + [ + 0, + 68.26987242091207 + ], + [ + 0, + 70.37876052091178 + ], + [ + 0, + 72.48764862091161 + ], + [ + 0, + 74.90856608264608 + ], + [ + 0, + 77.21112757958463 + ], + [ + 0, + 79.34153494591101 + ], + [ + 0, + 81.45042304591084 + ], + [ + 0, + 83.5808304122371 + ], + [ + 0, + 85.68971851223694 + ], + [ + 0, + 87.82012587856332 + ], + [ + 0, + 89.92901397856303 + ], + [ + 0, + 91.66131491784859 + ], + [ + 0, + 93.26450025917507 + ], + [ + 0, + 94.85692596733816 + ], + [ + 0, + 96.09428378111352 + ], + [ + 0, + 97.22404526325624 + ], + [ + 0, + 98.73039390611325 + ], + [ + 0, + 100.00003061937844 + ], + [ + 0, + 102.61462147805173 + ], + [ + 0, + 103.74438296019446 + ], + [ + 0, + 104.9925004071331 + ], + [ + 0.3227889948975644, + 106.18681968825547 + ], + [ + 1.0759633163261242, + 108.03747659233693 + ], + [ + 1.4740697433671812, + 109.5976234010102 + ], + [ + 1.8614165372446223, + 111.09321241070393 + ], + [ + 2.9588991198979784, + 112.94386931478539 + ], + [ + 3.313967014285481, + 113.65400510356085 + ], + [ + 3.669034908672984, + 114.36414089233631 + ], + [ + 4.024102803060487, + 115.07427668111177 + ], + [ + 5.4766532801013454, + 116.92493358519323 + ], + [ + 5.8640000739787865, + 118.06545470049923 + ], + [ + 6.961482656632143, + 119.90535197141742 + ], + [ + 7.703897344897086, + 121.03511345356014 + ], + [ + 8.414033133672092, + 121.7452492423356 + ], + [ + 8.876697359693026, + 122.5629813627437 + ], + [ + 9.350121218876666, + 123.39147311631507 + ], + [ + 10.071016640815287, + 124.1123685382538 + ], + [ + 10.781152429590293, + 124.82250432702926 + ], + [ + 11.502047851529824, + 125.543399748968 + ], + [ + 12.222943273468445, + 126.26429517090662 + ], + [ + 12.943838695407067, + 126.98519059284536 + ], + [ + 13.503339619896906, + 127.70608601478409 + ], + [ + 13.869167147447115, + 128.25482730611054 + ], + [ + 14.396389172447925, + 128.62065483366155 + ], + [ + 15.117284594386547, + 128.97572272804928 + ], + [ + 15.827420383161552, + 129.14787685866145 + ], + [ + 16.548315805100174, + 129.14787685866145 + ], + [ + 17.269211227038795, + 129.14787685866145 + ], + [ + 17.990106648977417, + 129.14787685866145 + ], + [ + 19.43189749285557, + 129.14787685866145 + ], + [ + 20.142033281630574, + 129.14787685866145 + ], + [ + 21.583824125507817, + 129.14787685866145 + ], + [ + 22.057247984691458, + 129.14787685866145 + ], + [ + 22.423075512242576, + 129.14787685866145 + ], + [ + 23.014855336222354, + 129.14787685866145 + ], + [ + 23.703471858671037, + 129.14787685866145 + ], + [ + 24.42436728060966, + 129.14787685866145 + ], + [ + 25.14526270254828, + 129.14787685866145 + ], + [ + 25.8661581244869, + 129.14787685866145 + ], + [ + 26.576293913262816, + 129.14787685866145 + ], + [ + 27.65225722958894, + 129.14787685866145 + ], + [ + 28.803537978058557, + 129.14787685866145 + ], + [ + 29.588991198977055, + 129.14787685866145 + ], + [ + 31.848514163261825, + 129.14787685866145 + ], + [ + 32.62320775101762, + 129.14787685866145 + ], + [ + 33.75296923316, + 129.14787685866145 + ], + [ + 34.85045181581336, + 128.8466071300901 + ], + [ + 36.02325183060839, + 128.4807796025391 + ], + [ + 38.44416929234285, + 128.41622180355955 + ], + [ + 38.79923718673126, + 128.05039427600855 + ], + [ + 39.93975830203726, + 127.68456674845754 + ], + [ + 41.08027941734326, + 127.68456674845754 + ], + [ + 42.220800532649264, + 127.28646032141671 + ], + [ + 43.361321647955265, + 126.888353894376 + ], + [ + 44.501842763261266, + 126.49024746733517 + ], + [ + 46.07274920509735, + 125.69403461325362 + ], + [ + 47.64365564693435, + 124.89782175917207 + ], + [ + 49.214562088770435, + 124.10160890509053 + ], + [ + 51.29117128928101, + 123.27311715151916 + ], + [ + 53.873483248464254, + 122.4015868652948 + ], + [ + 56.4557952076475, + 121.53005657907033 + ], + [ + 58.53240440815807, + 120.70156482549896 + ], + [ + 60.60901360866774, + 119.8730730719277 + ], + [ + 63.43879713060596, + 119.00154278570324 + ], + [ + 65.93503202448392, + 118.42052259488696 + ], + [ + 70.00217336019705, + 117.01101065049932 + ], + [ + 71.7990320984627, + 116.19327853009122 + ], + [ + 74.09083396223832, + 115.51542164080558 + ], + [ + 76.51175142397278, + 115.07427668111177 + ], + [ + 78.42696612703367, + 114.50401612345877 + ], + [ + 80.03015146835969, + 113.8799573999894 + ], + [ + 81.62257717652301, + 113.4710913397854 + ], + [ + 83.21500288468633, + 113.07298491274457 + ], + [ + 84.81818822601235, + 112.8577922494793 + ], + [ + 86.18466163774701, + 112.8577922494793 + ], + [ + 87.10999008978797, + 112.8577922494793 + ], + [ + 87.83088551172659, + 112.8577922494793 + ], + [ + 88.55178093366521, + 112.8577922494793 + ], + [ + 89.05748369233879, + 112.8577922494793 + ], + [ + 89.19735892346125, + 112.55652252090795 + ], + [ + 89.19735892346125, + 111.68499223468348 + ], + [ + 88.14291487346145, + 107.32734080356147 + ], + [ + 86.42137356733838, + 104.96022150764327 + ], + [ + 86.42137356733838, + 104.96022150764327 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 40, + "versionNonce": 1310282143, + "index": "b0r", + "isDeleted": false, + "id": "F0A6j8MMLrwpNNRqAXpV-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3188.7245828472505, + "y": -842.1967188234117, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 43.93158220560781, + "height": 80.94472028723737, + "seed": 772894911, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715301813143, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.32278899489790547 + ], + [ + 0, + 0.9576073515305552 + ], + [ + 0, + 1.4095119443876456 + ], + [ + 0, + 2.7975046224487414 + ], + [ + 0, + 5.551970712244383 + ], + [ + -0.2582311959185972, + 8.90897625918285 + ], + [ + -2.4962348938770447, + 16.569835071427065 + ], + [ + -4.734238591836402, + 20.012917683671617 + ], + [ + -6.961482656632143, + 24.252213149997715 + ], + [ + -8.908976259182964, + 28.394671917854453 + ], + [ + -10.791912062753909, + 31.93459122856848 + ], + [ + -13.029915760713266, + 35.60362613724158 + ], + [ + -15.483112121936756, + 39.21886288009841 + ], + [ + -17.55972132244733, + 42.522070261220506 + ], + [ + -19.776205754079456, + 45.82527764234271 + ], + [ + -22.121805783671334, + 48.78417676224035 + ], + [ + -24.1123379188748, + 51.850672213770736 + ], + [ + -25.89843702397684, + 54.70197500203574 + ], + [ + -27.28642970203782, + 57.00453649897429 + ], + [ + -28.588345314793514, + 59.4900117596884 + ], + [ + -30.19153065611954, + 61.73877509081058 + ], + [ + -31.826994896935503, + 63.47107603009613 + ], + [ + -33.1396701428539, + 65.4831274316266 + ], + [ + -35.5928665040783, + 69.2705183050956 + ], + [ + -36.507435322955644, + 71.32560823927906 + ], + [ + -37.32516744336408, + 73.05790917856461 + ], + [ + -38.07834176479264, + 74.25222845968699 + ], + [ + -38.820756453057584, + 75.38198994182972 + ], + [ + -39.57393077448614, + 76.51175142397256 + ], + [ + -40.3271050959147, + 77.65227253927856 + ], + [ + -41.048000517853325, + 78.41620649387028 + ], + [ + -41.51066474387335, + 79.56748724233955 + ], + [ + -41.87649227142447, + 79.92255513672728 + ], + [ + -42.57586842703677, + 80.6111716591762 + ], + [ + -43.25372531632274, + 80.94472028723737 + ], + [ + -43.93158220560781, + 80.94472028723737 + ], + [ + -43.93158220560781, + 80.94472028723737 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 67, + "versionNonce": 657454655, + "index": "b0s", + "isDeleted": false, + "id": "PcIQATN9v-BbBi3_At44C", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2518.2057633789454, + "y": -615.6849214703715, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 16.214767177038993, + "height": 88.18595340611432, + "seed": 746239455, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715301815153, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.34430826122445524 + ], + [ + 0, + 1.6354642408161908 + ], + [ + 0, + 2.819023888775291 + ], + [ + 0, + 4.024102803060828 + ], + [ + 0, + 6.294385400509668 + ], + [ + 0, + 12.050789142856047 + ], + [ + 0, + 18.000866282141146 + ], + [ + 0, + 20.65849567346754 + ], + [ + 0, + 23.369923230610084 + ], + [ + 0, + 25.984514089283266 + ], + [ + 0, + 28.609864581119837 + ], + [ + 0, + 31.278253605609393 + ], + [ + 0, + 33.871325197956025 + ], + [ + 0, + 36.4105986244864 + ], + [ + 0, + 38.97139131734332 + ], + [ + 0, + 41.57522254285334 + ], + [ + 0, + 43.748668441832706 + ], + [ + 0, + 45.81451800917944 + ], + [ + 0, + 48.13859877244454 + ], + [ + 0, + 48.92405199336281 + ], + [ + 0, + 50.06457310866881 + ], + [ + 0.3443082612238868, + 50.77470889744427 + ], + [ + 0.6886165224486831, + 51.48484468621973 + ], + [ + 0.6886165224486831, + 52.19498047499519 + ], + [ + 0.6886165224486831, + 52.90511626377065 + ], + [ + 1.0436844168361858, + 53.26018415815838 + ], + [ + 1.398752311224598, + 53.59373278621956 + ], + [ + 1.398752311224598, + 54.25007040917865 + ], + [ + 1.7107816729585466, + 54.57285940407655 + ], + [ + 2.0228110346934045, + 54.57285940407655 + ], + [ + 2.291801863774708, + 54.57285940407655 + ], + [ + 2.969658753060685, + 54.85260986632147 + ], + [ + 3.615236742856723, + 55.8209768510153 + ], + [ + 4.056381702550425, + 57.273527328055934 + ], + [ + 4.454488129591482, + 58.85519340305575 + ], + [ + 5.18614318469281, + 60.82420627193312 + ], + [ + 5.681086310203682, + 62.94385400509623 + ], + [ + 6.13299090306009, + 64.71919347703488 + ], + [ + 6.918444123978588, + 66.79580267754488 + ], + [ + 7.746935877549731, + 68.89393114438144 + ], + [ + 8.553908364794552, + 70.54015501836079 + ], + [ + 9.350121218876666, + 72.14334035968727 + ], + [ + 9.748227645917723, + 73.30538074131971 + ], + [ + 10.533680866835311, + 75.25287434387064 + ], + [ + 10.888748761223724, + 75.60794223825837 + ], + [ + 11.243816655611226, + 76.74846335356438 + ], + [ + 11.59888454999873, + 77.88898446887038 + ], + [ + 12.309020338774644, + 78.59912025764584 + ], + [ + 12.664088233162147, + 79.73964137295184 + ], + [ + 13.01915612754965, + 80.88016248825784 + ], + [ + 13.374224021937152, + 81.5902982770333 + ], + [ + 13.729291916325565, + 82.30043406580876 + ], + [ + 14.084359810713067, + 83.01056985458422 + ], + [ + 14.43942770510057, + 83.72070564335957 + ], + [ + 14.794495599488073, + 84.43084143213503 + ], + [ + 14.794495599488073, + 85.14097722091049 + ], + [ + 15.149563493875576, + 85.49604511529822 + ], + [ + 15.504631388263988, + 85.9479497081553 + ], + [ + 15.504631388263988, + 86.65808549693077 + ], + [ + 15.85969928265149, + 87.0131533913185 + ], + [ + 16.214767177038993, + 87.36822128570623 + ], + [ + 16.214767177038993, + 87.86316441121642 + ], + [ + 16.214767177038993, + 88.18595340611432 + ], + [ + 16.214767177038993, + 88.18595340611432 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 70, + "versionNonce": 2026311487, + "index": "b0t", + "isDeleted": false, + "id": "QivpyW7Qe5wj4ZSWI5Sr9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2534.4205305559844, + "y": -527.4989680642572, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 61.114716367341316, + "height": 31.12761874132366, + "seed": 1214820991, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715301816410, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.3227889948975644, + 0 + ], + [ + -1.3234348790811055, + 0 + ], + [ + -3.2386495821419885, + 0 + ], + [ + -4.9494312551014445, + -0.1506348642857347 + ], + [ + -5.917798239795047, + -0.5487412913264507 + ], + [ + -8.02668633979465, + -1.6031853413263661 + ], + [ + -13.07295429336591, + -4.809556023979212 + ], + [ + -15.80590111683523, + -7.090598254591214 + ], + [ + -19.78696538724307, + -9.769746912244045 + ], + [ + -20.57241860816157, + -10.167853339284761 + ], + [ + -22.950297537242477, + -12.147625841325407 + ], + [ + -23.74651039132459, + -12.545732268366237 + ], + [ + -24.930070039283237, + -13.729291916325224 + ], + [ + -25.683244360711797, + -14.880572664794613 + ], + [ + -26.404139782650418, + -15.601468086733234 + ], + [ + -27.12503520458904, + -15.96729561428424 + ], + [ + -27.856690259691277, + -16.69895066938625 + ], + [ + -28.222517787242396, + -17.043258930610705 + ], + [ + -28.663662746936097, + -17.710356186733065 + ], + [ + -29.470635234180918, + -18.162260779590156 + ], + [ + -30.202290289283155, + -18.64644427193707 + ], + [ + -30.933945344384483, + -19.37809932703908 + ], + [ + -31.52572516836426, + -19.96987915101863 + ], + [ + -32.45105362040522, + -20.89520760305936 + ], + [ + -32.935237112751565, + -21.379391095406163 + ], + [ + -33.15042977601752, + -22.186363582650984 + ], + [ + -32.85991968060898, + -22.261681014793908 + ], + [ + -32.06370682652778, + -22.261681014793908 + ], + [ + -30.428242585710905, + -22.261681014793908 + ], + [ + -27.98580585765012, + -22.261681014793908 + ], + [ + -21.37939109540639, + -22.261681014793908 + ], + [ + -17.53820205612101, + -22.261681014793908 + ], + [ + -13.697013016835626, + -22.261681014793908 + ], + [ + -9.855823977550244, + -22.261681014793908 + ], + [ + -6.036154204591185, + -21.906613120406178 + ], + [ + -2.227244064795741, + -20.701534206120527 + ], + [ + 1.1405211153060009, + -18.9584736336717 + ], + [ + 3.9057468382652587, + -17.538202056120895 + ], + [ + 6.541856963264763, + -16.214767177039334 + ], + [ + 9.145688188775239, + -14.912851564284324 + ], + [ + 11.771038680611127, + -13.966003845917044 + ], + [ + 15.24640019234539, + -12.352058871427403 + ], + [ + 16.397680940815007, + -11.598884549998957 + ], + [ + 17.50592315663107, + -10.888748761223496 + ], + [ + 19.023031432651806, + -9.75898727908077 + ], + [ + 20.09899474897793, + -9.748227645917495 + ], + [ + 20.43254337703911, + -9.414679017856315 + ], + [ + 21.088880999997855, + -9.081130389795135 + ], + [ + 21.74521862295751, + -9.081130389795135 + ], + [ + 22.41231587907987, + -9.081130389795135 + ], + [ + 23.07941313520223, + -9.081130389795135 + ], + [ + 23.402202130099795, + -9.32860195255023 + ], + [ + 23.402202130099795, + -9.66215058061141 + ], + [ + 23.509798461732316, + -10.340007469897046 + ], + [ + 24.16613608469197, + -13.223589157651872 + ], + [ + 24.16613608469197, + -14.568543303059869 + ], + [ + 24.327530582140753, + -17.947068116324886 + ], + [ + 25.188301235201834, + -21.712939723467343 + ], + [ + 25.737042526528057, + -23.133211301018264 + ], + [ + 26.683890244895338, + -25.68324436071191 + ], + [ + 27.07123703877278, + -27.06047740560973 + ], + [ + 27.45858383265113, + -28.73898017907902 + ], + [ + 27.813651727038632, + -29.459875601017757 + ], + [ + 27.9642865913238, + -29.976337992854383 + ], + [ + 27.9642865913238, + -30.718752681119668 + ], + [ + 27.9642865913238, + -31.12761874132366 + ], + [ + 27.9642865913238, + -31.12761874132366 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "freedraw", + "version": 69, + "versionNonce": 629474335, + "index": "b0u", + "isDeleted": false, + "id": "QNRhykb6IEj-j9u0-0INW", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3161.276758647763, + "y": -815.3944726137204, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "width": 84.29096620101336, + "height": 46.10502810458763, + "seed": 801999743, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715301818378, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.6348183566326497 + ], + [ + 0, + 2.862062421428277 + ], + [ + 0, + 3.7873908734690076 + ], + [ + 0, + 5.304499149489288 + ], + [ + 0, + 8.166561570917679 + ], + [ + 0, + 10.974825826529582 + ], + [ + 0, + 13.083713926529413 + ], + [ + 0, + 18.64644427193707 + ], + [ + 0, + 24.790194808161004 + ], + [ + 0, + 27.135794837752655 + ], + [ + 0, + 31.57952333418075 + ], + [ + 0, + 33.86056556479275 + ], + [ + 0, + 36.34604082550686 + ], + [ + 0, + 37.33592707652713 + ], + [ + 0, + 39.3479784780576 + ], + [ + 0, + 40.05811426683306 + ], + [ + 0, + 40.86508675407788 + ], + [ + 0, + 41.19863538213906 + ], + [ + 0, + 41.59674180917989 + ], + [ + 0, + 41.919530804077795 + ], + [ + 0.31202936173485796, + 41.941050070404344 + ], + [ + 0.9791266178572187, + 41.941050070404344 + ], + [ + 1.5709064418369962, + 41.941050070404344 + ], + [ + 2.711427557142997, + 41.941050070404344 + ], + [ + 3.0449761852041775, + 41.941050070404344 + ], + [ + 3.7335927076528606, + 41.941050070404344 + ], + [ + 5.153864285203781, + 41.941050070404344 + ], + [ + 5.864000073979696, + 41.941050070404344 + ], + [ + 7.2842716515306165, + 41.941050070404344 + ], + [ + 7.994407440305622, + 41.941050070404344 + ], + [ + 8.349475334693125, + 42.231560165812425 + ], + [ + 8.349475334693125, + 42.67270512550624 + ], + [ + 8.349475334693125, + 43.910062939281715 + ], + [ + 7.83301294285684, + 45.35185378315907 + ], + [ + 7.617820279591797, + 45.9113547076488 + ], + [ + 7.919090008163039, + 46.10502810458763 + ], + [ + 8.478590932652878, + 45.85755654183254 + ], + [ + 9.091890022958978, + 45.24425745152644 + ], + [ + 10.114055173468842, + 44.21133266785307 + ], + [ + 11.5666056505097, + 43.02777301989397 + ], + [ + 13.159031358673019, + 41.81193447244516 + ], + [ + 17.462884623978425, + 38.62708305611886 + ], + [ + 20.055956216325285, + 37.21757111173122 + ], + [ + 25.81235995867155, + 34.129556393874395 + ], + [ + 29.610510465303378, + 31.762437097956308 + ], + [ + 35.09792337856834, + 28.5022682494872 + ], + [ + 39.84292160356836, + 25.84463885816092 + ], + [ + 44.99678588877214, + 23.294605798467273 + ], + [ + 50.34432357091373, + 20.690774572957253 + ], + [ + 54.3469071076488, + 18.302136010712616 + ], + [ + 59.253299830096694, + 15.762862584182244 + ], + [ + 66.3546577178513, + 12.448895569896877 + ], + [ + 67.64581369744337, + 12.007750610202947 + ], + [ + 70.22812565662662, + 11.136220323978591 + ], + [ + 72.81043761580986, + 10.264690037754121 + ], + [ + 74.88704681632044, + 9.436198284182865 + ], + [ + 76.45795325815652, + 9.038091857142035 + ], + [ + 78.02885969999352, + 8.639985430101206 + ], + [ + 79.16938081529952, + 8.24187900306049 + ], + [ + 79.87951660407452, + 7.876051475509485 + ], + [ + 81.02003771938053, + 7.51022394795848 + ], + [ + 82.16055883468653, + 7.51022394795848 + ], + [ + 82.87069462346244, + 7.51022394795848 + ], + [ + 83.58083041223745, + 7.51022394795848 + ], + [ + 84.29096620101336, + 7.51022394795848 + ], + [ + 84.29096620101336, + 7.51022394795848 + ] + ], + "lastCommittedPoint": null, + "simulatePressure": true, + "pressures": [] + }, + { + "type": "arrow", + "version": 140, + "versionNonce": 1383752806, + "index": "b0v", + "isDeleted": false, + "id": "cJLSZV6tMgZyeUu6Dic9J", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3193.9896349352007, + "y": -760.6133328860672, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 590.8457341269841, + "height": 141.53060931546702, + "seed": 1898674362, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715351989896, + "link": null, + "locked": false, + "startBinding": { + "elementId": "MkHw6pdf6N2Bq3DQzW6EL", + "focus": 0.006162937237703317, + "gap": 5.006510416664696 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 590.8457341269841, + -141.53060931546702 + ] + ] + }, + { + "type": "rectangle", + "version": 290, + "versionNonce": 605110566, + "index": "b0w", + "isDeleted": false, + "id": "kW_mq0aETd7r-i1sqM1y3", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3782.8093273955183, + "y": -1025.2018849098665, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 470.59244791666686, + "height": 160.85286458333303, + "seed": 226803046, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1715351586631, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 125, + "versionNonce": 265956454, + "index": "b0x", + "isDeleted": false, + "id": "KxYRl3MOcUWqSPtSumzpG", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3861.1166190621834, + "y": -994.934957826534, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 231.69593811035156, + "height": 90, + "seed": 847072698, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351586631, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "sidebar\nс навигацией", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "sidebar\nс навигацией", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 52, + "versionNonce": 868018086, + "index": "b0y", + "isDeleted": false, + "id": "1iW8e1ppt68BtO9tlzxa7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3206.123749518534, + "y": -689.7742156264392, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 591.4316716269841, + "height": 20.867903633238484, + "seed": 119916902, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715351989896, + "link": null, + "locked": false, + "startBinding": { + "elementId": "MkHw6pdf6N2Bq3DQzW6EL", + "focus": 0.0060543695675508, + "gap": 17.14062499999818 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 591.4316716269841, + 20.867903633238484 + ] + ] + }, + { + "type": "rectangle", + "version": 42, + "versionNonce": 618758886, + "index": "b0z", + "isDeleted": false, + "id": "oi8UECDoFiJyLHLKqYHOu", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3789.0202648955183, + "y": -719.5117807432007, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 493.75, + "height": 136.23046875, + "seed": 226350650, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1715351595455, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 87, + "versionNonce": 1981163578, + "index": "b10", + "isDeleted": false, + "id": "49TSjcY5Uc3zHs5y1lk6I", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3883.6947440621852, + "y": -697.9492807432007, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 316.8719482421875, + "height": 90, + "seed": 1859203066, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351609804, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "страница профиля\nинфу об орге", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "страница профиля\nинфу об орге", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 134, + "versionNonce": 96126118, + "index": "b12", + "isDeleted": false, + "id": "JTJJxhtPMNN_lKfuizToJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3772.464275312188, + "y": -496.26959324320023, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 617.96875, + "height": 428.73697916666674, + "seed": 2041646694, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "eGlbHgqwZ8VvOS-j1qvwJ", + "type": "arrow" + } + ], + "updated": 1715351750611, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 179, + "versionNonce": 7168230, + "index": "b13", + "isDeleted": false, + "id": "vLXW0wK1P9Fpoq8Lbcyc-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3856.9564628121893, + "y": -456.490947409867, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 485.85589599609375, + "height": 90, + "seed": 1012896954, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351763119, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "страница employees\nтаблица с двумя колонками", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "страница employees\nтаблица с двумя колонками", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 240, + "versionNonce": 582465062, + "index": "b14", + "isDeleted": false, + "id": "eGlbHgqwZ8VvOS-j1qvwJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3116.044595180605, + "y": -575.1465463682073, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 645.0004092982499, + "height": 340.8677903498361, + "seed": 1208901542, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715351989896, + "link": null, + "locked": false, + "startBinding": { + "elementId": "MkHw6pdf6N2Bq3DQzW6EL", + "gap": 13.143229166668334, + "focus": 0.12250212838194252 + }, + "endBinding": { + "elementId": "JTJJxhtPMNN_lKfuizToJ", + "gap": 11.41927083333303, + "focus": -0.5744545368168865 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 645.0004092982499, + 340.8677903498361 + ] + ] + }, + { + "type": "text", + "version": 207, + "versionNonce": 2090629542, + "index": "b15", + "isDeleted": false, + "id": "qNHr3fYzybagXtINbZXUo", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3855.708632951078, + "y": -328.7181299495601, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 262.1518859863281, + "height": 90, + "seed": 360560250, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351980189, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "wallet address\nname", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "wallet address\nname", + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 46, + "versionNonce": 225056614, + "index": "b17", + "isDeleted": false, + "id": "FqaqLZDitjTqZSH8elZ24", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3767.314535728855, + "y": -1282.591207826544, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 503.97135416666697, + "height": 131.82291666666674, + "seed": 56514362, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "iBhTm07Dg2Ak_2x6DBW-7", + "type": "arrow" + }, + { + "id": "OREuQXvSeyG89LS_M725Q", + "type": "arrow" + } + ], + "updated": 1715352007521, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 206, + "versionNonce": 1023081978, + "index": "b18", + "isDeleted": false, + "id": "NQVMYdnaCqk9EoAcd9cN1", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3794.84987799076, + "y": -1248.1535838186078, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 448.09118694729193, + "height": 73.38541666666656, + "seed": 953409978, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715351983106, + "link": null, + "locked": false, + "fontSize": 29.3541666666666, + "fontFamily": 1, + "text": "button\ncreate multisignature contract", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "button\ncreate multisignature contract", + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 81, + "versionNonce": 1731257510, + "index": "b19", + "isDeleted": false, + "id": "iBhTm07Dg2Ak_2x6DBW-7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 3189.983124518536, + "y": -801.8686604183654, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 566.4329737103199, + "height": 396.43300537791515, + "seed": 1625339258, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715351989896, + "link": null, + "locked": false, + "startBinding": { + "elementId": "MkHw6pdf6N2Bq3DQzW6EL", + "focus": 0.26179618167749025, + "gap": 1 + }, + "endBinding": { + "elementId": "FqaqLZDitjTqZSH8elZ24", + "focus": 0.683568322647687, + "gap": 10.898437499999545 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 566.4329737103199, + -396.43300537791515 + ] + ] + }, + { + "type": "arrow", + "version": 23, + "versionNonce": 2013432870, + "index": "b1B", + "isDeleted": false, + "id": "OREuQXvSeyG89LS_M725Q", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 4281.07259624473, + "y": -1226.7811666396472, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 275.3534226190477, + "height": 2.4925595238094047, + "seed": 1164364966, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1715352007521, + "link": null, + "locked": false, + "startBinding": { + "elementId": "FqaqLZDitjTqZSH8elZ24", + "focus": -0.1828799404553078, + "gap": 9.786706349208544 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 275.3534226190477, + 2.4925595238094047 + ] + ] + }, + { + "type": "rectangle", + "version": 338, + "versionNonce": 1229325094, + "index": "b1C", + "isDeleted": false, + "id": "GB31vf2OYjQKq4uHL71oJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 4555.836981165363, + "y": -1306.5244702110765, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 913.988095238095, + "height": 406.01438492063517, + "seed": 433367738, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1715352142284, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 83, + "versionNonce": 1241630778, + "index": "b1D", + "isDeleted": false, + "id": "ogG6b0eQgQewTdkvYGkpX", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 4669.657665689175, + "y": -1271.5542321158377, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 238.6798858642578, + "height": 45, + "seed": 1068057274, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715352072182, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "multi-sig page", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "multi-sig page", + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 222, + "versionNonce": 698081446, + "index": "b1F", + "isDeleted": false, + "id": "laetLarDW4eFGxvQgsBbk", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 4621.598389895522, + "y": -1202.7608293380597, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 830.73583984375, + "height": 225, + "seed": 1218409574, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1715352134246, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "аналогично сид,\nинпуты с адресами\n(массив адресов)\n\nсчетчик, кол-во подтверждений для транзакции", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "аналогично сид,\nинпуты с адресами\n(массив адресов)\n\nсчетчик, кол-во подтверждений для транзакции", + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/excalidraw/salaries.excalidraw b/excalidraw/salaries.excalidraw new file mode 100644 index 0000000..461c8d7 --- /dev/null +++ b/excalidraw/salaries.excalidraw @@ -0,0 +1,1231 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "UrUeIFYGtNKLPF14gVAj7", + "type": "rectangle", + "x": -787.5422351044795, + "y": -953.3652963682034, + "width": 595.015625, + "height": 650.4140624999998, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aW", + "roundness": { + "type": 3 + }, + "seed": 415709765, + "version": 74, + "versionNonce": 855493867, + "isDeleted": false, + "boundElements": [ + { + "id": "BXb5PkzNXK0BNrtZGT5nW", + "type": "arrow" + }, + { + "id": "-JA8wUPO1HK5lrj8CwBpH", + "type": "arrow" + }, + { + "id": "BXdtPILTJXAfu1K7okf3S", + "type": "arrow" + } + ], + "updated": 1715555845267, + "link": null, + "locked": false + }, + { + "id": "T8zHhaUUDr720ICex8WEk", + "type": "text", + "x": -638.2297351044795, + "y": -686.6934213682035, + "width": 310.71588134765625, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aX", + "roundness": null, + "seed": 1622932523, + "version": 68, + "versionNonce": 2111446405, + "isDeleted": false, + "boundElements": null, + "updated": 1715555783298, + "link": null, + "locked": false, + "text": "salaries contract", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "salaries contract", + "lineHeight": 1.25 + }, + { + "id": "9XaQBETxW4cMDu_6VfdfR", + "type": "ellipse", + "x": 228.5202648955203, + "y": -831.6543588682035, + "width": 426.9140625, + "height": 273.9062499999999, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aY", + "roundness": { + "type": 2 + }, + "seed": 911977419, + "version": 52, + "versionNonce": 440628907, + "isDeleted": false, + "boundElements": [ + { + "id": "BXb5PkzNXK0BNrtZGT5nW", + "type": "arrow" + }, + { + "id": "exkEVanQIxHns2Mle159k", + "type": "arrow" + } + ], + "updated": 1715555814591, + "link": null, + "locked": false + }, + { + "id": "tehukUSamHJVrR81OtHtd", + "type": "ellipse", + "x": 245.4343273955203, + "y": -482.04498386820364, + "width": 426.9140625, + "height": 273.9062499999999, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aYV", + "roundness": { + "type": 2 + }, + "seed": 1599562373, + "version": 121, + "versionNonce": 1094324555, + "isDeleted": false, + "boundElements": [ + { + "id": "-JA8wUPO1HK5lrj8CwBpH", + "type": "arrow" + }, + { + "id": "i96JodqVTAiwVK0nrkDy_", + "type": "arrow" + }, + { + "id": "VIv3cL80TlW0I5paXH_83", + "type": "arrow" + }, + { + "id": "3yWPC-DlhcKvDWUFKpUyk", + "type": "arrow" + } + ], + "updated": 1715556020626, + "link": null, + "locked": false + }, + { + "id": "-VBejrM0MHLxU87TdL_cA", + "type": "text", + "x": 350.6296398955203, + "y": -724.2715463682035, + "width": 198.71990966796875, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aZ", + "roundness": null, + "seed": 825620907, + "version": 51, + "versionNonce": 41926309, + "isDeleted": false, + "boundElements": null, + "updated": 1715555793971, + "link": null, + "locked": false, + "text": "set_salary", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "set_salary", + "lineHeight": 1.25 + }, + { + "id": "0nSugqWO4ZQhneGTthJIt", + "type": "text", + "x": 407.1999523955203, + "y": -367.33404636820364, + "width": 119.37596130371094, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aa", + "roundness": null, + "seed": 1848226891, + "version": 180, + "versionNonce": 1435431243, + "isDeleted": false, + "boundElements": null, + "updated": 1715555802553, + "link": null, + "locked": false, + "text": "payout", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "payout", + "lineHeight": 1.25 + }, + { + "id": "BXb5PkzNXK0BNrtZGT5nW", + "type": "arrow", + "x": -187.80004760447946, + "y": -701.1777963682035, + "width": 404.8749999999998, + "height": 8.765625, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ab", + "roundness": { + "type": 2 + }, + "seed": 1774954405, + "version": 41, + "versionNonce": 832118437, + "isDeleted": false, + "boundElements": null, + "updated": 1715555805070, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 404.8749999999998, + 8.765625 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "UrUeIFYGtNKLPF14gVAj7", + "focus": -0.23990174435413542, + "gap": 4.7265625 + }, + "endBinding": { + "elementId": "9XaQBETxW4cMDu_6VfdfR", + "focus": -0.05223810253217333, + "gap": 11.471687215939397 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "-JA8wUPO1HK5lrj8CwBpH", + "type": "arrow", + "x": -182.72192260447946, + "y": -488.06060886820364, + "width": 432.6249999999998, + "height": 149.2265625, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ac", + "roundness": { + "type": 2 + }, + "seed": 1187215717, + "version": 49, + "versionNonce": 1946794853, + "isDeleted": false, + "boundElements": null, + "updated": 1715555806529, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 432.6249999999998, + 149.2265625 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "UrUeIFYGtNKLPF14gVAj7", + "focus": 0.07969452354228582, + "gap": 9.8046875 + }, + "endBinding": { + "elementId": "tehukUSamHJVrR81OtHtd", + "focus": -0.5038554688095989, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "MnT2C5s4y3yqIIGwSZW9S", + "type": "rectangle", + "x": 1503.5202648955199, + "y": -1001.0215463682035, + "width": 549.0937500000002, + "height": 560.5390624999999, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ad", + "roundness": { + "type": 3 + }, + "seed": 1930287493, + "version": 46, + "versionNonce": 1933025707, + "isDeleted": false, + "boundElements": [ + { + "id": "exkEVanQIxHns2Mle159k", + "type": "arrow" + }, + { + "id": "i96JodqVTAiwVK0nrkDy_", + "type": "arrow" + }, + { + "id": "W59Fv_PTnU4-fJz7NLc86", + "type": "arrow" + }, + { + "id": "eXQbZR8s5EJjNHG26ea9Q", + "type": "arrow" + } + ], + "updated": 1715555890906, + "link": null, + "locked": false + }, + { + "id": "exkEVanQIxHns2Mle159k", + "type": "arrow", + "x": 683.5593273955203, + "y": -698.2871713682035, + "width": 793.3828124999995, + "height": 55.015625, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ae", + "roundness": { + "type": 2 + }, + "seed": 1754531051, + "version": 62, + "versionNonce": 100518309, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "O76Iv1aqQiKlYgi-GwIT3" + } + ], + "updated": 1715555824160, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 793.3828124999995, + -55.015625 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "9XaQBETxW4cMDu_6VfdfR", + "focus": 0.09557927025061493, + "gap": 28.18041045291207 + }, + "endBinding": { + "elementId": "MnT2C5s4y3yqIIGwSZW9S", + "focus": 0.17851784307145746, + "gap": 26.578125000000114 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "O76Iv1aqQiKlYgi-GwIT3", + "type": "text", + "x": 990.4487622099732, + "y": -748.2949838682035, + "width": 179.60394287109375, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aeV", + "roundness": null, + "seed": 170528395, + "version": 11, + "versionNonce": 1734056811, + "isDeleted": false, + "boundElements": null, + "updated": 1715555821175, + "link": null, + "locked": false, + "text": "submit_tx", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "exkEVanQIxHns2Mle159k", + "originalText": "submit_tx", + "lineHeight": 1.25 + }, + { + "id": "i96JodqVTAiwVK0nrkDy_", + "type": "arrow", + "x": 675.4030773955203, + "y": -348.52935886820364, + "width": 806.6484374999995, + "height": 254.0625, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "af", + "roundness": { + "type": 2 + }, + "seed": 58577547, + "version": 98, + "versionNonce": 2103032139, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "0AzAes4qhL57al8wfbB59" + } + ], + "updated": 1715555825348, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 806.6484374999995, + -254.0625 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "tehukUSamHJVrR81OtHtd", + "focus": 0.42444288656825574, + "gap": 3.119631255127132 + }, + "endBinding": { + "elementId": "MnT2C5s4y3yqIIGwSZW9S", + "focus": -0.0679686464097777, + "gap": 21.468750000000114 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "0AzAes4qhL57al8wfbB59", + "type": "text", + "x": 988.9253247099732, + "y": -498.06060886820364, + "width": 179.60394287109375, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ag", + "roundness": null, + "seed": 269367301, + "version": 3, + "versionNonce": 804264485, + "isDeleted": false, + "boundElements": null, + "updated": 1715555825056, + "link": null, + "locked": false, + "text": "submit_tx", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "i96JodqVTAiwVK0nrkDy_", + "originalText": "submit_tx", + "lineHeight": 1.25 + }, + { + "id": "shKGPbdCy3fSRZGJnUQuw", + "type": "ellipse", + "x": 462.4792492705201, + "y": -1756.9727182432034, + "width": 416.58203125, + "height": 372.8027343749998, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ai", + "roundness": { + "type": 2 + }, + "seed": 129628293, + "version": 70, + "versionNonce": 1663990699, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "cpD83qguOubugY-fLsrIR" + }, + { + "id": "BXdtPILTJXAfu1K7okf3S", + "type": "arrow" + } + ], + "updated": 1715555845267, + "link": null, + "locked": false + }, + { + "id": "cpD83qguOubugY-fLsrIR", + "type": "text", + "x": 622.0622869445643, + "y": -1592.8770218164284, + "width": 97.84797668457031, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aj", + "roundness": null, + "seed": 724477483, + "version": 9, + "versionNonce": 82898379, + "isDeleted": false, + "boundElements": null, + "updated": 1715555840486, + "link": null, + "locked": false, + "text": "actor", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "shKGPbdCy3fSRZGJnUQuw", + "originalText": "actor", + "lineHeight": 1.25 + }, + { + "id": "BXdtPILTJXAfu1K7okf3S", + "type": "arrow", + "x": 517.9675305205201, + "y": -1432.5684213682036, + "width": 953.6816406249995, + "height": 451.1816406249998, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ak", + "roundness": { + "type": 2 + }, + "seed": 1821109995, + "version": 56, + "versionNonce": 487340331, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Vhlc63-doEKqxWPnW0x5n" + } + ], + "updated": 1715555857883, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -953.6816406249995, + 451.1816406249998 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "shKGPbdCy3fSRZGJnUQuw", + "focus": -0.3116630323705437, + "gap": 8.298323122586538 + }, + "endBinding": { + "elementId": "UrUeIFYGtNKLPF14gVAj7", + "focus": -0.7029196033954133, + "gap": 28.021484375000455 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "Vhlc63-doEKqxWPnW0x5n", + "type": "text", + "x": 16.30472687061797, + "y": -1229.4776010557039, + "width": 49.64396667480469, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "akV", + "roundness": null, + "seed": 1819497515, + "version": 7, + "versionNonce": 1196343947, + "isDeleted": false, + "boundElements": null, + "updated": 1715555857404, + "link": null, + "locked": false, + "text": "api", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "BXdtPILTJXAfu1K7okf3S", + "originalText": "api", + "lineHeight": 1.25 + }, + { + "id": "W59Fv_PTnU4-fJz7NLc86", + "type": "arrow", + "x": 892.4694836455201, + "y": -1470.6934213682036, + "width": 744.423828125, + "height": 448.2324218749998, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "al", + "roundness": { + "type": 2 + }, + "seed": 657127307, + "version": 111, + "versionNonce": 1792200613, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "R9E7sg2ku6vhWnECRoxMW" + } + ], + "updated": 1715555927628, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 744.423828125, + 448.2324218749998 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "MnT2C5s4y3yqIIGwSZW9S", + "focus": 0.48634491396224944, + "gap": 21.439453125000284 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "R9E7sg2ku6vhWnECRoxMW", + "type": "text", + "x": 1036.2074597197388, + "y": -1269.0772104307039, + "width": 456.9478759765625, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "am", + "roundness": null, + "seed": 1970251019, + "version": 55, + "versionNonce": 816703467, + "isDeleted": false, + "boundElements": null, + "updated": 1715555926750, + "link": null, + "locked": false, + "text": "confirm tx or execute_tx", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "W59Fv_PTnU4-fJz7NLc86", + "originalText": "confirm tx or execute_tx", + "lineHeight": 1.25 + }, + { + "id": "1rb_jGfPs6AX94lUfMwbt", + "type": "diamond", + "x": 586.1120617705201, + "y": 6.269469256795901, + "width": 491.689453125, + "height": 430.8496093749998, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "an", + "roundness": { + "type": 2 + }, + "seed": 895740837, + "version": 82, + "versionNonce": 58028779, + "isDeleted": false, + "boundElements": [ + { + "id": "eXQbZR8s5EJjNHG26ea9Q", + "type": "arrow" + } + ], + "updated": 1715555890906, + "link": null, + "locked": false + }, + { + "id": "BelMFFdl652hHYGA9C17m", + "type": "text", + "x": 784.3640148955201, + "y": 176.92376613179567, + "width": 136.83595275878906, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ao", + "roundness": null, + "seed": 2030793829, + "version": 69, + "versionNonce": 289256843, + "isDeleted": false, + "boundElements": null, + "updated": 1715555887945, + "link": null, + "locked": false, + "text": "polygon \nchain", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "polygon \nchain", + "lineHeight": 1.25 + }, + { + "id": "eXQbZR8s5EJjNHG26ea9Q", + "type": "arrow", + "x": 1526.44409302052, + "y": -424.3359994932039, + "width": 559.091796875, + "height": 523.4570312499995, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ap", + "roundness": { + "type": 2 + }, + "seed": 271584971, + "version": 61, + "versionNonce": 315372619, + "isDeleted": false, + "boundElements": null, + "updated": 1715555890906, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -559.091796875, + 523.4570312499995 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "MnT2C5s4y3yqIIGwSZW9S", + "focus": -0.11321168526684997, + "gap": 16.14648437499983 + }, + "endBinding": { + "elementId": "1rb_jGfPs6AX94lUfMwbt", + "focus": 0.01946191235272139, + "gap": 19.397254573761302 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "WpGvlBcI8KWbSUQ_qChtX", + "type": "text", + "x": 1621.8737805205196, + "y": -785.2832651182039, + "width": 379.4959716796875, + "height": 214.57031250000003, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aq", + "roundness": null, + "seed": 275314693, + "version": 95, + "versionNonce": 1233359621, + "isDeleted": false, + "boundElements": null, + "updated": 1715555940084, + "link": null, + "locked": false, + "text": "multi-sig \n", + "fontSize": 85.82812500000001, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "multi-sig \n", + "lineHeight": 1.25 + }, + { + "id": "kKR6dKW5ozUfAahb8pRgm", + "type": "rectangle", + "x": -643.4289538544795, + "y": 125.76165675679567, + "width": 426.2304687499998, + "height": 425, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ar", + "roundness": { + "type": 3 + }, + "seed": 1323375211, + "version": 64, + "versionNonce": 959338507, + "isDeleted": false, + "boundElements": [ + { + "id": "VIv3cL80TlW0I5paXH_83", + "type": "arrow" + }, + { + "id": "3yWPC-DlhcKvDWUFKpUyk", + "type": "arrow" + } + ], + "updated": 1715556020626, + "link": null, + "locked": false + }, + { + "id": "ha9nbleqJKMeX_9YwvOo7", + "type": "text", + "x": -532.9406726044795, + "y": 295.2831411317957, + "width": 195.87594604492188, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "as", + "roundness": null, + "seed": 1644975493, + "version": 43, + "versionNonce": 1739509573, + "isDeleted": false, + "boundElements": null, + "updated": 1715555986357, + "link": null, + "locked": false, + "text": "CHAINLINK\neth price", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "CHAINLINK\neth price", + "lineHeight": 1.25 + }, + { + "id": "VIv3cL80TlW0I5paXH_83", + "type": "arrow", + "x": 343.9239943494369, + "y": -211.48835494936998, + "width": 578.8832301957527, + "height": 325.28712108116565, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "at", + "roundness": { + "type": 2 + }, + "seed": 2086502917, + "version": 64, + "versionNonce": 1070650603, + "isDeleted": false, + "boundElements": [], + "updated": 1715556024855, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -578.8832301957527, + 325.28712108116565 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "tehukUSamHJVrR81OtHtd", + "focus": -0.3790153909258899, + "gap": 16.937910779816605 + }, + "endBinding": { + "elementId": "kKR6dKW5ozUfAahb8pRgm", + "focus": -0.34518443025192475, + "gap": 11.962890625 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "3yWPC-DlhcKvDWUFKpUyk", + "type": "arrow", + "x": -194.9621569794797, + "y": 198.61321925679567, + "width": 604.4531249999998, + "height": 392.2070312499998, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "av", + "roundness": { + "type": 2 + }, + "seed": 430926795, + "version": 62, + "versionNonce": 808469349, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "eEjQJz-BilTbbGOxgWjsN" + } + ], + "updated": 1715556029110, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 604.4531249999998, + -392.2070312499998 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "kKR6dKW5ozUfAahb8pRgm", + "focus": 0.03723786375909923, + "gap": 22.236328125 + }, + "endBinding": { + "elementId": "tehukUSamHJVrR81OtHtd", + "focus": -0.6132222706004058, + "gap": 18.065224236437274 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "eEjQJz-BilTbbGOxgWjsN", + "type": "text", + "x": -6.279562680163394, + "y": -19.990296368204213, + "width": 227.0879364013672, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aw", + "roundness": null, + "seed": 308948325, + "version": 15, + "versionNonce": 442895365, + "isDeleted": false, + "boundElements": null, + "updated": 1715556028568, + "link": null, + "locked": false, + "text": "1 eth in usdt", + "fontSize": 36, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "3yWPC-DlhcKvDWUFKpUyk", + "originalText": "1 eth in usdt", + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/salaries.png b/salaries.png new file mode 100644 index 0000000000000000000000000000000000000000..9def4b732361f85a77477bcecc07fb21135f446f GIT binary patch literal 288554 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 literal 0 HcmV?d00001 From 958bf670ae1aceb15b78c79e86e5a7ee2be97ca7 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Thu, 16 May 2024 01:34:49 +0300 Subject: [PATCH 10/17] payout ready, but needs fixes --- .../contract-interact/dto/multi-sig.dto.ts | 2 +- .../src/hardhat/contracts/MultiSigWallet.sol | 67 ++++++++++++++++--- chain-api/src/hardhat/contracts/Salaries.sol | 19 ++++-- .../multi-sig-interact.controller.ts | 4 +- .../modules/multi-sig/multi-sig.service.ts | 16 ++--- .../salaries/salaries-interact.controller.ts | 12 ++++ .../hardhat/modules/salaries/salaries.dto.ts | 9 ++- .../modules/salaries/salaries.service.ts | 44 +++++++++++- 8 files changed, 140 insertions(+), 33 deletions(-) diff --git a/chain-api/src/contract-interact/dto/multi-sig.dto.ts b/chain-api/src/contract-interact/dto/multi-sig.dto.ts index d124f50..6ef37e0 100644 --- a/chain-api/src/contract-interact/dto/multi-sig.dto.ts +++ b/chain-api/src/contract-interact/dto/multi-sig.dto.ts @@ -34,7 +34,7 @@ export class GetTransactionCount {} export class GetTransactionDto extends ConfirmTransactionDto {} -export class DepositMultiSigDto { +export class DepositContractDto { @IsString() @ApiProperty() contractAddress: string; diff --git a/chain-api/src/hardhat/contracts/MultiSigWallet.sol b/chain-api/src/hardhat/contracts/MultiSigWallet.sol index eaae1e4..0ffba22 100644 --- a/chain-api/src/hardhat/contracts/MultiSigWallet.sol +++ b/chain-api/src/hardhat/contracts/MultiSigWallet.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// 0x74f11486DB0FCAA2dCDE0aEB477e1F37fCAa510A pragma solidity ^0.8.19; // The wallet owners can @@ -18,6 +19,9 @@ contract MultiSigWallet { event ConfirmTransaction(address indexed owner, uint indexed txIndex); event RevokeConfirmation(address indexed owner, uint indexed txIndex); event ExecuteTransaction(address indexed owner, uint indexed txIndex); + event ExecuteTransactionFailed(address indexed owner, uint indexed txIndex, string reason); + event Payout(address indexed employee, uint salaryInETH); + event PayoutFailed(address indexed employee, uint salaryInETH, string reason); address[] public owners; @@ -111,20 +115,63 @@ contract MultiSigWallet { emit ConfirmTransaction(msg.sender, _txIndex); } - function executeTransaction( - uint _txIndex - ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) { + function executeTransaction(uint _txIndex) + public + onlyOwner + txExists(_txIndex) + notExecuted(_txIndex) + { Transaction storage transaction = transactions[_txIndex]; require( transaction.numConfirmations >= numConfirmationsRequired, - 'cannot execute tx' + "cannot execute tx" ); - transaction.executed = true; - (bool success, ) = transaction.to.call{value: transaction.value}( - transaction.data - ); - require(success, 'tx failed'); - emit ExecuteTransaction(msg.sender, _txIndex); + + + (bool success, bytes memory returnData) = transaction.to.call{value: transaction.value}(transaction.data); + if (success) { + transaction.executed = true; + emit ExecuteTransaction(msg.sender, _txIndex); + if (returnData.length > 0) { + emitEventFromReturnData(returnData); + } + } else { + // Get the revert reason and emit it + if (returnData.length > 0) { + // The call reverted with a message + assembly { + let returndata_size := mload(returnData) + revert(add(32, returnData), returndata_size) + } + } else { + // The call reverted without a message + emit ExecuteTransactionFailed(msg.sender, _txIndex, "Transaction failed without a reason"); + } + } + } + + function emitEventFromReturnData(bytes memory returnData) internal { + // Decode the selector from returnData + bytes4 selector; + assembly { + selector := mload(add(returnData, 32)) + } + + // Match the selector to the known events + if (selector == Payout.selector) { + (address employee, uint salaryInETH) = abi.decode(slice(returnData, 4, returnData.length), (address, uint)); + emit Payout(employee, salaryInETH); + } else if (selector == PayoutFailed.selector) { + (address employee, uint salaryInETH, string memory reason) = abi.decode(slice(returnData, 4, returnData.length), (address, uint, string)); + emit PayoutFailed(employee, salaryInETH, reason); + } + } + function slice(bytes memory data, uint start, uint length) internal pure returns (bytes memory) { + bytes memory result = new bytes(length); + for (uint i = 0; i < length; i++) { + result[i] = data[start + i]; + } + return result; } function revokeConfirmation( diff --git a/chain-api/src/hardhat/contracts/Salaries.sol b/chain-api/src/hardhat/contracts/Salaries.sol index e7b9c0c..0c2d3ed 100644 --- a/chain-api/src/hardhat/contracts/Salaries.sol +++ b/chain-api/src/hardhat/contracts/Salaries.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT - +// 0x2F9442900d067a3D37A1C2aE99462E055e32c741 pragma solidity ^0.8.7; import {AggregatorV3Interface} from '@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol'; @@ -8,7 +8,8 @@ contract Salaries { AggregatorV3Interface internal dataFeed; address public multisigWallet; mapping(address => uint) public salaries; - + event Payout(address indexed employee, uint salaryInETH); + event PayoutFailed(address indexed employee, uint salaryInETH, string reason); //0xF0d50568e3A7e8259E16663972b11910F89BD8e7 constructor(address _multisigWallet, address _priceFeedAddress) { multisigWallet = _multisigWallet; @@ -42,7 +43,7 @@ contract Salaries { salaries[employee] = salaryInUSDT; } - function payoutInETH(address employee) external onlyMultisig { + function payoutInETH(address payable employee) external onlyMultisig { uint salaryInUSDT = salaries[employee]; require(salaryInUSDT > 0, 'No salary set'); @@ -58,8 +59,16 @@ contract Salaries { 'Insufficient contract balance' ); - salaries[employee] = 0; // Reset salary after payment - payable(employee).transfer(salaryInETH); + (bool success, ) = employee.call{value: salaryInETH}(""); + if (success) { + emit Payout(employee, salaryInETH); + } else { + emit PayoutFailed(employee, salaryInETH, "Transfer failed"); + } + } + + function dummy() public pure returns (uint){ + return 1337; } // Fallback to receive ETH diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts index f434be2..b4722ab 100644 --- a/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts +++ b/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts @@ -3,7 +3,7 @@ import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; import { MultiSigWalletService } from 'src/hardhat/modules/multi-sig/multi-sig.service'; import { ConfirmTransactionDto, - DepositMultiSigDto, + DepositContractDto, ExecuteTransactionDto, GetTransactionDto, RevokeConfirmationDto, @@ -59,7 +59,7 @@ export class MultiSigInteractController { } @Post('deposit') - async deposit(@Body() dto: DepositMultiSigDto) { + async deposit(@Body() dto: DepositContractDto) { return this.multiSigWalletService.deposit(dto); } } diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts index 02bcfe3..cc54946 100644 --- a/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts +++ b/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts @@ -1,22 +1,16 @@ -import { TransactionReceipt, ethers } from 'ethers'; +import { TransactionReceipt, ethers, parseEther } from 'ethers'; import { ConfigService } from '@nestjs/config'; import * as hre from 'hardhat'; import { BaseContractService } from '../base-contract.service'; import { MultiSigWalletDto } from './multi-sig.dto'; import { ConfirmTransactionDto, - DepositMultiSigDto, + DepositContractDto, ExecuteTransactionDto, GetTransactionDto, RevokeConfirmationDto, SubmitTransactionDto, } from 'src/contract-interact/dto/multi-sig.dto'; -import { - ConfirmTransactionLogs, - DepositLogs, - ExecuteTransactionLogs, - SubmitTransactionLogs, -} from 'src/hardhat/modules/dto/ethers.dto'; import { parseLogs } from 'src/contract-interact/ethers.helpers'; export class MultiSigWalletService extends BaseContractService { @@ -102,6 +96,7 @@ export class MultiSigWalletService extends BaseContractService { const tx = await contract.executeTransaction(index); const txResponse: TransactionReceipt = await tx.wait(); + console.log('=>(multi-sig.service.ts:99) txResponse', txResponse.logs); const eventParse = parseLogs(txResponse, contract); return { txHash: txResponse.hash, @@ -145,8 +140,9 @@ export class MultiSigWalletService extends BaseContractService { return tx; } - async deposit(dto: DepositMultiSigDto) { + async deposit(dto: DepositContractDto) { const { contractAddress, value } = dto; + const convertValue = parseEther(value); const signer = await this.providerService.getSigner(); const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); @@ -154,7 +150,7 @@ export class MultiSigWalletService extends BaseContractService { const tx = await signer.sendTransaction({ to: contractAddress, - value: BigInt(value), + value: convertValue, }); const txResponse: TransactionReceipt = await tx.wait(); diff --git a/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts b/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts index 2c89238..0646fc5 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts +++ b/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts @@ -1,11 +1,13 @@ import { Body, Controller, Get, Param, Post } from '@nestjs/common'; import { SalariesService } from './salaries.service'; import { + CreatePayoutDto, GetEmployeeSalariesDto, SalariesDeployDto, SetSalaryDto, } from './salaries.dto'; import { ApiTags } from '@nestjs/swagger'; +import { DepositContractDto } from '../../../contract-interact/dto/multi-sig.dto'; @ApiTags('salaries') @Controller('salaries') export class SalariesController { @@ -30,4 +32,14 @@ export class SalariesController { async getSalary(@Body() dto: GetEmployeeSalariesDto) { return this.salariesService.getSalary(dto); } + + @Post('payout') + async createPayout(@Body() dto: CreatePayoutDto) { + return this.salariesService.createPayout(dto); + } + + @Post('deposit') + async deposit(@Body() dto: DepositContractDto) { + return this.salariesService.deposit(dto); + } } diff --git a/chain-api/src/hardhat/modules/salaries/salaries.dto.ts b/chain-api/src/hardhat/modules/salaries/salaries.dto.ts index 4875918..322ae38 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries.dto.ts +++ b/chain-api/src/hardhat/modules/salaries/salaries.dto.ts @@ -21,8 +21,7 @@ export class SetSalaryDto { @IsNumber() salary: number; } - -export class GetEmployeeSalariesDto { +export class GeneralEmpoyeeSalaryDto { @ApiProperty() @IsString() contractAddress: string; @@ -30,3 +29,9 @@ export class GetEmployeeSalariesDto { @IsString() employeeAddress: string; } +export class GetEmployeeSalariesDto extends GeneralEmpoyeeSalaryDto {} + +export class CreatePayoutDto extends GeneralEmpoyeeSalaryDto { + @IsString() + multiSigWallet: string; +} diff --git a/chain-api/src/hardhat/modules/salaries/salaries.service.ts b/chain-api/src/hardhat/modules/salaries/salaries.service.ts index 43af1b7..8bef96e 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries.service.ts +++ b/chain-api/src/hardhat/modules/salaries/salaries.service.ts @@ -1,7 +1,8 @@ import { Injectable } from '@nestjs/common'; import { BaseContractService } from '../base-contract.service'; -import { ethers } from 'ethers'; +import { ethers, parseEther, TransactionReceipt } from 'ethers'; import { + CreatePayoutDto, GetEmployeeSalariesDto, SalariesDeployDto, SetSalaryDto, @@ -9,6 +10,7 @@ import { import * as hre from 'hardhat'; import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; import { ProviderService } from '../../../provider/provider.service'; +import { DepositContractDto } from '../../../contract-interact/dto/multi-sig.dto'; @Injectable() export class SalariesService extends BaseContractService { @@ -69,7 +71,43 @@ export class SalariesService extends BaseContractService { const contract = new ethers.Contract(contractAddress, abi, signer); - const answer: string = await contract.getSalary(employeeAddress); - return answer; + const answer: BigInt = await contract.getSalary(employeeAddress); + return { + salaryInUsd: answer.toString(), + }; + } + + async createPayout(dto: CreatePayoutDto) { + const { employeeAddress, contractAddress, multiSigWallet } = dto; + console.log('=>(salaries.service.ts:82) employeeAddress', employeeAddress); + const ISubmitMultiSig = new ethers.Interface([ + 'function payoutInETH(address employee)', + ]); + const data = ISubmitMultiSig.encodeFunctionData('payoutInETH', [ + employeeAddress, + ]); + + return await this.multiSigWalletService.submitTransaction({ + contractAddress: multiSigWallet, + destination: contractAddress, + value: '0', + data, + }); + } + + async deposit(dto: DepositContractDto) { + const { contractAddress, value } = dto; + const signer = await this.providerService.getSigner(); + + const convertValue = parseEther(value); + + const tx = await signer.sendTransaction({ + to: contractAddress, + value: convertValue, + }); + + const txResponse: TransactionReceipt = await tx.wait(); + + return txResponse; } } From a2b4823fcfce0c84dabe5f7ef4ffe2b730b28cdd Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Sat, 18 May 2024 02:01:27 +0300 Subject: [PATCH 11/17] salaries ready, started data feed chainlink --- README.md | 3 +- chain-api/hardhat.config.ts | 6 +- chain-api/package-lock.json | 8 +- .../contract-interact/dto/multi-sig.dto.ts | 4 + .../src/contract-interact/ethers.helpers.ts | 3 +- chain-api/src/hardhat/contracts/License.sol | 101 ++++++++++++++++++ chain-api/src/hardhat/contracts/Lock.sol | 34 ------ .../src/hardhat/contracts/MultiSigWallet.sol | 29 ----- .../src/hardhat/contracts/PriceFeedMock.sol | 18 ++++ chain-api/src/hardhat/contracts/Salaries.sol | 14 ++- .../multi-sig-interact.controller.ts | 13 ++- .../modules/multi-sig/multi-sig.service.ts | 19 ++-- .../salaries/salaries-interact.controller.ts | 20 +++- .../hardhat/modules/salaries/salaries.dto.ts | 5 + .../modules/salaries/salaries.service.ts | 5 +- chain-api/src/hardhat/test/Salaries.test.ts | 69 ++++++++++++ chain-api/src/provider/provider.service.ts | 4 +- 17 files changed, 254 insertions(+), 101 deletions(-) create mode 100644 chain-api/src/hardhat/contracts/License.sol delete mode 100644 chain-api/src/hardhat/contracts/Lock.sol create mode 100644 chain-api/src/hardhat/contracts/PriceFeedMock.sol create mode 100644 chain-api/src/hardhat/test/Salaries.test.ts diff --git a/README.md b/README.md index f75e37c..e9dddbb 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ ![LOGIN FLOW](./login-flow.png "Login") -![Example architecture](./arch.png "Arch") + +[//]: # (![Example architecture](./arch.png "Arch")) ![License](./license.png "Arch") ![Salaries](./salaries.png "Arch") diff --git a/chain-api/hardhat.config.ts b/chain-api/hardhat.config.ts index 21a1c97..34b23d7 100644 --- a/chain-api/hardhat.config.ts +++ b/chain-api/hardhat.config.ts @@ -11,9 +11,13 @@ const config = { accounts: [process.env.POLYGON_PK || ''], }, }, + typechain: { + outDir: 'typechain', + target: 'ethers-v6', + }, paths: { sources: './src/hardhat/contracts', - // tests: './src/hardhat/test', + tests: './src/hardhat/test', ignition: './src/hardhat/ignition', cache: './src/hardhat/cache', artifacts: './src/hardhat/artifacts', diff --git a/chain-api/package-lock.json b/chain-api/package-lock.json index 6c62f3e..c39aca9 100644 --- a/chain-api/package-lock.json +++ b/chain-api/package-lock.json @@ -6600,15 +6600,15 @@ } }, "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", "peer": true, "dependencies": { "check-error": "^1.0.2" }, "peerDependencies": { - "chai": ">= 2.1.2 < 5" + "chai": ">= 2.1.2 < 6" } }, "node_modules/chalk": { diff --git a/chain-api/src/contract-interact/dto/multi-sig.dto.ts b/chain-api/src/contract-interact/dto/multi-sig.dto.ts index 6ef37e0..2803201 100644 --- a/chain-api/src/contract-interact/dto/multi-sig.dto.ts +++ b/chain-api/src/contract-interact/dto/multi-sig.dto.ts @@ -42,3 +42,7 @@ export class DepositContractDto { @ApiProperty() value: string; } +export class DeployMultiSigResponseDto { + @IsString() + address: string; +} diff --git a/chain-api/src/contract-interact/ethers.helpers.ts b/chain-api/src/contract-interact/ethers.helpers.ts index f77b017..d3b5148 100644 --- a/chain-api/src/contract-interact/ethers.helpers.ts +++ b/chain-api/src/contract-interact/ethers.helpers.ts @@ -3,8 +3,9 @@ import { TransactionReceipt, ethers } from 'ethers'; export const parseLogs = ( txReceipt: TransactionReceipt, contract: ethers.Contract, + eventName: string, ) => { return txReceipt.logs .map((log) => contract.interface.parseLog(log)) - .find((log) => !!log); + .find((log) => !!log && log.fragment.name === eventName); }; diff --git a/chain-api/src/hardhat/contracts/License.sol b/chain-api/src/hardhat/contracts/License.sol new file mode 100644 index 0000000..fa79f80 --- /dev/null +++ b/chain-api/src/hardhat/contracts/License.sol @@ -0,0 +1,101 @@ +//SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol"; +import "@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner.sol"; + +/** + * Request testnet LINK and ETH here: https://faucets.chain.link/ + * Find information on LINK Token Contracts and get the latest ETH and LINK faucets here: https://docs.chain.link/docs/link-token-contracts/ + */ + +/** + * THIS IS AN EXAMPLE CONTRACT THAT USES UN-AUDITED CODE. + */ +contract LinkWellStringBytesConsumerContractExample is ChainlinkClient, ConfirmedOwner { + using Chainlink for Chainlink.Request; + + address private oracleAddress; + bytes32 private jobId; + uint256 private fee; + + constructor() ConfirmedOwner(msg.sender) { + _setChainlinkToken(0x0Fd9e8d3aF1aaee056EB9e802c3A762a667b1904); + setOracleAddress(0xd36c6B1777c7f3Db1B3201bDD87081A9045B7b46); + setJobId("8ced832954544a3c98543c94a51d6a8d"); + setFeeInHundredthsOfLink(0); // 0 LINK + } + + // Send a request to the Chainlink oracle + function request() public { + + Chainlink.Request memory req = _buildOperatorRequest(jobId, this.fulfill.selector); + + // DEFINE THE REQUEST PARAMETERS (example) + req._add('method', 'POST'); + req._add('url', 'https://httpbin.org/post'); + req._add('headers', '["accept", "application/json", "set-cookie", "sid=14A52"]'); + req._add('body', '{"data":[{"id":1,"name":"Bitcoin","price":20194.52},{"id":2,"name":"Ethereum","price":1850.46},{"id":3,"name":"Chainlink","price":18.36}]}'); + req._add('contact', ''); // PLEASE ENTER YOUR CONTACT INFO. this allows us to notify you in the event of any emergencies related to your request (ie, bugs, downtime, etc.). example values: 'derek_linkwellnodes.io' (Discord handle) OR 'derek@linkwellnodes.io' OR '+1-617-545-4721' + + // The following curl command simulates the above request parameters: + // curl 'https://httpbin.org/post' --request 'POST' --header 'content-type: application/json' --header 'set-cookie: sid=14A52' --data '{"data":[{"id":1,"name":"Bitcoin","price":20194.52},{"id":2,"name":"Ethereum","price":1850.46},{"id":3,"name":"Chainlink","price":18.36}]}' + + // PROCESS THE RESULT (example) + req._add('path', 'json,data,0,name'); + + // Send the request to the Chainlink oracle + _sendOperatorRequest(req, fee); + } + + bytes public responseBytes; + + // Receive the result from the Chainlink oracle + event RequestFulfilled(bytes32 indexed requestId); + function fulfill(bytes32 requestId, bytes memory bytesData) public recordChainlinkFulfillment(requestId) { + // Process the oracle response + // emit RequestFulfilled(requestId); // (optional) emits this event in the on-chain transaction logs, allowing Web3 applications to listen for this transaction + responseBytes = bytesData; // example value: 0x426974636f696e + } + + // Retrieve the response data as a string + function getResponseString() public view onlyOwner returns (string memory) { + return string(responseBytes); // example value: Bitcoin + } + + // Update oracle address + function setOracleAddress(address _oracleAddress) public onlyOwner { + oracleAddress = _oracleAddress; + _setChainlinkOracle(_oracleAddress); + } + function getOracleAddress() public view onlyOwner returns (address) { + return oracleAddress; + } + + // Update jobId + function setJobId(string memory _jobId) public onlyOwner { + jobId = bytes32(bytes(_jobId)); + } + function getJobId() public view onlyOwner returns (string memory) { + return string(abi.encodePacked(jobId)); + } + + // Update fees + function setFeeInJuels(uint256 _feeInJuels) public onlyOwner { + fee = _feeInJuels; + } + function setFeeInHundredthsOfLink(uint256 _feeInHundredthsOfLink) public onlyOwner { + setFeeInJuels((_feeInHundredthsOfLink * LINK_DIVISIBILITY) / 100); + } + function getFeeInHundredthsOfLink() public view onlyOwner returns (uint256) { + return (fee * 100) / LINK_DIVISIBILITY; + } + + function withdrawLink() public onlyOwner { + LinkTokenInterface link = LinkTokenInterface(_chainlinkTokenAddress()); + require( + link.transfer(msg.sender, link.balanceOf(address(this))), + "Unable to transfer" + ); + } +} \ No newline at end of file diff --git a/chain-api/src/hardhat/contracts/Lock.sol b/chain-api/src/hardhat/contracts/Lock.sol deleted file mode 100644 index 1efbef3..0000000 --- a/chain-api/src/hardhat/contracts/Lock.sol +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.24; - -// Uncomment this line to use console.log -// import "hardhat/console.sol"; - -contract Lock { - uint public unlockTime; - address payable public owner; - - event Withdrawal(uint amount, uint when); - - constructor(uint _unlockTime) payable { - require( - block.timestamp < _unlockTime, - "Unlock time should be in the future" - ); - - unlockTime = _unlockTime; - owner = payable(msg.sender); - } - - function withdraw() public { - // Uncomment this line, and the import of "hardhat/console.sol", to print a log in your terminal - // console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp); - - require(block.timestamp >= unlockTime, "You can't withdraw yet"); - require(msg.sender == owner, "You aren't the owner"); - - emit Withdrawal(address(this).balance, block.timestamp); - - owner.transfer(address(this).balance); - } -} diff --git a/chain-api/src/hardhat/contracts/MultiSigWallet.sol b/chain-api/src/hardhat/contracts/MultiSigWallet.sol index 0ffba22..83dd3b2 100644 --- a/chain-api/src/hardhat/contracts/MultiSigWallet.sol +++ b/chain-api/src/hardhat/contracts/MultiSigWallet.sol @@ -20,8 +20,6 @@ contract MultiSigWallet { event RevokeConfirmation(address indexed owner, uint indexed txIndex); event ExecuteTransaction(address indexed owner, uint indexed txIndex); event ExecuteTransactionFailed(address indexed owner, uint indexed txIndex, string reason); - event Payout(address indexed employee, uint salaryInETH); - event PayoutFailed(address indexed employee, uint salaryInETH, string reason); address[] public owners; @@ -132,9 +130,6 @@ contract MultiSigWallet { if (success) { transaction.executed = true; emit ExecuteTransaction(msg.sender, _txIndex); - if (returnData.length > 0) { - emitEventFromReturnData(returnData); - } } else { // Get the revert reason and emit it if (returnData.length > 0) { @@ -150,30 +145,6 @@ contract MultiSigWallet { } } - function emitEventFromReturnData(bytes memory returnData) internal { - // Decode the selector from returnData - bytes4 selector; - assembly { - selector := mload(add(returnData, 32)) - } - - // Match the selector to the known events - if (selector == Payout.selector) { - (address employee, uint salaryInETH) = abi.decode(slice(returnData, 4, returnData.length), (address, uint)); - emit Payout(employee, salaryInETH); - } else if (selector == PayoutFailed.selector) { - (address employee, uint salaryInETH, string memory reason) = abi.decode(slice(returnData, 4, returnData.length), (address, uint, string)); - emit PayoutFailed(employee, salaryInETH, reason); - } - } - function slice(bytes memory data, uint start, uint length) internal pure returns (bytes memory) { - bytes memory result = new bytes(length); - for (uint i = 0; i < length; i++) { - result[i] = data[start + i]; - } - return result; - } - function revokeConfirmation( uint _txIndex ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) { diff --git a/chain-api/src/hardhat/contracts/PriceFeedMock.sol b/chain-api/src/hardhat/contracts/PriceFeedMock.sol new file mode 100644 index 0000000..5d2dce9 --- /dev/null +++ b/chain-api/src/hardhat/contracts/PriceFeedMock.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.7; + +contract PriceFeedMock { + function latestRoundData() + external + pure + returns ( + uint80 roundId, + int answer, + uint startedAt, + uint updatedAt, + uint80 answeredInRound + ) + { + return (0, 3087, 0, 0, 0); // Mock data, 1 ETH = 3087 USDT + } +} diff --git a/chain-api/src/hardhat/contracts/Salaries.sol b/chain-api/src/hardhat/contracts/Salaries.sol index 0c2d3ed..1f6a132 100644 --- a/chain-api/src/hardhat/contracts/Salaries.sol +++ b/chain-api/src/hardhat/contracts/Salaries.sol @@ -21,7 +21,7 @@ contract Salaries { _; } - function getSalary(address employee) public view returns(uint) { + function getUsdtSalary(address employee) public view returns(uint) { return salaries[employee]; } @@ -43,16 +43,18 @@ contract Salaries { salaries[employee] = salaryInUSDT; } - function payoutInETH(address payable employee) external onlyMultisig { + function getEmployeeSalaryInEth(address employee) public view returns(uint){ uint salaryInUSDT = salaries[employee]; require(salaryInUSDT > 0, 'No salary set'); int ethToUSDT = getLatestUSDTPriceInETH(); require(ethToUSDT > 0, 'Invalid price data'); - - // Convert salary from USDT to ETH based on the latest price uint salaryInETH = uint(salaryInUSDT * 1e18) / uint(ethToUSDT); + return salaryInETH * 1e8; + } + function payoutInETH(address payable employee) external onlyMultisig { + uint salaryInETH = getEmployeeSalaryInEth(employee); // Check sufficient balance require( address(this).balance >= salaryInETH, @@ -67,10 +69,6 @@ contract Salaries { } } - function dummy() public pure returns (uint){ - return 1337; - } - // Fallback to receive ETH receive() external payable {} } diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts index b4722ab..07d0d49 100644 --- a/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts +++ b/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts @@ -3,6 +3,7 @@ import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; import { MultiSigWalletService } from 'src/hardhat/modules/multi-sig/multi-sig.service'; import { ConfirmTransactionDto, + DeployMultiSigResponseDto, DepositContractDto, ExecuteTransactionDto, GetTransactionDto, @@ -15,9 +16,17 @@ import { MultiSigWalletDto } from './multi-sig.dto'; export class MultiSigInteractController { constructor(private readonly multiSigWalletService: MultiSigWalletService) {} + @ApiOkResponse({ + type: DeployMultiSigResponseDto, + }) @Post('deploy') - async deploy(@Body() dto: MultiSigWalletDto) { - return this.multiSigWalletService.deploy(dto); + async deploy( + @Body() dto: MultiSigWalletDto, + ): Promise { + const addr = await this.multiSigWalletService.deploy(dto); + return { + address: addr, + }; } @Get('owners/:address') async getOwners(@Param('address') address: string) { diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts b/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts index cc54946..f913f65 100644 --- a/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts +++ b/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts @@ -1,5 +1,4 @@ -import { TransactionReceipt, ethers, parseEther } from 'ethers'; -import { ConfigService } from '@nestjs/config'; +import { ethers, parseEther, TransactionReceipt } from 'ethers'; import * as hre from 'hardhat'; import { BaseContractService } from '../base-contract.service'; import { MultiSigWalletDto } from './multi-sig.dto'; @@ -27,8 +26,7 @@ export class MultiSigWalletService extends BaseContractService { dto.confirmations, ); await myContract.waitForDeployment(); - const address = myContract.getAddress(); - return address; + return myContract.getAddress(); } async getOwners(address: string) { @@ -39,9 +37,7 @@ export class MultiSigWalletService extends BaseContractService { const contract = new ethers.Contract(address, abi, signer); - const owners = await contract.getOwners(); - - return owners; + return await contract.getOwners(); } async submitTransaction(dto: SubmitTransactionDto) { @@ -54,7 +50,7 @@ export class MultiSigWalletService extends BaseContractService { const tx = await contract.submitTransaction(destination, value, data); const txResponse: TransactionReceipt = await tx.wait(); - const eventParse = parseLogs(txResponse, contract); + const eventParse = parseLogs(txResponse, contract, 'SubmitTransaction'); return { txHash: txResponse.hash, @@ -77,7 +73,7 @@ export class MultiSigWalletService extends BaseContractService { const txResponse: TransactionReceipt = await tx.wait(); - const eventParse = parseLogs(txResponse, contract); + const eventParse = parseLogs(txResponse, contract, 'ConfirmTransaction'); return { txHash: txResponse.hash, @@ -96,8 +92,7 @@ export class MultiSigWalletService extends BaseContractService { const tx = await contract.executeTransaction(index); const txResponse: TransactionReceipt = await tx.wait(); - console.log('=>(multi-sig.service.ts:99) txResponse', txResponse.logs); - const eventParse = parseLogs(txResponse, contract); + const eventParse = parseLogs(txResponse, contract, 'ExecuteTransaction'); return { txHash: txResponse.hash, sender: eventParse.args[0].toString(), @@ -155,7 +150,7 @@ export class MultiSigWalletService extends BaseContractService { const txResponse: TransactionReceipt = await tx.wait(); - const eventParse = parseLogs(txResponse, contract); + const eventParse = parseLogs(txResponse, contract, 'ExecuteTransaction'); return { txHash: txResponse.hash, diff --git a/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts b/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts index 0646fc5..fae89ef 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts +++ b/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts @@ -2,20 +2,32 @@ import { Body, Controller, Get, Param, Post } from '@nestjs/common'; import { SalariesService } from './salaries.service'; import { CreatePayoutDto, + DeployContractResponseDto, GetEmployeeSalariesDto, SalariesDeployDto, SetSalaryDto, } from './salaries.dto'; -import { ApiTags } from '@nestjs/swagger'; -import { DepositContractDto } from '../../../contract-interact/dto/multi-sig.dto'; +import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; +import { + DeployMultiSigResponseDto, + DepositContractDto, +} from '../../../contract-interact/dto/multi-sig.dto'; @ApiTags('salaries') @Controller('salaries') export class SalariesController { constructor(private readonly salariesService: SalariesService) {} + @ApiOkResponse({ + type: DeployContractResponseDto, + }) @Post('deploy') - async deploy(@Body() dto: SalariesDeployDto) { - return this.salariesService.deploy(dto); + async deploy( + @Body() dto: SalariesDeployDto, + ): Promise { + const address = await this.salariesService.deploy(dto); + return { + address, + }; } @Get('usdt-price/:contractAddress') diff --git a/chain-api/src/hardhat/modules/salaries/salaries.dto.ts b/chain-api/src/hardhat/modules/salaries/salaries.dto.ts index 322ae38..5cee16d 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries.dto.ts +++ b/chain-api/src/hardhat/modules/salaries/salaries.dto.ts @@ -35,3 +35,8 @@ export class CreatePayoutDto extends GeneralEmpoyeeSalaryDto { @IsString() multiSigWallet: string; } + +export class DeployContractResponseDto { + @IsString() + address: string; +} diff --git a/chain-api/src/hardhat/modules/salaries/salaries.service.ts b/chain-api/src/hardhat/modules/salaries/salaries.service.ts index 8bef96e..04ce55d 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries.service.ts +++ b/chain-api/src/hardhat/modules/salaries/salaries.service.ts @@ -20,7 +20,7 @@ export class SalariesService extends BaseContractService { ) { super(providerService); } - async deploy(dto: SalariesDeployDto): Promise { + async deploy(dto: SalariesDeployDto) { const { abi, bytecode } = await hre.artifacts.readArtifact('Salaries'); const signer = await this.providerService.getSigner(); @@ -71,7 +71,7 @@ export class SalariesService extends BaseContractService { const contract = new ethers.Contract(contractAddress, abi, signer); - const answer: BigInt = await contract.getSalary(employeeAddress); + const answer: BigInt = await contract.getUsdtSalary(employeeAddress); return { salaryInUsd: answer.toString(), }; @@ -79,7 +79,6 @@ export class SalariesService extends BaseContractService { async createPayout(dto: CreatePayoutDto) { const { employeeAddress, contractAddress, multiSigWallet } = dto; - console.log('=>(salaries.service.ts:82) employeeAddress', employeeAddress); const ISubmitMultiSig = new ethers.Interface([ 'function payoutInETH(address employee)', ]); diff --git a/chain-api/src/hardhat/test/Salaries.test.ts b/chain-api/src/hardhat/test/Salaries.test.ts new file mode 100644 index 0000000..fc14681 --- /dev/null +++ b/chain-api/src/hardhat/test/Salaries.test.ts @@ -0,0 +1,69 @@ +import { PriceFeedMock, Salaries } from '../../../typechain'; + +const { ethers } = require('hardhat'); +const { expect } = require('chai'); +import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; + +describe('Salaries', function () { + let salaries: Salaries; + let owner: SignerWithAddress; + let multisigWallet: SignerWithAddress; + let addr1: SignerWithAddress; + let priceFeedMock: PriceFeedMock; + + beforeEach(async function () { + [owner, multisigWallet, addr1] = await ethers.getSigners(); + + const PriceFeedMockFactory = + await ethers.getContractFactory('PriceFeedMock'); + priceFeedMock = await PriceFeedMockFactory.deploy(); + await priceFeedMock.getDeployedCode(); + // Deploy the Salaries contract + const SalariesFactory = await ethers.getContractFactory('Salaries'); + salaries = (await SalariesFactory.deploy( + multisigWallet.address, + await priceFeedMock.getAddress(), + )) as Salaries; + await salaries.getDeployedCode(); + }); + + it('Should set and get salary correctly', async function () { + await salaries.connect(multisigWallet).setSalary(addr1.address, 1000); + expect(await salaries.getUsdtSalary(addr1.address)).to.equal(1000); + }); + + it('Should payout in ETH correctly', async function () { + // Set the salary in USDT + await salaries.connect(multisigWallet).setSalary(addr1.address, 100); + expect(await salaries.getUsdtSalary(addr1.address)).to.equal(100); + + // Fund the contract with ETH + await owner.sendTransaction({ + to: await salaries.getAddress(), + value: ethers.parseEther('1'), // 1 ETH + }); + + await expect(() => + salaries.connect(multisigWallet).payoutInETH(addr1.address), + ).to.changeEtherBalances( + [salaries, addr1], + ['-32393909944930353', '32393909944930353'], + ); + + // Check events + expect(salaries.connect(multisigWallet).payoutInETH(addr1.address)); + }); +}); + +describe('PriceFeedMock', function () { + it('Should return the mocked price', async function () { + const PriceFeedMockFactory = + await ethers.getContractFactory('PriceFeedMock'); + const priceFeedMock = await PriceFeedMockFactory.deploy(); + await priceFeedMock.getDeployedCode(); + + expect((await priceFeedMock.latestRoundData())[1].toString()).to.equal( + '3087', + ); + }); +}); diff --git a/chain-api/src/provider/provider.service.ts b/chain-api/src/provider/provider.service.ts index 711574c..510ae06 100644 --- a/chain-api/src/provider/provider.service.ts +++ b/chain-api/src/provider/provider.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; import { ethers } from 'ethers'; import { ConfigService } from '@nestjs/config'; + @Injectable() export class ProviderService { public provider: ethers.JsonRpcProvider; @@ -29,10 +30,9 @@ export class ProviderService { if (!this.provider) { await this.getProvider(); } - const signer = new ethers.Wallet( + return new ethers.Wallet( this.configService.getOrThrow('POLYGON_PK'), this.provider, ); - return signer; } } From ebf2edafff380c42bebb036997cb3453c1b614a0 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Sat, 18 May 2024 02:24:12 +0300 Subject: [PATCH 12/17] license interact needs to be done --- chain-api/src/hardhat/contracts/License.sol | 1 + .../salaries/salaries-interact.controller.ts | 5 +++ .../modules/salaries/salaries.service.ts | 36 +++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/chain-api/src/hardhat/contracts/License.sol b/chain-api/src/hardhat/contracts/License.sol index fa79f80..7e11e62 100644 --- a/chain-api/src/hardhat/contracts/License.sol +++ b/chain-api/src/hardhat/contracts/License.sol @@ -12,6 +12,7 @@ import "@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner.sol"; /** * THIS IS AN EXAMPLE CONTRACT THAT USES UN-AUDITED CODE. */ + contract LinkWellStringBytesConsumerContractExample is ChainlinkClient, ConfirmedOwner { using Chainlink for Chainlink.Request; diff --git a/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts b/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts index fae89ef..bb7d100 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts +++ b/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts @@ -54,4 +54,9 @@ export class SalariesController { async deposit(@Body() dto: DepositContractDto) { return this.salariesService.deposit(dto); } + + @Get('get-license-request') + async getLicenseRequest() { + return this.salariesService.getLicenseRequest(); + } } diff --git a/chain-api/src/hardhat/modules/salaries/salaries.service.ts b/chain-api/src/hardhat/modules/salaries/salaries.service.ts index 04ce55d..f37adc2 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries.service.ts +++ b/chain-api/src/hardhat/modules/salaries/salaries.service.ts @@ -35,6 +35,42 @@ export class SalariesService extends BaseContractService { return await myContract.getAddress(); } + async getLicenseRequest() { + const { abi } = await hre.artifacts.readArtifact( + 'LinkWellStringBytesConsumerContractExample', + ); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract( + '0xbc3c4fed4C3A977b8868b589662270F1aEA6A777', + abi, + signer, + ); + + const answer: string = await contract.request(); + console.log('=>(salaries.service.ts:45) answer', answer); + const licenseres = await this.getLicenseResponse(); + console.log('=>(salaries.service.ts:53) licenseres', licenseres); + return answer; + } + + async getLicenseResponse() { + const { abi } = await hre.artifacts.readArtifact( + 'LinkWellStringBytesConsumerContractExample', + ); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract( + '0xbc3c4fed4C3A977b8868b589662270F1aEA6A777', + abi, + signer, + ); + + const answer: string = await contract.responseBytes(); + console.log('=>(salaries.service.ts:45) answer', answer); + return answer; + } + async getLatestUSDTPrice(contractAddress: string) { const { abi } = await hre.artifacts.readArtifact('Salaries'); const signer = await this.providerService.getSigner(); From b87cc10c3d1a690d3d36aae1a563776974559150 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Sun, 19 May 2024 00:22:18 +0300 Subject: [PATCH 13/17] license init, deploy block --- .gitignore | 2 + chain-api/package-lock.json | 1 + chain-api/package.json | 2 + .../modules => base}/base-contract.service.ts | 3 +- chain-api/src/base/base.module.ts | 10 ++ .../{ => base}/provider/provider.module.ts | 0 .../{ => base}/provider/provider.service.ts | 0 chain-api/src/config/chainlink.config.ts | 12 ++ .../contract-interact.module.ts | 6 +- .../dto/create-contract-interact.dto.ts | 8 - .../dto/update-contract-interact.dto.ts | 4 - .../src/contract-interact/ethers.helpers.ts | 11 -- .../license/license.controller.ts | 42 ++++++ .../contract-interact/license/license.dto.ts | 37 +++++ .../license/license.module.ts | 13 ++ .../license/license.service.ts | 137 ++++++++++++++++++ .../{dto => }/multi-sig.dto.ts | 11 +- .../multi-sig-interact.controller.ts | 7 +- .../multi-sig/multi-sig.dto.ts | 0 .../multi-sig/multi-sig.module.ts | 7 +- .../multi-sig/multi-sig.service.ts | 37 ++++- .../salaries/salaries-interact.controller.ts | 11 +- .../salaries/salaries.dto.ts | 0 .../salaries/salaries.module.ts | 4 +- .../salaries/salaries.service.ts | 53 ++----- .../dto/ethers.dto.ts | 0 chain-api/src/ethers-custom/ethers.helpers.ts | 13 ++ chain-api/src/hardhat/contracts/License.sol | 99 ++++++++++--- .../{Salaries.sol => LicensePayout.sol} | 10 +- .../src/hardhat/contracts/MultiSigWallet.sol | 20 ++- chain-api/src/hardhat/contracts/Payroll.sol | 100 +++++++++++++ .../src/hardhat/modules/hardhat.module.ts | 13 -- .../src/hardhat/modules/hardhat.service.ts | 4 - chain-api/src/hardhat/test/Salaries.test.ts | 10 +- 34 files changed, 538 insertions(+), 149 deletions(-) create mode 100644 .gitignore rename chain-api/src/{hardhat/modules => base}/base-contract.service.ts (65%) create mode 100644 chain-api/src/base/base.module.ts rename chain-api/src/{ => base}/provider/provider.module.ts (100%) rename chain-api/src/{ => base}/provider/provider.service.ts (100%) create mode 100644 chain-api/src/config/chainlink.config.ts delete mode 100644 chain-api/src/contract-interact/dto/create-contract-interact.dto.ts delete mode 100644 chain-api/src/contract-interact/dto/update-contract-interact.dto.ts delete mode 100644 chain-api/src/contract-interact/ethers.helpers.ts create mode 100644 chain-api/src/contract-interact/license/license.controller.ts create mode 100644 chain-api/src/contract-interact/license/license.dto.ts create mode 100644 chain-api/src/contract-interact/license/license.module.ts create mode 100644 chain-api/src/contract-interact/license/license.service.ts rename chain-api/src/contract-interact/{dto => }/multi-sig.dto.ts (84%) rename chain-api/src/{hardhat/modules => contract-interact}/multi-sig/multi-sig-interact.controller.ts (93%) rename chain-api/src/{hardhat/modules => contract-interact}/multi-sig/multi-sig.dto.ts (100%) rename chain-api/src/{hardhat/modules => contract-interact}/multi-sig/multi-sig.module.ts (60%) rename chain-api/src/{hardhat/modules => contract-interact}/multi-sig/multi-sig.service.ts (83%) rename chain-api/src/{hardhat/modules => contract-interact}/salaries/salaries-interact.controller.ts (86%) rename chain-api/src/{hardhat/modules => contract-interact}/salaries/salaries.dto.ts (100%) rename chain-api/src/{hardhat/modules => contract-interact}/salaries/salaries.module.ts (77%) rename chain-api/src/{hardhat/modules => contract-interact}/salaries/salaries.service.ts (66%) rename chain-api/src/{hardhat/modules => ethers-custom}/dto/ethers.dto.ts (100%) create mode 100644 chain-api/src/ethers-custom/ethers.helpers.ts rename chain-api/src/hardhat/contracts/{Salaries.sol => LicensePayout.sol} (90%) create mode 100644 chain-api/src/hardhat/contracts/Payroll.sol delete mode 100644 chain-api/src/hardhat/modules/hardhat.module.ts delete mode 100644 chain-api/src/hardhat/modules/hardhat.service.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c5a937 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +.env \ No newline at end of file diff --git a/chain-api/package-lock.json b/chain-api/package-lock.json index c39aca9..de5d6b6 100644 --- a/chain-api/package-lock.json +++ b/chain-api/package-lock.json @@ -10,6 +10,7 @@ "license": "UNLICENSED", "dependencies": { "@chainlink/contracts": "^1.1.0", + "@ethersproject/address": "^5.7.0", "@nestjs/common": "^10.0.0", "@nestjs/config": "^3.2.2", "@nestjs/core": "^10.0.0", diff --git a/chain-api/package.json b/chain-api/package.json index 56aa3ff..6782b90 100644 --- a/chain-api/package.json +++ b/chain-api/package.json @@ -10,6 +10,7 @@ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "nest start", "start:dev": "nest start --watch", + "compile": "npx hardhat compile", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", @@ -21,6 +22,7 @@ }, "dependencies": { "@chainlink/contracts": "^1.1.0", + "@ethersproject/address": "^5.7.0", "@nestjs/common": "^10.0.0", "@nestjs/config": "^3.2.2", "@nestjs/core": "^10.0.0", diff --git a/chain-api/src/hardhat/modules/base-contract.service.ts b/chain-api/src/base/base-contract.service.ts similarity index 65% rename from chain-api/src/hardhat/modules/base-contract.service.ts rename to chain-api/src/base/base-contract.service.ts index 293b490..dca2b7d 100644 --- a/chain-api/src/hardhat/modules/base-contract.service.ts +++ b/chain-api/src/base/base-contract.service.ts @@ -1,6 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; -import { ProviderService } from 'src/provider/provider.service'; +import { ProviderService } from './provider/provider.service'; @Injectable() export abstract class BaseContractService { diff --git a/chain-api/src/base/base.module.ts b/chain-api/src/base/base.module.ts new file mode 100644 index 0000000..8e86d7f --- /dev/null +++ b/chain-api/src/base/base.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { ProviderModule } from './provider/provider.module'; + +@Module({ + imports: [ProviderModule], + controllers: [], + providers: [ProviderModule], + exports: [ProviderModule], +}) +export class BaseModule {} diff --git a/chain-api/src/provider/provider.module.ts b/chain-api/src/base/provider/provider.module.ts similarity index 100% rename from chain-api/src/provider/provider.module.ts rename to chain-api/src/base/provider/provider.module.ts diff --git a/chain-api/src/provider/provider.service.ts b/chain-api/src/base/provider/provider.service.ts similarity index 100% rename from chain-api/src/provider/provider.service.ts rename to chain-api/src/base/provider/provider.service.ts diff --git a/chain-api/src/config/chainlink.config.ts b/chain-api/src/config/chainlink.config.ts new file mode 100644 index 0000000..6bc3ed9 --- /dev/null +++ b/chain-api/src/config/chainlink.config.ts @@ -0,0 +1,12 @@ +export const CHAINLINK = { + AMOY: { + CHAINLINK_TOKEN: '0x0Fd9e8d3aF1aaee056EB9e802c3A762a667b1904', + ORACLE_ADDRESS: '0xd36c6B1777c7f3Db1B3201bDD87081A9045B7b46', + AGGREGATOR_ADDRESS: { + USDT_ETH: '0xF0d50568e3A7e8259E16663972b11910F89BD8e7', + }, + JOB_IDS: { + UINT: 'a8356f48569c434eaa4ac5fcb4db5cc0', + }, + }, +}; diff --git a/chain-api/src/contract-interact/contract-interact.module.ts b/chain-api/src/contract-interact/contract-interact.module.ts index 1e55000..48a9229 100644 --- a/chain-api/src/contract-interact/contract-interact.module.ts +++ b/chain-api/src/contract-interact/contract-interact.module.ts @@ -1,8 +1,10 @@ import { Module } from '@nestjs/common'; -import { HardhatModule } from 'src/hardhat/modules/hardhat.module'; +import { SalariesModule } from './salaries/salaries.module'; +import { MultiSigModule } from './multi-sig/multi-sig.module'; +import { LicenseModule } from './license/license.module'; @Module({ - imports: [HardhatModule], + imports: [SalariesModule, MultiSigModule, LicenseModule], controllers: [], providers: [], }) diff --git a/chain-api/src/contract-interact/dto/create-contract-interact.dto.ts b/chain-api/src/contract-interact/dto/create-contract-interact.dto.ts deleted file mode 100644 index 55510a9..0000000 --- a/chain-api/src/contract-interact/dto/create-contract-interact.dto.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ApiProperty } from '@nestjs/swagger'; - -export class CreateContractInteractDto { - @ApiProperty() - contractAddress: string; - @ApiProperty() - sender: string; -} diff --git a/chain-api/src/contract-interact/dto/update-contract-interact.dto.ts b/chain-api/src/contract-interact/dto/update-contract-interact.dto.ts deleted file mode 100644 index ec7c282..0000000 --- a/chain-api/src/contract-interact/dto/update-contract-interact.dto.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PartialType } from '@nestjs/swagger'; -import { CreateContractInteractDto } from './create-contract-interact.dto'; - -export class UpdateContractInteractDto extends PartialType(CreateContractInteractDto) {} diff --git a/chain-api/src/contract-interact/ethers.helpers.ts b/chain-api/src/contract-interact/ethers.helpers.ts deleted file mode 100644 index d3b5148..0000000 --- a/chain-api/src/contract-interact/ethers.helpers.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { TransactionReceipt, ethers } from 'ethers'; - -export const parseLogs = ( - txReceipt: TransactionReceipt, - contract: ethers.Contract, - eventName: string, -) => { - return txReceipt.logs - .map((log) => contract.interface.parseLog(log)) - .find((log) => !!log && log.fragment.name === eventName); -}; diff --git a/chain-api/src/contract-interact/license/license.controller.ts b/chain-api/src/contract-interact/license/license.controller.ts new file mode 100644 index 0000000..502c70a --- /dev/null +++ b/chain-api/src/contract-interact/license/license.controller.ts @@ -0,0 +1,42 @@ +import { Body, Controller, Get, Post } from '@nestjs/common'; +import { LicenseService } from './license.service'; +import { ApiTags } from '@nestjs/swagger'; +import { + DeployLicenseDto, + GetShareLicense, + RequestLicenseDto, +} from './license.dto'; +@ApiTags('license') +@Controller('license') +export class LicenseController { + constructor(private readonly licenseService: LicenseService) {} + @Get('request') + async getLicenseRequest(@Body() dto: RequestLicenseDto) { + return this.licenseService.request(dto); + } + + @Post('deploy') + async deploy(@Body() dto: DeployLicenseDto) { + return this.licenseService.deploy(dto); + } + + @Get('total-payout') + async getLicenseResponse(@Body() dto: RequestLicenseDto) { + return this.licenseService.getTotalPayoutInUSD(dto); + } + + @Get('shares') + async getShares(@Body() dto: GetShareLicense) { + return this.licenseService.getShares(dto); + } + + @Get('owners') + async getOwners(@Body() dto: GetShareLicense) { + return this.licenseService.getOwners(dto); + } + + @Get('payout-contract') + async getPayoutContract(@Body() dto: GetShareLicense) { + return this.licenseService.getPayoutContract(dto); + } +} diff --git a/chain-api/src/contract-interact/license/license.dto.ts b/chain-api/src/contract-interact/license/license.dto.ts new file mode 100644 index 0000000..f3422cf --- /dev/null +++ b/chain-api/src/contract-interact/license/license.dto.ts @@ -0,0 +1,37 @@ +import { IsArray, IsNumber, IsString } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +export class GetLicenseInfoDto { + @ApiProperty() + @IsString() + contractAddress: string; +} +export class DeployLicenseDto { + @ApiProperty() + @IsString() + multiSigWallet: string; + @ApiProperty() + @IsArray() + owners: string[]; + @ApiProperty({ + isArray: true, + type: Number, + }) + @IsNumber({}, { each: true }) + shares: number[]; + @ApiProperty() + @IsString() + payrollAddress: string; +} + +export class RequestLicenseDto extends GetLicenseInfoDto { + @ApiProperty() + @IsString() + multiSigWallet: string; +} + +export class GetLicenseResponseDto extends GetLicenseInfoDto {} + +export class GetShareLicense extends GetLicenseInfoDto { + @IsString() + ownerAddress: string; +} diff --git a/chain-api/src/contract-interact/license/license.module.ts b/chain-api/src/contract-interact/license/license.module.ts new file mode 100644 index 0000000..94fe76c --- /dev/null +++ b/chain-api/src/contract-interact/license/license.module.ts @@ -0,0 +1,13 @@ +import { Module } from '@nestjs/common'; +import { LicenseController } from './license.controller'; +import { LicenseService } from './license.service'; +import { BaseModule } from '../../base/base.module'; +import { MultiSigModule } from '../multi-sig/multi-sig.module'; + +@Module({ + imports: [BaseModule, MultiSigModule], + controllers: [LicenseController], + providers: [LicenseService], + exports: [LicenseService], +}) +export class LicenseModule {} diff --git a/chain-api/src/contract-interact/license/license.service.ts b/chain-api/src/contract-interact/license/license.service.ts new file mode 100644 index 0000000..9cb8484 --- /dev/null +++ b/chain-api/src/contract-interact/license/license.service.ts @@ -0,0 +1,137 @@ +import { Injectable } from '@nestjs/common'; +import * as hre from 'hardhat'; +import { ethers } from 'ethers'; +import { BaseContractService } from '../../base/base-contract.service'; +import { + DeployLicenseDto, + GetLicenseInfoDto, + GetLicenseResponseDto, + GetShareLicense, + RequestLicenseDto, +} from './license.dto'; +import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; +import { ProviderService } from '../../base/provider/provider.service'; +import { CHAINLINK } from '../../config/chainlink.config'; + +@Injectable() +export class LicenseService extends BaseContractService { + constructor( + private readonly multiSigService: MultiSigWalletService, + public readonly providerService: ProviderService, + ) { + super(providerService); + } + async request(dto: RequestLicenseDto) { + const { multiSigWallet, contractAddress } = dto; + + const ISubmitMultiSig = new ethers.Interface(['function request()']); + const data = ISubmitMultiSig.encodeFunctionData('request'); + + return await this.multiSigService.submitTransaction({ + contractAddress: multiSigWallet, + destination: contractAddress, + value: '0', + data, + }); + } + + async getTotalPayoutInUSD(dto: GetLicenseResponseDto) { + const { contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact( + 'StreamingRightsManagement', + ); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const answer: bigint = await contract.totalPayoutInUSD(); + console.log('=>(license.service.ts:45) answer', answer); + return answer.toString(); + } + + async deploy(dto: DeployLicenseDto) { + console.log('=>(license.service.ts:53) dto', dto); + const { multiSigWallet, shares, owners, payrollAddress } = dto; + const { abi, bytecode } = await hre.artifacts.readArtifact( + 'StreamingRightsManagement', + ); + const signer = await this.providerService.getSigner(); + + const licenseContract = new ethers.ContractFactory(abi, bytecode, signer); + + const myContract = await licenseContract.getDeployTransaction( + CHAINLINK.AMOY.CHAINLINK_TOKEN, + CHAINLINK.AMOY.ORACLE_ADDRESS, + CHAINLINK.AMOY.JOB_IDS.UINT, + 0, + multiSigWallet, + owners, + shares, + payrollAddress, + ); + const submitData = await this.multiSigService.submitTransaction({ + contractAddress: multiSigWallet, + destination: null, + value: '0', + data: myContract.data, + }); + delete submitData.data; + return submitData; + } + + async getPayoutContract(dto: GetLicenseInfoDto) { + const { contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact( + 'StreamingRightsManagement', + ); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const answer: string = await contract.payoutContract(); + + return answer; + } + + async getOwners(dto: GetLicenseInfoDto) { + const { contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact( + 'StreamingRightsManagement', + ); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const answer: string[] = await contract.owners(); + + return answer; + } + + async getShares(dto: GetShareLicense) { + const { contractAddress, ownerAddress } = dto; + const { abi } = await hre.artifacts.readArtifact( + 'StreamingRightsManagement', + ); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const answer: number = await contract.getShare(ownerAddress); + + return answer; + } + + async getTotalPayout(dto: GetLicenseInfoDto) { + const { contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact( + 'StreamingRightsManagement', + ); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const answer: number = await contract.totalPayoutInUSD(); + + return answer; + } +} diff --git a/chain-api/src/contract-interact/dto/multi-sig.dto.ts b/chain-api/src/contract-interact/multi-sig.dto.ts similarity index 84% rename from chain-api/src/contract-interact/dto/multi-sig.dto.ts rename to chain-api/src/contract-interact/multi-sig.dto.ts index 2803201..61d19b1 100644 --- a/chain-api/src/contract-interact/dto/multi-sig.dto.ts +++ b/chain-api/src/contract-interact/multi-sig.dto.ts @@ -1,5 +1,5 @@ import { ApiProperty } from '@nestjs/swagger'; -import { IsNumber, IsOptional, IsString } from 'class-validator'; +import { IsBoolean, IsNumber, IsOptional, IsString } from 'class-validator'; export class SubmitTransactionDto { @IsString() @@ -13,7 +13,7 @@ export class SubmitTransactionDto { value: string; @IsOptional() @IsString() - // @ApiProperty() + @ApiProperty() data: string; } @@ -26,7 +26,12 @@ export class ConfirmTransactionDto { index: number; } -export class ExecuteTransactionDto extends ConfirmTransactionDto {} +export class ExecuteTransactionDto extends ConfirmTransactionDto { + @IsOptional() + @IsBoolean() + @ApiProperty() + isDeploy: boolean; +} export class RevokeConfirmationDto extends ConfirmTransactionDto {} diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts b/chain-api/src/contract-interact/multi-sig/multi-sig-interact.controller.ts similarity index 93% rename from chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts rename to chain-api/src/contract-interact/multi-sig/multi-sig-interact.controller.ts index 07d0d49..97796e0 100644 --- a/chain-api/src/hardhat/modules/multi-sig/multi-sig-interact.controller.ts +++ b/chain-api/src/contract-interact/multi-sig/multi-sig-interact.controller.ts @@ -1,6 +1,8 @@ import { Body, Controller, Get, Param, Post } from '@nestjs/common'; import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; -import { MultiSigWalletService } from 'src/hardhat/modules/multi-sig/multi-sig.service'; + +import { MultiSigWalletDto } from './multi-sig.dto'; +import { MultiSigWalletService } from './multi-sig.service'; import { ConfirmTransactionDto, DeployMultiSigResponseDto, @@ -9,8 +11,7 @@ import { GetTransactionDto, RevokeConfirmationDto, SubmitTransactionDto, -} from '../../../contract-interact/dto/multi-sig.dto'; -import { MultiSigWalletDto } from './multi-sig.dto'; +} from '../multi-sig.dto'; @ApiTags('multi-sig') @Controller('multi-sig') export class MultiSigInteractController { diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig.dto.ts b/chain-api/src/contract-interact/multi-sig/multi-sig.dto.ts similarity index 100% rename from chain-api/src/hardhat/modules/multi-sig/multi-sig.dto.ts rename to chain-api/src/contract-interact/multi-sig/multi-sig.dto.ts diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts b/chain-api/src/contract-interact/multi-sig/multi-sig.module.ts similarity index 60% rename from chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts rename to chain-api/src/contract-interact/multi-sig/multi-sig.module.ts index c2d621d..f7f16fa 100644 --- a/chain-api/src/hardhat/modules/multi-sig/multi-sig.module.ts +++ b/chain-api/src/contract-interact/multi-sig/multi-sig.module.ts @@ -1,14 +1,11 @@ import { Module } from '@nestjs/common'; -import { ProviderModule } from 'src/provider/provider.module'; - -import { BaseContractService } from '../base-contract.service'; -import { ProviderService } from 'src/provider/provider.service'; import { MultiSigWalletService } from './multi-sig.service'; import { MultiSigInteractController } from './multi-sig-interact.controller'; +import { BaseModule } from '../../base/base.module'; @Module({ - imports: [ProviderModule], + imports: [BaseModule], controllers: [MultiSigInteractController], providers: [MultiSigWalletService], exports: [MultiSigWalletService], diff --git a/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts b/chain-api/src/contract-interact/multi-sig/multi-sig.service.ts similarity index 83% rename from chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts rename to chain-api/src/contract-interact/multi-sig/multi-sig.service.ts index f913f65..2545073 100644 --- a/chain-api/src/hardhat/modules/multi-sig/multi-sig.service.ts +++ b/chain-api/src/contract-interact/multi-sig/multi-sig.service.ts @@ -1,6 +1,5 @@ import { ethers, parseEther, TransactionReceipt } from 'ethers'; import * as hre from 'hardhat'; -import { BaseContractService } from '../base-contract.service'; import { MultiSigWalletDto } from './multi-sig.dto'; import { ConfirmTransactionDto, @@ -9,8 +8,10 @@ import { GetTransactionDto, RevokeConfirmationDto, SubmitTransactionDto, -} from 'src/contract-interact/dto/multi-sig.dto'; -import { parseLogs } from 'src/contract-interact/ethers.helpers'; +} from 'src/contract-interact/multi-sig.dto'; +import { parseLogs } from 'src/ethers-custom/ethers.helpers'; +import { BaseContractService } from '../../base/base-contract.service'; +import { getContractAddress } from '@ethersproject/address'; export class MultiSigWalletService extends BaseContractService { async deploy(dto: MultiSigWalletDto) { @@ -31,7 +32,6 @@ export class MultiSigWalletService extends BaseContractService { async getOwners(address: string) { const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); - const multiSigContract = new ethers.Contract(address, abi); const signer = await this.providerService.getSigner(); @@ -47,7 +47,11 @@ export class MultiSigWalletService extends BaseContractService { const contract = new ethers.Contract(contractAddress, abi, signer); - const tx = await contract.submitTransaction(destination, value, data); + const tx = await contract.submitTransaction( + destination || '0x0000000000000000000000000000000000000000', + value, + data, + ); const txResponse: TransactionReceipt = await tx.wait(); const eventParse = parseLogs(txResponse, contract, 'SubmitTransaction'); @@ -83,21 +87,40 @@ export class MultiSigWalletService extends BaseContractService { } async executeTransaction(dto: ExecuteTransactionDto) { - const { index, contractAddress } = dto; + const { index, contractAddress, isDeploy } = dto; const { abi } = await hre.artifacts.readArtifact('MultiSigWallet'); const signer = await this.providerService.getSigner(); const contract = new ethers.Contract(contractAddress, abi, signer); + const deployedAddress = await this.calculateFutureAddress(contractAddress); const tx = await contract.executeTransaction(index); const txResponse: TransactionReceipt = await tx.wait(); + console.log('=>(multi-sig.service.ts:101) txResponse', txResponse.logs); + const eventParse = parseLogs(txResponse, contract, 'ExecuteTransaction'); - return { + const data = { txHash: txResponse.hash, sender: eventParse.args[0].toString(), txIndex: eventParse.args[1].toString(), }; + if (isDeploy) { + return { ...data, deployedAddress }; + } else { + return data; + } + } + + async calculateFutureAddress(contractAddress: string) { + const provider = await this.providerService.getProvider(); + + const nonce = await provider.getTransactionCount(contractAddress); + + return getContractAddress({ + from: contractAddress, + nonce: nonce + 1, + }); } async revokeConfirmation(dto: RevokeConfirmationDto) { diff --git a/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts b/chain-api/src/contract-interact/salaries/salaries-interact.controller.ts similarity index 86% rename from chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts rename to chain-api/src/contract-interact/salaries/salaries-interact.controller.ts index bb7d100..ee529c3 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries-interact.controller.ts +++ b/chain-api/src/contract-interact/salaries/salaries-interact.controller.ts @@ -8,10 +8,8 @@ import { SetSalaryDto, } from './salaries.dto'; import { ApiOkResponse, ApiTags } from '@nestjs/swagger'; -import { - DeployMultiSigResponseDto, - DepositContractDto, -} from '../../../contract-interact/dto/multi-sig.dto'; +import { DepositContractDto } from '../multi-sig.dto'; + @ApiTags('salaries') @Controller('salaries') export class SalariesController { @@ -54,9 +52,4 @@ export class SalariesController { async deposit(@Body() dto: DepositContractDto) { return this.salariesService.deposit(dto); } - - @Get('get-license-request') - async getLicenseRequest() { - return this.salariesService.getLicenseRequest(); - } } diff --git a/chain-api/src/hardhat/modules/salaries/salaries.dto.ts b/chain-api/src/contract-interact/salaries/salaries.dto.ts similarity index 100% rename from chain-api/src/hardhat/modules/salaries/salaries.dto.ts rename to chain-api/src/contract-interact/salaries/salaries.dto.ts diff --git a/chain-api/src/hardhat/modules/salaries/salaries.module.ts b/chain-api/src/contract-interact/salaries/salaries.module.ts similarity index 77% rename from chain-api/src/hardhat/modules/salaries/salaries.module.ts rename to chain-api/src/contract-interact/salaries/salaries.module.ts index bb8d5fc..441c9cb 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries.module.ts +++ b/chain-api/src/contract-interact/salaries/salaries.module.ts @@ -1,11 +1,11 @@ import { Module } from '@nestjs/common'; import { SalariesService } from './salaries.service'; -import { ProviderModule } from 'src/provider/provider.module'; import { SalariesController } from './salaries-interact.controller'; import { MultiSigModule } from '../multi-sig/multi-sig.module'; +import { BaseModule } from '../../base/base.module'; @Module({ - imports: [ProviderModule, MultiSigModule], + imports: [BaseModule, MultiSigModule], controllers: [SalariesController], providers: [SalariesService], exports: [SalariesService], diff --git a/chain-api/src/hardhat/modules/salaries/salaries.service.ts b/chain-api/src/contract-interact/salaries/salaries.service.ts similarity index 66% rename from chain-api/src/hardhat/modules/salaries/salaries.service.ts rename to chain-api/src/contract-interact/salaries/salaries.service.ts index f37adc2..1e1d459 100644 --- a/chain-api/src/hardhat/modules/salaries/salaries.service.ts +++ b/chain-api/src/contract-interact/salaries/salaries.service.ts @@ -1,5 +1,4 @@ import { Injectable } from '@nestjs/common'; -import { BaseContractService } from '../base-contract.service'; import { ethers, parseEther, TransactionReceipt } from 'ethers'; import { CreatePayoutDto, @@ -9,8 +8,10 @@ import { } from './salaries.dto'; import * as hre from 'hardhat'; import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; -import { ProviderService } from '../../../provider/provider.service'; -import { DepositContractDto } from '../../../contract-interact/dto/multi-sig.dto'; +import { BaseContractService } from '../../base/base-contract.service'; +import { ProviderService } from '../../base/provider/provider.service'; +import { DepositContractDto } from '../multi-sig.dto'; +import { CHAINLINK } from '../../config/chainlink.config'; @Injectable() export class SalariesService extends BaseContractService { @@ -21,7 +22,7 @@ export class SalariesService extends BaseContractService { super(providerService); } async deploy(dto: SalariesDeployDto) { - const { abi, bytecode } = await hre.artifacts.readArtifact('Salaries'); + const { abi, bytecode } = await hre.artifacts.readArtifact('Payroll'); const signer = await this.providerService.getSigner(); @@ -29,50 +30,14 @@ export class SalariesService extends BaseContractService { const myContract = await salaryContract.deploy( dto.multiSigWallet, - '0xF0d50568e3A7e8259E16663972b11910F89BD8e7', + CHAINLINK.AMOY.AGGREGATOR_ADDRESS.USDT_ETH, ); await myContract.waitForDeployment(); return await myContract.getAddress(); } - async getLicenseRequest() { - const { abi } = await hre.artifacts.readArtifact( - 'LinkWellStringBytesConsumerContractExample', - ); - const signer = await this.providerService.getSigner(); - - const contract = new ethers.Contract( - '0xbc3c4fed4C3A977b8868b589662270F1aEA6A777', - abi, - signer, - ); - - const answer: string = await contract.request(); - console.log('=>(salaries.service.ts:45) answer', answer); - const licenseres = await this.getLicenseResponse(); - console.log('=>(salaries.service.ts:53) licenseres', licenseres); - return answer; - } - - async getLicenseResponse() { - const { abi } = await hre.artifacts.readArtifact( - 'LinkWellStringBytesConsumerContractExample', - ); - const signer = await this.providerService.getSigner(); - - const contract = new ethers.Contract( - '0xbc3c4fed4C3A977b8868b589662270F1aEA6A777', - abi, - signer, - ); - - const answer: string = await contract.responseBytes(); - console.log('=>(salaries.service.ts:45) answer', answer); - return answer; - } - async getLatestUSDTPrice(contractAddress: string) { - const { abi } = await hre.artifacts.readArtifact('Salaries'); + const { abi } = await hre.artifacts.readArtifact('Payroll'); const signer = await this.providerService.getSigner(); const contract = new ethers.Contract(contractAddress, abi, signer); @@ -102,12 +67,12 @@ export class SalariesService extends BaseContractService { async getSalary(dto: GetEmployeeSalariesDto) { const { employeeAddress, contractAddress } = dto; - const { abi } = await hre.artifacts.readArtifact('Salaries'); + const { abi } = await hre.artifacts.readArtifact('Payroll'); const signer = await this.providerService.getSigner(); const contract = new ethers.Contract(contractAddress, abi, signer); - const answer: BigInt = await contract.getUsdtSalary(employeeAddress); + const answer: bigint = await contract.getUsdtSalary(employeeAddress); return { salaryInUsd: answer.toString(), }; diff --git a/chain-api/src/hardhat/modules/dto/ethers.dto.ts b/chain-api/src/ethers-custom/dto/ethers.dto.ts similarity index 100% rename from chain-api/src/hardhat/modules/dto/ethers.dto.ts rename to chain-api/src/ethers-custom/dto/ethers.dto.ts diff --git a/chain-api/src/ethers-custom/ethers.helpers.ts b/chain-api/src/ethers-custom/ethers.helpers.ts new file mode 100644 index 0000000..a62c43c --- /dev/null +++ b/chain-api/src/ethers-custom/ethers.helpers.ts @@ -0,0 +1,13 @@ +import { TransactionReceipt, ethers } from 'ethers'; + +export const parseLogs = ( + txReceipt: TransactionReceipt, + contract: ethers.Contract, + eventName: string, +) => { + const parsedLogs = txReceipt.logs.map((log) => + contract.interface.parseLog(log), + ); + console.log('=>(ethers.helpers.ts:10) parsedLogs', parsedLogs); + return parsedLogs.find((log) => !!log && log.fragment.name === eventName); +}; diff --git a/chain-api/src/hardhat/contracts/License.sol b/chain-api/src/hardhat/contracts/License.sol index 7e11e62..82a94c4 100644 --- a/chain-api/src/hardhat/contracts/License.sol +++ b/chain-api/src/hardhat/contracts/License.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.17; import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol"; import "@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner.sol"; - +import "./Payroll.sol"; /** * Request testnet LINK and ETH here: https://faucets.chain.link/ * Find information on LINK Token Contracts and get the latest ETH and LINK faucets here: https://docs.chain.link/docs/link-token-contracts/ @@ -13,19 +13,65 @@ import "@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner.sol"; * THIS IS AN EXAMPLE CONTRACT THAT USES UN-AUDITED CODE. */ -contract LinkWellStringBytesConsumerContractExample is ChainlinkClient, ConfirmedOwner { +contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { using Chainlink for Chainlink.Request; - address private oracleAddress; + address public oracleAddress; bytes32 private jobId; uint256 private fee; + address public multisigWallet; - constructor() ConfirmedOwner(msg.sender) { - _setChainlinkToken(0x0Fd9e8d3aF1aaee056EB9e802c3A762a667b1904); - setOracleAddress(0xd36c6B1777c7f3Db1B3201bDD87081A9045B7b46); - setJobId("8ced832954544a3c98543c94a51d6a8d"); - setFeeInHundredthsOfLink(0); // 0 LINK + mapping(address => uint) public ownerShare; + address[] public owners; + + Payroll public payoutContract; + + constructor( + address _chainLinkToken, + address _oracleAddress, + string memory _jobId, + uint _fee, + address _multiSigAddress, + address[] memory _owners, + uint[] memory _shares, + address payable _payoutAddress + ) ConfirmedOwner(_multiSigAddress) { + + _setChainlinkToken(_chainLinkToken); + + setOracleAddress(_oracleAddress); + + setJobId(_jobId); + + setFeeInHundredthsOfLink(_fee); + + multisigWallet = _multiSigAddress; + + payoutContract = Payroll(_payoutAddress); + + require(_owners.length == _shares.length, "Owners and shares length mismatch"); + + uint sumShare = 0; + + for(uint i=0; i<_shares.length;i++){ + sumShare += _shares[i]; + } + + require(sumShare ==100, 'Invalid share percentage'); + for (uint i = 0; i < _owners.length; i++) { + require(_shares[i] > 0, 'Share cannot be less than 0'); + ownerShare[_owners[i]] = _shares[i]; + owners.push(_owners[i]); + } } + //get share + //update share + //change payout address + // + function getShare(address owner) public returns(uint){ + return ownerShare[owner]; + } + // Send a request to the Chainlink oracle function request() public { @@ -33,35 +79,40 @@ contract LinkWellStringBytesConsumerContractExample is ChainlinkClient, Confirme Chainlink.Request memory req = _buildOperatorRequest(jobId, this.fulfill.selector); // DEFINE THE REQUEST PARAMETERS (example) - req._add('method', 'POST'); - req._add('url', 'https://httpbin.org/post'); - req._add('headers', '["accept", "application/json", "set-cookie", "sid=14A52"]'); - req._add('body', '{"data":[{"id":1,"name":"Bitcoin","price":20194.52},{"id":2,"name":"Ethereum","price":1850.46},{"id":3,"name":"Chainlink","price":18.36}]}'); + req._add('method', 'GET'); + req._add('url', 'https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH&tsyms=USD,EUR'); + req._add('headers', '["content-type", "application/json", "set-cookie", "sid=14A52"]'); + req._add('body', ''); req._add('contact', ''); // PLEASE ENTER YOUR CONTACT INFO. this allows us to notify you in the event of any emergencies related to your request (ie, bugs, downtime, etc.). example values: 'derek_linkwellnodes.io' (Discord handle) OR 'derek@linkwellnodes.io' OR '+1-617-545-4721' // The following curl command simulates the above request parameters: - // curl 'https://httpbin.org/post' --request 'POST' --header 'content-type: application/json' --header 'set-cookie: sid=14A52' --data '{"data":[{"id":1,"name":"Bitcoin","price":20194.52},{"id":2,"name":"Ethereum","price":1850.46},{"id":3,"name":"Chainlink","price":18.36}]}' + // curl 'https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH&tsyms=USD,EUR' --request 'GET' --header 'content-type: application/json' --header 'set-cookie: sid=14A52' // PROCESS THE RESULT (example) - req._add('path', 'json,data,0,name'); - + req._add('path', 'ETH,USD'); // Send the request to the Chainlink oracle _sendOperatorRequest(req, fee); } - bytes public responseBytes; + uint256 public totalPayoutInUSD; // Receive the result from the Chainlink oracle event RequestFulfilled(bytes32 indexed requestId); - function fulfill(bytes32 requestId, bytes memory bytesData) public recordChainlinkFulfillment(requestId) { + + function fulfill(bytes32 requestId, uint256 data) public recordChainlinkFulfillment(requestId) { // Process the oracle response // emit RequestFulfilled(requestId); // (optional) emits this event in the on-chain transaction logs, allowing Web3 applications to listen for this transaction - responseBytes = bytesData; // example value: 0x426974636f696e + totalPayoutInUSD = data / 100; // example value: 1875870000000000000000 (1875.87 before "multiplier" is applied) } - // Retrieve the response data as a string - function getResponseString() public view onlyOwner returns (string memory) { - return string(responseBytes); // example value: Bitcoin + function payout() external onlyOwner { + // using arrays to reduce gas + uint[] memory shares; + + for(uint i=0; i< owners.length; i++){ + shares[i] = ownerShare[owners[i]]; + } + payoutContract.oneTimePayout(owners, shares); } // Update oracle address @@ -69,7 +120,8 @@ contract LinkWellStringBytesConsumerContractExample is ChainlinkClient, Confirme oracleAddress = _oracleAddress; _setChainlinkOracle(_oracleAddress); } - function getOracleAddress() public view onlyOwner returns (address) { + + function getOracleAddress() public view returns (address) { return oracleAddress; } @@ -77,6 +129,7 @@ contract LinkWellStringBytesConsumerContractExample is ChainlinkClient, Confirme function setJobId(string memory _jobId) public onlyOwner { jobId = bytes32(bytes(_jobId)); } + function getJobId() public view onlyOwner returns (string memory) { return string(abi.encodePacked(jobId)); } @@ -85,9 +138,11 @@ contract LinkWellStringBytesConsumerContractExample is ChainlinkClient, Confirme function setFeeInJuels(uint256 _feeInJuels) public onlyOwner { fee = _feeInJuels; } + function setFeeInHundredthsOfLink(uint256 _feeInHundredthsOfLink) public onlyOwner { setFeeInJuels((_feeInHundredthsOfLink * LINK_DIVISIBILITY) / 100); } + function getFeeInHundredthsOfLink() public view onlyOwner returns (uint256) { return (fee * 100) / LINK_DIVISIBILITY; } diff --git a/chain-api/src/hardhat/contracts/Salaries.sol b/chain-api/src/hardhat/contracts/LicensePayout.sol similarity index 90% rename from chain-api/src/hardhat/contracts/Salaries.sol rename to chain-api/src/hardhat/contracts/LicensePayout.sol index 1f6a132..ead5bc4 100644 --- a/chain-api/src/hardhat/contracts/Salaries.sol +++ b/chain-api/src/hardhat/contracts/LicensePayout.sol @@ -1,16 +1,14 @@ // SPDX-License-Identifier: MIT -// 0x2F9442900d067a3D37A1C2aE99462E055e32c741 pragma solidity ^0.8.7; import {AggregatorV3Interface} from '@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol'; -contract Salaries { +contract LicensePayout { AggregatorV3Interface internal dataFeed; address public multisigWallet; mapping(address => uint) public salaries; event Payout(address indexed employee, uint salaryInETH); event PayoutFailed(address indexed employee, uint salaryInETH, string reason); - //0xF0d50568e3A7e8259E16663972b11910F89BD8e7 constructor(address _multisigWallet, address _priceFeedAddress) { multisigWallet = _multisigWallet; dataFeed = AggregatorV3Interface(_priceFeedAddress); @@ -28,7 +26,7 @@ contract Salaries { function getLatestUSDTPriceInETH() public view returns (int) { ( , - /* uint80 roundID */ int answer /* uint startedAt */ /* uint timeStamp */ /* uint80 answeredInRound */, + /* uint80 roundID */ int answer /* uint startedAt */ /* uint timeStamp */ /* uint80 answeredInRound */, , , @@ -36,6 +34,10 @@ contract Salaries { return answer; } + function oneTimePayout(address payable employee) external onlyMultisig { + + } + function setSalary( address employee, uint salaryInUSDT diff --git a/chain-api/src/hardhat/contracts/MultiSigWallet.sol b/chain-api/src/hardhat/contracts/MultiSigWallet.sol index 83dd3b2..036d2a1 100644 --- a/chain-api/src/hardhat/contracts/MultiSigWallet.sol +++ b/chain-api/src/hardhat/contracts/MultiSigWallet.sol @@ -18,8 +18,10 @@ contract MultiSigWallet { event ConfirmTransaction(address indexed owner, uint indexed txIndex); event RevokeConfirmation(address indexed owner, uint indexed txIndex); - event ExecuteTransaction(address indexed owner, uint indexed txIndex); + event ExecuteTransaction(address indexed owner, uint indexed txIndex, address indexed to); event ExecuteTransactionFailed(address indexed owner, uint indexed txIndex, string reason); + event ContractDeployed(address indexed contractAddress); + address[] public owners; @@ -129,7 +131,16 @@ contract MultiSigWallet { (bool success, bytes memory returnData) = transaction.to.call{value: transaction.value}(transaction.data); if (success) { transaction.executed = true; - emit ExecuteTransaction(msg.sender, _txIndex); + emit ExecuteTransaction(msg.sender, _txIndex, transaction.to); + if (returnData.length > 0) { + address deployedContractAddress; + assembly { + deployedContractAddress := mload(add(returnData, 20)) + } + // You can emit an event with the address of the deployed contract + emit ContractDeployed(deployedContractAddress); + } + removeTransaction(_txIndex); } else { // Get the revert reason and emit it if (returnData.length > 0) { @@ -156,6 +167,11 @@ contract MultiSigWallet { emit RevokeConfirmation(msg.sender, _txIndex); } + function removeTransaction(uint _txIndex) public onlyOwner { + require(_txIndex < transactions.length, "tx does not exist"); + delete transactions[_txIndex]; + } + function getOwners() public view returns (address[] memory) { return owners; } diff --git a/chain-api/src/hardhat/contracts/Payroll.sol b/chain-api/src/hardhat/contracts/Payroll.sol new file mode 100644 index 0000000..bba2f06 --- /dev/null +++ b/chain-api/src/hardhat/contracts/Payroll.sol @@ -0,0 +1,100 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.7; + +import {AggregatorV3Interface} from '@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol'; + +contract Payroll { + AggregatorV3Interface internal dataFeed; + address public authorizedWallet; + mapping(address => uint) public salaries; + + event Payout(address indexed employee, uint salaryInETH); + event PayoutFailed(address indexed employee, uint salaryInETH, string reason); + + constructor(address _authorizedWallet, address _priceFeedAddress) { + authorizedWallet = _authorizedWallet; + dataFeed = AggregatorV3Interface(_priceFeedAddress); + } + + modifier onlyAuthorized() { + require(msg.sender == authorizedWallet, 'Unauthorized'); + _; + } + + function getUsdtSalary(address employee) public view returns (uint) { + return salaries[employee]; + } + + function getLatestUSDTPriceInETH() public view returns (int) { + ( + , + /* uint80 roundID */ int answer /* uint startedAt */ /* uint timeStamp */ /* uint80 answeredInRound */, + , + , + + ) = dataFeed.latestRoundData(); + return answer; + } + + // using arrays to reduce gas + function oneTimePayout(address[] memory employees, uint[] memory usdAmounts) external onlyAuthorized { + require(employees.length == usdAmounts.length, "Mismatched input lengths"); + int ethToUSDT = getLatestUSDTPriceInETH(); + require(ethToUSDT > 0, 'Invalid price data'); + for (uint i = 0; i < employees.length; i++) { + uint salaryInUSDT = usdAmounts[i]; + require(salaryInUSDT > 0, 'No salary set'); + uint salaryInETH = uint(salaryInUSDT * 1e18) / uint(ethToUSDT); + salaryInETH = salaryInETH * 1e8; + // Check sufficient balance + require( + address(this).balance >= salaryInETH, + 'Insufficient contract balance' + ); + + (bool success,) = employees[i].call{value: salaryInETH}(""); + if (success) { + emit Payout(employees[i], salaryInETH); + } else { + emit PayoutFailed(employees[i], salaryInETH, "Transfer failed"); + } + } + + } + + function setSalary( + address employee, + uint salaryInUSDT + ) external onlyAuthorized { + salaries[employee] = salaryInUSDT; + } + + function getEmployeeSalaryInEth(address employee) public view returns (uint){ + uint salaryInUSDT = salaries[employee]; + require(salaryInUSDT > 0, 'No salary set'); + + int ethToUSDT = getLatestUSDTPriceInETH(); + require(ethToUSDT > 0, 'Invalid price data'); + uint salaryInETH = uint(salaryInUSDT * 1e18) / uint(ethToUSDT); + return salaryInETH * 1e8; + } + + function payoutInETH(address payable employee) external onlyAuthorized { + uint salaryInETH = getEmployeeSalaryInEth(employee); + // Check sufficient balance + require( + address(this).balance >= salaryInETH, + 'Insufficient contract balance' + ); + + (bool success,) = employee.call{value: salaryInETH}(""); + if (success) { + emit Payout(employee, salaryInETH); + } else { + emit PayoutFailed(employee, salaryInETH, "Transfer failed"); + } + } + + // Fallback to receive ETH + receive() external payable {} +} diff --git a/chain-api/src/hardhat/modules/hardhat.module.ts b/chain-api/src/hardhat/modules/hardhat.module.ts deleted file mode 100644 index 577d8c7..0000000 --- a/chain-api/src/hardhat/modules/hardhat.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Module } from '@nestjs/common'; -import { HardhatService } from './hardhat.service'; -import { ProviderModule } from 'src/provider/provider.module'; -import { MultiSigModule } from './multi-sig/multi-sig.module'; -import { SalariesModule } from './salaries/salaries.module'; - -@Module({ - imports: [ProviderModule, MultiSigModule, SalariesModule], - controllers: [], - providers: [HardhatService], - exports: [HardhatService, MultiSigModule, SalariesModule], -}) -export class HardhatModule {} diff --git a/chain-api/src/hardhat/modules/hardhat.service.ts b/chain-api/src/hardhat/modules/hardhat.service.ts deleted file mode 100644 index 55c2582..0000000 --- a/chain-api/src/hardhat/modules/hardhat.service.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Injectable } from '@nestjs/common'; - -@Injectable() -export class HardhatService {} diff --git a/chain-api/src/hardhat/test/Salaries.test.ts b/chain-api/src/hardhat/test/Salaries.test.ts index fc14681..cfd041c 100644 --- a/chain-api/src/hardhat/test/Salaries.test.ts +++ b/chain-api/src/hardhat/test/Salaries.test.ts @@ -1,11 +1,13 @@ -import { PriceFeedMock, Salaries } from '../../../typechain'; +import { PriceFeedMock, Payroll } from '../../../typechain'; +// eslint-disable-next-line @typescript-eslint/no-var-requires const { ethers } = require('hardhat'); +// eslint-disable-next-line @typescript-eslint/no-var-requires const { expect } = require('chai'); import { SignerWithAddress } from '@nomicfoundation/hardhat-ethers/signers'; describe('Salaries', function () { - let salaries: Salaries; + let salaries: Payroll; let owner: SignerWithAddress; let multisigWallet: SignerWithAddress; let addr1: SignerWithAddress; @@ -19,11 +21,11 @@ describe('Salaries', function () { priceFeedMock = await PriceFeedMockFactory.deploy(); await priceFeedMock.getDeployedCode(); // Deploy the Salaries contract - const SalariesFactory = await ethers.getContractFactory('Salaries'); + const SalariesFactory = await ethers.getContractFactory('Payroll'); salaries = (await SalariesFactory.deploy( multisigWallet.address, await priceFeedMock.getAddress(), - )) as Salaries; + )) as Payroll; await salaries.getDeployedCode(); }); From 61a74636d13123e2f2a954e6f622e7a262beb370 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Mon, 20 May 2024 02:22:57 +0300 Subject: [PATCH 14/17] deploy license finished --- .../license/license.controller.ts | 7 +- .../contract-interact/license/license.dto.ts | 1 + .../license/license.service.ts | 69 +++++++++++-------- .../multi-sig/multi-sig.service.ts | 39 +++++++---- chain-api/src/filters/http.filter.ts | 1 - chain-api/src/hardhat/contracts/License.sol | 4 +- .../src/hardhat/contracts/MultiSigWallet.sol | 41 ++++++++--- 7 files changed, 105 insertions(+), 57 deletions(-) diff --git a/chain-api/src/contract-interact/license/license.controller.ts b/chain-api/src/contract-interact/license/license.controller.ts index 502c70a..2c1b84e 100644 --- a/chain-api/src/contract-interact/license/license.controller.ts +++ b/chain-api/src/contract-interact/license/license.controller.ts @@ -3,6 +3,7 @@ import { LicenseService } from './license.service'; import { ApiTags } from '@nestjs/swagger'; import { DeployLicenseDto, + GetLicenseInfoDto, GetShareLicense, RequestLicenseDto, } from './license.dto'; @@ -10,7 +11,7 @@ import { @Controller('license') export class LicenseController { constructor(private readonly licenseService: LicenseService) {} - @Get('request') + @Post('request') async getLicenseRequest(@Body() dto: RequestLicenseDto) { return this.licenseService.request(dto); } @@ -21,7 +22,7 @@ export class LicenseController { } @Get('total-payout') - async getLicenseResponse(@Body() dto: RequestLicenseDto) { + async getLicenseResponse(@Body() dto: GetLicenseInfoDto) { return this.licenseService.getTotalPayoutInUSD(dto); } @@ -31,7 +32,7 @@ export class LicenseController { } @Get('owners') - async getOwners(@Body() dto: GetShareLicense) { + async getOwners(@Body() dto: GetLicenseInfoDto) { return this.licenseService.getOwners(dto); } diff --git a/chain-api/src/contract-interact/license/license.dto.ts b/chain-api/src/contract-interact/license/license.dto.ts index f3422cf..72ac255 100644 --- a/chain-api/src/contract-interact/license/license.dto.ts +++ b/chain-api/src/contract-interact/license/license.dto.ts @@ -33,5 +33,6 @@ export class GetLicenseResponseDto extends GetLicenseInfoDto {} export class GetShareLicense extends GetLicenseInfoDto { @IsString() + @ApiProperty() ownerAddress: string; } diff --git a/chain-api/src/contract-interact/license/license.service.ts b/chain-api/src/contract-interact/license/license.service.ts index 9cb8484..210ba78 100644 --- a/chain-api/src/contract-interact/license/license.service.ts +++ b/chain-api/src/contract-interact/license/license.service.ts @@ -35,7 +35,7 @@ export class LicenseService extends BaseContractService { }); } - async getTotalPayoutInUSD(dto: GetLicenseResponseDto) { + async getTotalPayoutInUSD(dto: GetLicenseInfoDto) { const { contractAddress } = dto; const { abi } = await hre.artifacts.readArtifact( 'StreamingRightsManagement', @@ -44,7 +44,7 @@ export class LicenseService extends BaseContractService { const contract = new ethers.Contract(contractAddress, abi, signer); - const answer: bigint = await contract.totalPayoutInUSD(); + const answer: bigint = await contract.request(); console.log('=>(license.service.ts:45) answer', answer); return answer.toString(); } @@ -57,23 +57,36 @@ export class LicenseService extends BaseContractService { ); const signer = await this.providerService.getSigner(); - const licenseContract = new ethers.ContractFactory(abi, bytecode, signer); + const abiCoder = ethers.AbiCoder.defaultAbiCoder(); - const myContract = await licenseContract.getDeployTransaction( - CHAINLINK.AMOY.CHAINLINK_TOKEN, - CHAINLINK.AMOY.ORACLE_ADDRESS, - CHAINLINK.AMOY.JOB_IDS.UINT, - 0, - multiSigWallet, - owners, - shares, - payrollAddress, + const abiEncodedConstructorArguments = abiCoder.encode( + [ + 'address', + 'address', + 'string', + 'uint', + 'address', + 'address[]', + 'uint[]', + 'address', + ], + [ + CHAINLINK.AMOY.CHAINLINK_TOKEN, + CHAINLINK.AMOY.ORACLE_ADDRESS, + CHAINLINK.AMOY.JOB_IDS.UINT, + 0, + multiSigWallet, + owners, + shares, + payrollAddress, + ], ); + const fullBytecode = bytecode + abiEncodedConstructorArguments.substring(2); const submitData = await this.multiSigService.submitTransaction({ contractAddress: multiSigWallet, destination: null, value: '0', - data: myContract.data, + data: fullBytecode, }); delete submitData.data; return submitData; @@ -102,9 +115,20 @@ export class LicenseService extends BaseContractService { const contract = new ethers.Contract(contractAddress, abi, signer); - const answer: string[] = await contract.owners(); + const owners: string[] = []; - return answer; + for (let i = 0; i < 10; i++) { + try { + const owner = await contract.owners(i); + owners.push(owner); + } catch (e) { + // this.logger.error(e); + console.log('OWNERS LIMIT'); + break; + } + } + + return owners; } async getShares(dto: GetShareLicense) { @@ -117,20 +141,7 @@ export class LicenseService extends BaseContractService { const contract = new ethers.Contract(contractAddress, abi, signer); const answer: number = await contract.getShare(ownerAddress); - - return answer; - } - - async getTotalPayout(dto: GetLicenseInfoDto) { - const { contractAddress } = dto; - const { abi } = await hre.artifacts.readArtifact( - 'StreamingRightsManagement', - ); - const signer = await this.providerService.getSigner(); - - const contract = new ethers.Contract(contractAddress, abi, signer); - - const answer: number = await contract.totalPayoutInUSD(); + console.log('=>(license.service.ts:135) answer', answer); return answer; } diff --git a/chain-api/src/contract-interact/multi-sig/multi-sig.service.ts b/chain-api/src/contract-interact/multi-sig/multi-sig.service.ts index 2545073..1b7c25a 100644 --- a/chain-api/src/contract-interact/multi-sig/multi-sig.service.ts +++ b/chain-api/src/contract-interact/multi-sig/multi-sig.service.ts @@ -92,23 +92,34 @@ export class MultiSigWalletService extends BaseContractService { const signer = await this.providerService.getSigner(); const contract = new ethers.Contract(contractAddress, abi, signer); - const deployedAddress = await this.calculateFutureAddress(contractAddress); - const tx = await contract.executeTransaction(index); + const input = dto.index + new Date().getTime().toString(); + const hashed = ethers.keccak256(ethers.toUtf8Bytes(input)); + const salt = BigInt(hashed.substring(0, 10)); - const txResponse: TransactionReceipt = await tx.wait(); - console.log('=>(multi-sig.service.ts:101) txResponse', txResponse.logs); - - const eventParse = parseLogs(txResponse, contract, 'ExecuteTransaction'); - const data = { - txHash: txResponse.hash, - sender: eventParse.args[0].toString(), - txIndex: eventParse.args[1].toString(), - }; if (isDeploy) { - return { ...data, deployedAddress }; + const tx = await contract.executeDeployTransaction(index, salt); + + const txResponse: TransactionReceipt = await tx.wait(); + const eventParse = parseLogs(txResponse, contract, 'ExecuteTransaction'); + const deployedParse = parseLogs(txResponse, contract, 'ContractDeployed'); + return { + txHash: txResponse.hash, + sender: eventParse.args[0].toString(), + txIndex: eventParse.args[1].toString(), + deployedAddress: deployedParse.args[0].toString(), + }; } else { - return data; + const tx = await contract.executeTransaction(index); + + const txResponse: TransactionReceipt = await tx.wait(); + + const eventParse = parseLogs(txResponse, contract, 'ExecuteTransaction'); + return { + txHash: txResponse.hash, + sender: eventParse.args[0].toString(), + txIndex: eventParse.args[1].toString(), + }; } } @@ -119,7 +130,7 @@ export class MultiSigWalletService extends BaseContractService { return getContractAddress({ from: contractAddress, - nonce: nonce + 1, + nonce: nonce, }); } diff --git a/chain-api/src/filters/http.filter.ts b/chain-api/src/filters/http.filter.ts index ce33efe..ee91b38 100644 --- a/chain-api/src/filters/http.filter.ts +++ b/chain-api/src/filters/http.filter.ts @@ -16,7 +16,6 @@ export class AllExceptionsFilter implements ExceptionFilter { console.log('🚀 ~ AllExceptionsFilter ~ exception:', exception); const ctx = host.switchToHttp(); const response = ctx.getResponse(); - const request = ctx.getRequest(); const httpStatus = exception instanceof HttpException ? exception.getStatus() diff --git a/chain-api/src/hardhat/contracts/License.sol b/chain-api/src/hardhat/contracts/License.sol index 82a94c4..1cff4ad 100644 --- a/chain-api/src/hardhat/contracts/License.sol +++ b/chain-api/src/hardhat/contracts/License.sol @@ -68,13 +68,13 @@ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { //update share //change payout address // - function getShare(address owner) public returns(uint){ + function getShare(address owner) public view returns(uint){ return ownerShare[owner]; } // Send a request to the Chainlink oracle - function request() public { + function request() external onlyOwner{ Chainlink.Request memory req = _buildOperatorRequest(jobId, this.fulfill.selector); diff --git a/chain-api/src/hardhat/contracts/MultiSigWallet.sol b/chain-api/src/hardhat/contracts/MultiSigWallet.sol index 036d2a1..52522ea 100644 --- a/chain-api/src/hardhat/contracts/MultiSigWallet.sol +++ b/chain-api/src/hardhat/contracts/MultiSigWallet.sol @@ -132,14 +132,6 @@ contract MultiSigWallet { if (success) { transaction.executed = true; emit ExecuteTransaction(msg.sender, _txIndex, transaction.to); - if (returnData.length > 0) { - address deployedContractAddress; - assembly { - deployedContractAddress := mload(add(returnData, 20)) - } - // You can emit an event with the address of the deployed contract - emit ContractDeployed(deployedContractAddress); - } removeTransaction(_txIndex); } else { // Get the revert reason and emit it @@ -156,6 +148,39 @@ contract MultiSigWallet { } } + function executeDeployTransaction(uint _txIndex, uint256 _salt) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) { + Transaction storage transaction = transactions[_txIndex]; + require( + transaction.numConfirmations >= numConfirmationsRequired, + "cannot execute tx" + ); + + address deployedAddress; + + bytes memory bytecode = transaction.data; + + // Assembly to deploy contract using CREATE2 + assembly { + deployedAddress := + create2( + callvalue(), // wei sent with current call + // Actual code starts after skipping the first 32 bytes + add(bytecode, 0x20), + mload(bytecode), // Load the size of code contained in the first 32 bytes + _salt // Salt from function arguments + ) + + if iszero(extcodesize(deployedAddress)) { revert(0, 0) } + } + + require(deployedAddress != address(0), "Failed to deploy contract"); + transaction.executed = true; + emit ExecuteTransaction(msg.sender, _txIndex, deployedAddress); + emit ContractDeployed(deployedAddress); + removeTransaction(_txIndex); + } + + function revokeConfirmation( uint _txIndex ) public onlyOwner txExists(_txIndex) notExecuted(_txIndex) { From 7809a914165368a1d601a5895aa21e7926616f8c Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Tue, 21 May 2024 15:58:49 +0300 Subject: [PATCH 15/17] license finished --- .../license/license.controller.ts | 14 ++- .../contract-interact/license/license.dto.ts | 10 +- .../license/license.service.ts | 45 +++++-- .../salaries/salaries.dto.ts | 2 +- .../salaries/salaries.service.ts | 2 +- chain-api/src/hardhat/contracts/Agreement.sol | 118 +++++++++++++++++- ...ense.sol => StreamingRightsManagement.sol} | 35 +++--- chain-api/src/hardhat/test/License.test.ts | 57 +++++++++ .../{Salaries.test.ts => Payroll.test.ts} | 0 9 files changed, 248 insertions(+), 35 deletions(-) rename chain-api/src/hardhat/contracts/{License.sol => StreamingRightsManagement.sol} (86%) create mode 100644 chain-api/src/hardhat/test/License.test.ts rename chain-api/src/hardhat/test/{Salaries.test.ts => Payroll.test.ts} (100%) diff --git a/chain-api/src/contract-interact/license/license.controller.ts b/chain-api/src/contract-interact/license/license.controller.ts index 2c1b84e..6aa6ad0 100644 --- a/chain-api/src/contract-interact/license/license.controller.ts +++ b/chain-api/src/contract-interact/license/license.controller.ts @@ -5,7 +5,9 @@ import { DeployLicenseDto, GetLicenseInfoDto, GetShareLicense, + LicensePayoutDto, RequestLicenseDto, + SetPayoutContractDto, } from './license.dto'; @ApiTags('license') @Controller('license') @@ -37,7 +39,17 @@ export class LicenseController { } @Get('payout-contract') - async getPayoutContract(@Body() dto: GetShareLicense) { + async getPayoutContract(@Body() dto: GetLicenseInfoDto) { return this.licenseService.getPayoutContract(dto); } + + @Post('payout') + async payout(@Body() dto: LicensePayoutDto) { + return this.licenseService.payout(dto); + } + + @Post('set-payout-contract') + async setPayoutContract(@Body() dto: SetPayoutContractDto) { + return this.licenseService.setPayoutContract(dto); + } } diff --git a/chain-api/src/contract-interact/license/license.dto.ts b/chain-api/src/contract-interact/license/license.dto.ts index 72ac255..2f365b2 100644 --- a/chain-api/src/contract-interact/license/license.dto.ts +++ b/chain-api/src/contract-interact/license/license.dto.ts @@ -18,9 +18,6 @@ export class DeployLicenseDto { }) @IsNumber({}, { each: true }) shares: number[]; - @ApiProperty() - @IsString() - payrollAddress: string; } export class RequestLicenseDto extends GetLicenseInfoDto { @@ -36,3 +33,10 @@ export class GetShareLicense extends GetLicenseInfoDto { @ApiProperty() ownerAddress: string; } + +export class LicensePayoutDto extends RequestLicenseDto {} +export class SetPayoutContractDto extends RequestLicenseDto { + @IsString() + @ApiProperty() + payoutContract: string; +} diff --git a/chain-api/src/contract-interact/license/license.service.ts b/chain-api/src/contract-interact/license/license.service.ts index 210ba78..3667e4e 100644 --- a/chain-api/src/contract-interact/license/license.service.ts +++ b/chain-api/src/contract-interact/license/license.service.ts @@ -5,9 +5,10 @@ import { BaseContractService } from '../../base/base-contract.service'; import { DeployLicenseDto, GetLicenseInfoDto, - GetLicenseResponseDto, GetShareLicense, + LicensePayoutDto, RequestLicenseDto, + SetPayoutContractDto, } from './license.dto'; import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; import { ProviderService } from '../../base/provider/provider.service'; @@ -44,18 +45,16 @@ export class LicenseService extends BaseContractService { const contract = new ethers.Contract(contractAddress, abi, signer); - const answer: bigint = await contract.request(); + const answer: bigint = await contract.totalPayoutInUSD(); console.log('=>(license.service.ts:45) answer', answer); return answer.toString(); } async deploy(dto: DeployLicenseDto) { - console.log('=>(license.service.ts:53) dto', dto); - const { multiSigWallet, shares, owners, payrollAddress } = dto; - const { abi, bytecode } = await hre.artifacts.readArtifact( + const { multiSigWallet, shares, owners } = dto; + const { bytecode } = await hre.artifacts.readArtifact( 'StreamingRightsManagement', ); - const signer = await this.providerService.getSigner(); const abiCoder = ethers.AbiCoder.defaultAbiCoder(); @@ -68,7 +67,6 @@ export class LicenseService extends BaseContractService { 'address', 'address[]', 'uint[]', - 'address', ], [ CHAINLINK.AMOY.CHAINLINK_TOKEN, @@ -78,7 +76,6 @@ export class LicenseService extends BaseContractService { multiSigWallet, owners, shares, - payrollAddress, ], ); const fullBytecode = bytecode + abiEncodedConstructorArguments.substring(2); @@ -145,4 +142,36 @@ export class LicenseService extends BaseContractService { return answer; } + + async payout(dto: LicensePayoutDto) { + const { multiSigWallet, contractAddress } = dto; + + const ISubmitMultiSig = new ethers.Interface(['function payout()']); + const data = ISubmitMultiSig.encodeFunctionData('payout'); + + return await this.multiSigService.submitTransaction({ + contractAddress: multiSigWallet, + destination: contractAddress, + value: '0', + data, + }); + } + + async setPayoutContract(dto: SetPayoutContractDto) { + const { multiSigWallet, contractAddress, payoutContract } = dto; + + const ISubmitMultiSig = new ethers.Interface([ + 'function setPayoutContract(address payable)', + ]); + const data = ISubmitMultiSig.encodeFunctionData('setPayoutContract', [ + payoutContract, + ]); + + return await this.multiSigService.submitTransaction({ + contractAddress: multiSigWallet, + destination: contractAddress, + value: '0', + data, + }); + } } diff --git a/chain-api/src/contract-interact/salaries/salaries.dto.ts b/chain-api/src/contract-interact/salaries/salaries.dto.ts index 5cee16d..f42a973 100644 --- a/chain-api/src/contract-interact/salaries/salaries.dto.ts +++ b/chain-api/src/contract-interact/salaries/salaries.dto.ts @@ -4,7 +4,7 @@ import { IsNumber, IsString } from 'class-validator'; export class SalariesDeployDto { @ApiProperty() @IsString() - multiSigWallet: string; + authorizedWallet: string; } export class SetSalaryDto { diff --git a/chain-api/src/contract-interact/salaries/salaries.service.ts b/chain-api/src/contract-interact/salaries/salaries.service.ts index 1e1d459..394e3dc 100644 --- a/chain-api/src/contract-interact/salaries/salaries.service.ts +++ b/chain-api/src/contract-interact/salaries/salaries.service.ts @@ -29,7 +29,7 @@ export class SalariesService extends BaseContractService { const salaryContract = new ethers.ContractFactory(abi, bytecode, signer); const myContract = await salaryContract.deploy( - dto.multiSigWallet, + dto.authorizedWallet, CHAINLINK.AMOY.AGGREGATOR_ADDRESS.USDT_ETH, ); await myContract.waitForDeployment(); diff --git a/chain-api/src/hardhat/contracts/Agreement.sol b/chain-api/src/hardhat/contracts/Agreement.sol index 026e656..f24987a 100644 --- a/chain-api/src/hardhat/contracts/Agreement.sol +++ b/chain-api/src/hardhat/contracts/Agreement.sol @@ -1,10 +1,118 @@ -// +//SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol"; +import "@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner.sol"; /** + * Request testnet LINK and ETH here: https://faucets.chain.link/ + * Find information on LINK Token Contracts and get the latest ETH and LINK faucets here: https://docs.chain.link/docs/link-token-contracts/ + */ -License -sender -receiver +/** + * THIS IS AN EXAMPLE CONTRACT THAT USES UN-AUDITED CODE. + */ +contract LinkWellBoolConsumerContractExample is ChainlinkClient, ConfirmedOwner { + using Chainlink for Chainlink.Request; - */ \ No newline at end of file + address private oracleAddress; + bytes32 private jobId; + uint256 private fee; + + constructor( + address _chainLinkToken, + address _oracleAddress, + string memory _jobId, + uint _fee, + address _multiSigAddress, + address[] memory _owners, + uint[] memory _shares + ) ConfirmedOwner(_multiSigAddress) { + + _setChainlinkToken(_chainLinkToken); + + setOracleAddress(_oracleAddress); + + setJobId(_jobId); + + setFeeInHundredthsOfLink(_fee); + + multisigWallet = _multiSigAddress; + } + + constructor() ConfirmedOwner(msg.sender) { + _setChainlinkToken(0x0Fd9e8d3aF1aaee056EB9e802c3A762a667b1904); + setOracleAddress(0xd36c6B1777c7f3Db1B3201bDD87081A9045B7b46); + setJobId("43309009a154495cb2ed794233e6ff56"); + setFeeInHundredthsOfLink(0); // 0 LINK + } + + // Send a request to the Chainlink oracle + function request() public { + + Chainlink.Request memory req = _buildOperatorRequest(jobId, this.fulfill.selector); + + // DEFINE THE REQUEST PARAMETERS (example) + req._add('method', 'POST'); + req._add('url', 'https://httpbin.org/post'); + req._add('headers', '["accept", "application/json", "set-cookie", "sid=14A52"]'); + req._add('body', '{"data":[{"coin":"BTC","isActive":false},{"coin":"ETH","isActive":false},{"coin":"LINK","isActive":true}]}'); + req._add('contact', ''); // PLEASE ENTER YOUR CONTACT INFO. this allows us to notify you in the event of any emergencies related to your request (ie, bugs, downtime, etc.). example values: 'derek_linkwellnodes.io' (Discord handle) OR 'derek@linkwellnodes.io' OR '+1-617-545-4721' + + // The following curl command simulates the above request parameters: + // curl 'https://httpbin.org/post' --request 'POST' --header 'content-type: application/json' --header 'set-cookie: sid=14A52' --data '{"data":[{"coin":"BTC","isActive":false},{"coin":"ETH","isActive":false},{"coin":"LINK","isActive":true}]}' + + // PROCESS THE RESULT (example) + req._add('path', 'json,data,2,isActive'); + + // Send the request to the Chainlink oracle + _sendOperatorRequest(req, fee); + } + + bool public response; + + // Receive the result from the Chainlink oracle + event RequestFulfilled(bytes32 indexed requestId); + function fulfill(bytes32 requestId, bool data) public recordChainlinkFulfillment(requestId) { + // Process the oracle response + // emit RequestFulfilled(requestId); // (optional) emits this event in the on-chain transaction logs, allowing Web3 applications to listen for this transaction + response = data; // example value: true + } + + // Update oracle address + function setOracleAddress(address _oracleAddress) public onlyOwner { + oracleAddress = _oracleAddress; + _setChainlinkOracle(_oracleAddress); + } + function getOracleAddress() public view onlyOwner returns (address) { + return oracleAddress; + } + + // Update jobId + function setJobId(string memory _jobId) public onlyOwner { + jobId = bytes32(bytes(_jobId)); + } + function getJobId() public view onlyOwner returns (string memory) { + return string(abi.encodePacked(jobId)); + } + + // Update fees + function setFeeInJuels(uint256 _feeInJuels) public onlyOwner { + fee = _feeInJuels; + } + function setFeeInHundredthsOfLink(uint256 _feeInHundredthsOfLink) public onlyOwner { + setFeeInJuels((_feeInHundredthsOfLink * LINK_DIVISIBILITY) / 100); + } + function getFeeInHundredthsOfLink() public view onlyOwner returns (uint256) { + return (fee * 100) / LINK_DIVISIBILITY; + } + + function withdrawLink() public onlyOwner { + LinkTokenInterface link = LinkTokenInterface(_chainlinkTokenAddress()); + require( + link.transfer(msg.sender, link.balanceOf(address(this))), + "Unable to transfer" + ); + } +} \ No newline at end of file diff --git a/chain-api/src/hardhat/contracts/License.sol b/chain-api/src/hardhat/contracts/StreamingRightsManagement.sol similarity index 86% rename from chain-api/src/hardhat/contracts/License.sol rename to chain-api/src/hardhat/contracts/StreamingRightsManagement.sol index 1cff4ad..37eb5a1 100644 --- a/chain-api/src/hardhat/contracts/License.sol +++ b/chain-api/src/hardhat/contracts/StreamingRightsManagement.sol @@ -4,14 +4,7 @@ pragma solidity ^0.8.17; import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol"; import "@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner.sol"; import "./Payroll.sol"; -/** - * Request testnet LINK and ETH here: https://faucets.chain.link/ - * Find information on LINK Token Contracts and get the latest ETH and LINK faucets here: https://docs.chain.link/docs/link-token-contracts/ - */ -/** - * THIS IS AN EXAMPLE CONTRACT THAT USES UN-AUDITED CODE. - */ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { using Chainlink for Chainlink.Request; @@ -33,8 +26,7 @@ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { uint _fee, address _multiSigAddress, address[] memory _owners, - uint[] memory _shares, - address payable _payoutAddress + uint[] memory _shares ) ConfirmedOwner(_multiSigAddress) { _setChainlinkToken(_chainLinkToken); @@ -47,7 +39,6 @@ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { multisigWallet = _multiSigAddress; - payoutContract = Payroll(_payoutAddress); require(_owners.length == _shares.length, "Owners and shares length mismatch"); @@ -68,10 +59,20 @@ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { //update share //change payout address // + modifier hasValidPayoutContract() { + require(address(payoutContract) != address(0), "payoutContract not initialized"); + _; + } + function getShare(address owner) public view returns(uint){ return ownerShare[owner]; } + function setPayoutContract(address payable _payoutAddress) public onlyOwner { + require(_payoutAddress != address(0), "Invalid address: zero address not allowed"); + payoutContract = Payroll(_payoutAddress); + } + // Send a request to the Chainlink oracle function request() external onlyOwner{ @@ -90,6 +91,7 @@ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { // PROCESS THE RESULT (example) req._add('path', 'ETH,USD'); + req._addInt('multiplier', 10 ** 18); // Send the request to the Chainlink oracle _sendOperatorRequest(req, fee); } @@ -102,15 +104,16 @@ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { function fulfill(bytes32 requestId, uint256 data) public recordChainlinkFulfillment(requestId) { // Process the oracle response // emit RequestFulfilled(requestId); // (optional) emits this event in the on-chain transaction logs, allowing Web3 applications to listen for this transaction - totalPayoutInUSD = data / 100; // example value: 1875870000000000000000 (1875.87 before "multiplier" is applied) + totalPayoutInUSD = data / 1e18 / 100; // example value: 1875870000000000000000 (1875.87 before "multiplier" is applied) } - function payout() external onlyOwner { - // using arrays to reduce gas - uint[] memory shares; + function payout() external onlyOwner hasValidPayoutContract{ - for(uint i=0; i< owners.length; i++){ - shares[i] = ownerShare[owners[i]]; + // using arrays to reduce gas + uint[] memory shares = new uint[](owners.length); + + for(uint i=0; i< owners.length; i++){ + shares[i] = ownerShare[owners[i]] * totalPayoutInUSD / 100; } payoutContract.oneTimePayout(owners, shares); } diff --git a/chain-api/src/hardhat/test/License.test.ts b/chain-api/src/hardhat/test/License.test.ts new file mode 100644 index 0000000..3d0d0af --- /dev/null +++ b/chain-api/src/hardhat/test/License.test.ts @@ -0,0 +1,57 @@ +import { StreamingRightsManagement } from '../../../typechain'; +import { CHAINLINK } from '../../config/chainlink.config'; + +const { expect } = require('chai'); +const { ethers } = require('hardhat'); + +describe('StreamingRightsManagement', function () { + let streamingRightsManagement: StreamingRightsManagement, + payContract, + owner, + addr1, + addr2; + const shares = [25, 25, 50]; + + beforeEach(async function () { + [owner, addr1, addr2] = await ethers.getSigners(); + + const Payroll = await ethers.getContractFactory('Payroll'); + payContract = await Payroll.deploy(owner.address, owner.address); // assume an oracle price feed address + + const StreamingRightsManagement = await ethers.getContractFactory( + 'StreamingRightsManagement', + ); + streamingRightsManagement = await StreamingRightsManagement.deploy( + CHAINLINK.AMOY.CHAINLINK_TOKEN, // Chainlink Token address + CHAINLINK.AMOY.ORACLE_ADDRESS, // Oracle address + CHAINLINK.AMOY.JOB_IDS.UINT, + 0, + owner.address, + [owner.address, addr1.address, addr2.address], + shares, + ); + }); + + describe('Initialization', function () { + it('should set owners and shares correctly', async function () { + expect(await streamingRightsManagement.getShare(owner.address)).to.equal( + 25, + ); + expect(await streamingRightsManagement.getShare(addr1.address)).to.equal( + 25, + ); + expect(await streamingRightsManagement.getShare(addr2.address)).to.equal( + 50, + ); + }); + }); + + describe('Payout Functionality', function () { + it('should successfully call payout', async function () { + await streamingRightsManagement.setPayoutContract(payContract.address); + await expect(streamingRightsManagement.payout()).to.not.be.reverted; + }); + }); + + // More tests as needed for other functions +}); diff --git a/chain-api/src/hardhat/test/Salaries.test.ts b/chain-api/src/hardhat/test/Payroll.test.ts similarity index 100% rename from chain-api/src/hardhat/test/Salaries.test.ts rename to chain-api/src/hardhat/test/Payroll.test.ts From 0f995d461742f74cf440e7fe3b8bf5e28babf816 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Fri, 24 May 2024 12:19:19 +0300 Subject: [PATCH 16/17] agreement update, contract tested and fixed, readme init --- .gitignore | 3 +- .idea/.gitignore | 8 - .idea/block-accounting.iml | 12 - .idea/modules.xml | 8 - .idea/prettier.xml | 7 - .idea/vcs.xml | 6 - .vscode/settings.json | 3 - README.md | 21 +- chain-api/src/app.module.ts | 4 + chain-api/src/base/base.module.ts | 2 +- .../src/base/provider/provider.service.ts | 6 +- chain-api/src/config/chainlink.config.ts | 1 + .../agreement/agreement.controller.ts | 29 + .../agreement/agreement.dto.ts | 21 + .../agreement/agreement.module.ts | 14 + .../agreement/agreement.service.ts | 75 + .../contract-interact/license/license.dto.ts | 5 +- .../license/license.service.ts | 15 +- .../salaries/salaries.service.ts | 10 +- chain-api/src/ethereum/ethereum.controller.ts | 12 + chain-api/src/ethereum/ethereum.module.ts | 11 + chain-api/src/ethereum/ethereum.service.ts | 10 + chain-api/src/filters/http.filter.ts | 2 +- chain-api/src/hardhat/contracts/Agreement.sol | 49 +- .../contracts/StreamingRightsManagement.sol | 28 +- docs.md | 4 - excalidraw/3step-license-payout.excalidraw | 1603 +++++++++++++ excalidraw/3step-license-payout.png | Bin 0 -> 127494 bytes arch.png => excalidraw/arch.png | Bin excalidraw/data-request-license.excalidraw | 1772 ++++++++++++++ excalidraw/data-request-license.png | Bin 0 -> 133149 bytes excalidraw/license-deploy.excalidraw | 1038 ++++++++ excalidraw/license-deploy.png | Bin 0 -> 115918 bytes .../license-payout-2of3steps.excalidraw | 2088 +++++++++++++++++ excalidraw/license-payout-2of3steps.png | Bin 0 -> 141723 bytes license.png => excalidraw/license.png | Bin login-flow.png => excalidraw/login-flow.png | Bin excalidraw/multisig.excalidraw | 1004 ++++++++ excalidraw/multisig.png | Bin 0 -> 110063 bytes excalidraw/payroll-deploy.excalidraw | 1014 ++++++++ excalidraw/payroll-deploy.png | Bin 0 -> 43398 bytes excalidraw/payroll.excalidraw | 1250 ++++++++++ excalidraw/payroll.png | Bin 0 -> 115076 bytes salaries.png => excalidraw/salaries.png | Bin excalidraw/set-salary.excalidraw | 1033 ++++++++ excalidraw/set-salary.png | Bin 0 -> 90139 bytes 46 files changed, 11033 insertions(+), 135 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/block-accounting.iml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/prettier.xml delete mode 100644 .idea/vcs.xml delete mode 100644 .vscode/settings.json create mode 100644 chain-api/src/contract-interact/agreement/agreement.controller.ts create mode 100644 chain-api/src/contract-interact/agreement/agreement.dto.ts create mode 100644 chain-api/src/contract-interact/agreement/agreement.module.ts create mode 100644 chain-api/src/contract-interact/agreement/agreement.service.ts create mode 100644 chain-api/src/ethereum/ethereum.controller.ts create mode 100644 chain-api/src/ethereum/ethereum.module.ts create mode 100644 chain-api/src/ethereum/ethereum.service.ts delete mode 100644 docs.md create mode 100644 excalidraw/3step-license-payout.excalidraw create mode 100644 excalidraw/3step-license-payout.png rename arch.png => excalidraw/arch.png (100%) create mode 100644 excalidraw/data-request-license.excalidraw create mode 100644 excalidraw/data-request-license.png create mode 100644 excalidraw/license-deploy.excalidraw create mode 100644 excalidraw/license-deploy.png create mode 100644 excalidraw/license-payout-2of3steps.excalidraw create mode 100644 excalidraw/license-payout-2of3steps.png rename license.png => excalidraw/license.png (100%) rename login-flow.png => excalidraw/login-flow.png (100%) create mode 100644 excalidraw/multisig.excalidraw create mode 100644 excalidraw/multisig.png create mode 100644 excalidraw/payroll-deploy.excalidraw create mode 100644 excalidraw/payroll-deploy.png create mode 100644 excalidraw/payroll.excalidraw create mode 100644 excalidraw/payroll.png rename salaries.png => excalidraw/salaries.png (100%) create mode 100644 excalidraw/set-salary.excalidraw create mode 100644 excalidraw/set-salary.png diff --git a/.gitignore b/.gitignore index 4c5a937..5fe6569 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea -.env \ No newline at end of file +.env +.vscode \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/block-accounting.iml b/.idea/block-accounting.iml deleted file mode 100644 index 24643cc..0000000 --- a/.idea/block-accounting.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index f557d6e..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/prettier.xml b/.idea/prettier.xml deleted file mode 100644 index 0c83ac4..0000000 --- a/.idea/prettier.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 2d30b94..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "solidity.compileUsingRemoteVersion": "v0.8.25+commit.b61c2a91" -} diff --git a/README.md b/README.md index e9dddbb..6b6084c 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ -![LOGIN FLOW](./login-flow.png "Login") +### CHAIN-API -[//]: # (![Example architecture](./arch.png "Arch")) -![License](./license.png "Arch") -![Salaries](./salaries.png "Arch") +- ### Multi-Sig Deploy +![Alt Text](./excalidraw/multisig.png) -# Registration Flow - -- On First Login - Owner inputs his SEED_KEY (mnemonic), creates an organization, we save its seed hash for future login and signing internal txs. -- When inviting an employee to organization- we generate an invitation link, then after clicking on this link - the user is asked for seed, if he's already registered or able to generate a seed for new account. -- +- ### Payroll Deploy +![Alt Text](./excalidraw/payroll-deploy.png) +- ### Payroll +![set-salary.png](excalidraw%2Fset-salary.png) +![payroll.png](excalidraw%2Fpayroll.png) +- ### License +![license-deploy.png](excalidraw%2Flicense-deploy.png) +![data-request-license.png](excalidraw%2Fdata-request-license.png) +![license-payout-2of3steps.png](excalidraw%2Flicense-payout-2of3steps.png)![3step-license-payout.png](excalidraw%2F3step-license-payout.png) \ No newline at end of file diff --git a/chain-api/src/app.module.ts b/chain-api/src/app.module.ts index 214054f..aa52dc2 100644 --- a/chain-api/src/app.module.ts +++ b/chain-api/src/app.module.ts @@ -4,6 +4,8 @@ import { AppService } from './app.service'; import { ContractInteractModule } from './contract-interact/contract-interact.module'; import { ConfigModule } from '@nestjs/config'; +import { EthereumModule } from './ethereum/ethereum.module'; +import { AgreementModule } from './contract-interact/agreement/agreement.module'; @Module({ imports: [ @@ -11,6 +13,8 @@ import { ConfigModule } from '@nestjs/config'; isGlobal: true, }), ContractInteractModule, + EthereumModule, + AgreementModule, ], controllers: [AppController], providers: [AppService], diff --git a/chain-api/src/base/base.module.ts b/chain-api/src/base/base.module.ts index 8e86d7f..f3b9aa8 100644 --- a/chain-api/src/base/base.module.ts +++ b/chain-api/src/base/base.module.ts @@ -4,7 +4,7 @@ import { ProviderModule } from './provider/provider.module'; @Module({ imports: [ProviderModule], controllers: [], - providers: [ProviderModule], + providers: [], exports: [ProviderModule], }) export class BaseModule {} diff --git a/chain-api/src/base/provider/provider.service.ts b/chain-api/src/base/provider/provider.service.ts index 510ae06..e47ff33 100644 --- a/chain-api/src/base/provider/provider.service.ts +++ b/chain-api/src/base/provider/provider.service.ts @@ -18,11 +18,7 @@ export class ProviderService { if (this.provider) { return this.provider; } - const polygonProvider = new ethers.JsonRpcProvider( - this.nodeUrl, - this.networkId, - ); - this.provider = polygonProvider; + this.provider = new ethers.JsonRpcProvider(this.nodeUrl, this.networkId); return this.provider; } diff --git a/chain-api/src/config/chainlink.config.ts b/chain-api/src/config/chainlink.config.ts index 6bc3ed9..9e47c2c 100644 --- a/chain-api/src/config/chainlink.config.ts +++ b/chain-api/src/config/chainlink.config.ts @@ -7,6 +7,7 @@ export const CHAINLINK = { }, JOB_IDS: { UINT: 'a8356f48569c434eaa4ac5fcb4db5cc0', + BOOL: '43309009a154495cb2ed794233e6ff56', }, }, }; diff --git a/chain-api/src/contract-interact/agreement/agreement.controller.ts b/chain-api/src/contract-interact/agreement/agreement.controller.ts new file mode 100644 index 0000000..d6b4de0 --- /dev/null +++ b/chain-api/src/contract-interact/agreement/agreement.controller.ts @@ -0,0 +1,29 @@ +import { Body, Controller, Post, Get, Param } from '@nestjs/common'; +import { AgreementService } from './agreement.service'; +import { + DeployAgreementDto, + GetAgreementInfoDto, + RequestAgreementDto, +} from './agreement.dto'; +import { ApiTags } from '@nestjs/swagger'; +@ApiTags('Agreement') +@Controller('agreements') +export class AgreementController { + constructor(private readonly agreementService: AgreementService) {} + + @Post('deploy') + async deployAgreement(@Body() deployDto: DeployAgreementDto) { + return await this.agreementService.deploy(deployDto); + } + + @Get(':contractAddress') + async getAgreementResponse( + @Param('contractAddress') contractAddress: string, + ) { + return await this.agreementService.getResponse({ contractAddress }); + } + @Post('request') + async requestAgreement(@Body() requestDto: RequestAgreementDto) { + return await this.agreementService.request(requestDto); + } +} diff --git a/chain-api/src/contract-interact/agreement/agreement.dto.ts b/chain-api/src/contract-interact/agreement/agreement.dto.ts new file mode 100644 index 0000000..c70086b --- /dev/null +++ b/chain-api/src/contract-interact/agreement/agreement.dto.ts @@ -0,0 +1,21 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsString, IsUrl } from 'class-validator'; + +export class DeployAgreementDto { + @ApiProperty() + @IsString() + multiSigWallet: string; +} +export class GetAgreementInfoDto { + @ApiProperty() + @IsString() + contractAddress: string; +} +export class RequestAgreementDto extends GetAgreementInfoDto { + @ApiProperty() + @IsString() + multiSigWallet: string; + @ApiProperty() + @IsUrl() + url: string; +} diff --git a/chain-api/src/contract-interact/agreement/agreement.module.ts b/chain-api/src/contract-interact/agreement/agreement.module.ts new file mode 100644 index 0000000..31a1a13 --- /dev/null +++ b/chain-api/src/contract-interact/agreement/agreement.module.ts @@ -0,0 +1,14 @@ +import { Module } from '@nestjs/common'; +import { AgreementController } from './agreement.controller'; +import { AgreementService } from './agreement.service'; +import { BaseModule } from '../../base/base.module'; +import { MultiSigModule } from '../multi-sig/multi-sig.module'; + +@Module({ + imports: [BaseModule, MultiSigModule], + controllers: [AgreementController], + providers: [AgreementService], + + exports: [], +}) +export class AgreementModule {} diff --git a/chain-api/src/contract-interact/agreement/agreement.service.ts b/chain-api/src/contract-interact/agreement/agreement.service.ts new file mode 100644 index 0000000..03e4125 --- /dev/null +++ b/chain-api/src/contract-interact/agreement/agreement.service.ts @@ -0,0 +1,75 @@ +import { Injectable } from '@nestjs/common'; +import { BaseContractService } from '../../base/base-contract.service'; +import * as hre from 'hardhat'; +import { ethers } from 'ethers'; +import { CHAINLINK } from '../../config/chainlink.config'; +import { + DeployAgreementDto, + GetAgreementInfoDto, + RequestAgreementDto, +} from './agreement.dto'; +import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; +import { ProviderService } from '../../base/provider/provider.service'; + +@Injectable() +export class AgreementService extends BaseContractService { + constructor( + public readonly providerService: ProviderService, + public readonly multiSigService: MultiSigWalletService, + ) { + super(providerService); + } + async deploy(dto: DeployAgreementDto): Promise { + const { multiSigWallet } = dto; + const { bytecode } = await hre.artifacts.readArtifact('Agreement'); + + const abiCoder = ethers.AbiCoder.defaultAbiCoder(); + + const abiEncodedConstructorArguments = abiCoder.encode( + ['address', 'address', 'string', 'uint', 'address'], + [ + CHAINLINK.AMOY.CHAINLINK_TOKEN, + CHAINLINK.AMOY.ORACLE_ADDRESS, + CHAINLINK.AMOY.JOB_IDS.BOOL, + 0, + multiSigWallet, + ], + ); + const fullBytecode = bytecode + abiEncodedConstructorArguments.substring(2); + const submitData = await this.multiSigService.submitTransaction({ + contractAddress: multiSigWallet, + destination: null, + value: '0', + data: fullBytecode, + }); + delete submitData.data; + return submitData; + } + + async getResponse(dto: GetAgreementInfoDto) { + const { contractAddress } = dto; + const { abi } = await hre.artifacts.readArtifact('Agreement'); + const signer = await this.providerService.getSigner(); + + const contract = new ethers.Contract(contractAddress, abi, signer); + + const answer = await contract.response(); + return answer.toString(); + } + + async request(dto: RequestAgreementDto) { + const { multiSigWallet, contractAddress, url } = dto; + + const ISubmitMultiSig = new ethers.Interface([ + 'function request(string memory url)', + ]); + const data = ISubmitMultiSig.encodeFunctionData('request', [url]); + + return await this.multiSigService.submitTransaction({ + contractAddress: multiSigWallet, + destination: contractAddress, + value: '0', + data, + }); + } +} diff --git a/chain-api/src/contract-interact/license/license.dto.ts b/chain-api/src/contract-interact/license/license.dto.ts index 2f365b2..453f318 100644 --- a/chain-api/src/contract-interact/license/license.dto.ts +++ b/chain-api/src/contract-interact/license/license.dto.ts @@ -1,4 +1,4 @@ -import { IsArray, IsNumber, IsString } from 'class-validator'; +import { IsArray, IsNumber, IsString, IsUrl } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; export class GetLicenseInfoDto { @ApiProperty() @@ -24,6 +24,9 @@ export class RequestLicenseDto extends GetLicenseInfoDto { @ApiProperty() @IsString() multiSigWallet: string; + @ApiProperty() + @IsUrl() + url: string; } export class GetLicenseResponseDto extends GetLicenseInfoDto {} diff --git a/chain-api/src/contract-interact/license/license.service.ts b/chain-api/src/contract-interact/license/license.service.ts index 3667e4e..2f99253 100644 --- a/chain-api/src/contract-interact/license/license.service.ts +++ b/chain-api/src/contract-interact/license/license.service.ts @@ -10,23 +10,25 @@ import { RequestLicenseDto, SetPayoutContractDto, } from './license.dto'; -import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; -import { ProviderService } from '../../base/provider/provider.service'; import { CHAINLINK } from '../../config/chainlink.config'; +import { ProviderService } from '../../base/provider/provider.service'; +import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; @Injectable() export class LicenseService extends BaseContractService { constructor( - private readonly multiSigService: MultiSigWalletService, public readonly providerService: ProviderService, + public readonly multiSigService: MultiSigWalletService, ) { super(providerService); } async request(dto: RequestLicenseDto) { - const { multiSigWallet, contractAddress } = dto; + const { multiSigWallet, contractAddress, url } = dto; - const ISubmitMultiSig = new ethers.Interface(['function request()']); - const data = ISubmitMultiSig.encodeFunctionData('request'); + const ISubmitMultiSig = new ethers.Interface([ + 'function request(string memory url)', + ]); + const data = ISubmitMultiSig.encodeFunctionData('request', [url]); return await this.multiSigService.submitTransaction({ contractAddress: multiSigWallet, @@ -46,7 +48,6 @@ export class LicenseService extends BaseContractService { const contract = new ethers.Contract(contractAddress, abi, signer); const answer: bigint = await contract.totalPayoutInUSD(); - console.log('=>(license.service.ts:45) answer', answer); return answer.toString(); } diff --git a/chain-api/src/contract-interact/salaries/salaries.service.ts b/chain-api/src/contract-interact/salaries/salaries.service.ts index 394e3dc..dbf2248 100644 --- a/chain-api/src/contract-interact/salaries/salaries.service.ts +++ b/chain-api/src/contract-interact/salaries/salaries.service.ts @@ -7,17 +7,17 @@ import { SetSalaryDto, } from './salaries.dto'; import * as hre from 'hardhat'; -import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; import { BaseContractService } from '../../base/base-contract.service'; -import { ProviderService } from '../../base/provider/provider.service'; import { DepositContractDto } from '../multi-sig.dto'; import { CHAINLINK } from '../../config/chainlink.config'; +import { ProviderService } from '../../base/provider/provider.service'; +import { MultiSigWalletService } from '../multi-sig/multi-sig.service'; @Injectable() export class SalariesService extends BaseContractService { constructor( - private readonly multiSigWalletService: MultiSigWalletService, public readonly providerService: ProviderService, + public readonly multiSigService: MultiSigWalletService, ) { super(providerService); } @@ -57,7 +57,7 @@ export class SalariesService extends BaseContractService { salary, ]); - return await this.multiSigWalletService.submitTransaction({ + return await this.multiSigService.submitTransaction({ contractAddress: multiSigWallet, destination: contractAddress, value: '0', @@ -87,7 +87,7 @@ export class SalariesService extends BaseContractService { employeeAddress, ]); - return await this.multiSigWalletService.submitTransaction({ + return await this.multiSigService.submitTransaction({ contractAddress: multiSigWallet, destination: contractAddress, value: '0', diff --git a/chain-api/src/ethereum/ethereum.controller.ts b/chain-api/src/ethereum/ethereum.controller.ts new file mode 100644 index 0000000..d535715 --- /dev/null +++ b/chain-api/src/ethereum/ethereum.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get, Param } from '@nestjs/common'; +import { EthereumService } from './ethereum.service'; +import { ApiTags } from '@nestjs/swagger'; +@ApiTags('Ethereum') +@Controller() +export class EthereumController { + constructor(private readonly ethereumService: EthereumService) {} + @Get('/address/:privateKey') + async getAddressFromPrivateKey(@Param('privateKey') privateKey: string) { + return this.ethereumService.getAddressFromPrivateKey(privateKey); + } +} diff --git a/chain-api/src/ethereum/ethereum.module.ts b/chain-api/src/ethereum/ethereum.module.ts new file mode 100644 index 0000000..b61c87f --- /dev/null +++ b/chain-api/src/ethereum/ethereum.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { EthereumController } from './ethereum.controller'; +import { EthereumService } from './ethereum.service'; + +@Module({ + imports: [], + controllers: [EthereumController], + providers: [EthereumService], + exports: [], +}) +export class EthereumModule {} diff --git a/chain-api/src/ethereum/ethereum.service.ts b/chain-api/src/ethereum/ethereum.service.ts new file mode 100644 index 0000000..341ab32 --- /dev/null +++ b/chain-api/src/ethereum/ethereum.service.ts @@ -0,0 +1,10 @@ +import { Inject, Injectable } from '@nestjs/common'; +import { ethers } from 'ethers'; + +@Injectable() +export class EthereumService { + async getAddressFromPrivateKey(privateKey: string) { + const wallet = new ethers.Wallet(privateKey); + return wallet.address; + } +} diff --git a/chain-api/src/filters/http.filter.ts b/chain-api/src/filters/http.filter.ts index ee91b38..3391686 100644 --- a/chain-api/src/filters/http.filter.ts +++ b/chain-api/src/filters/http.filter.ts @@ -23,7 +23,7 @@ export class AllExceptionsFilter implements ExceptionFilter { const responseBody = { statusCode: httpStatus, - error: exception?.info?.error.message || exception.toString(), + error: exception?.info?.error?.message || exception.toString(), timestamp: new Date().toISOString(), }; diff --git a/chain-api/src/hardhat/contracts/Agreement.sol b/chain-api/src/hardhat/contracts/Agreement.sol index f24987a..0b65114 100644 --- a/chain-api/src/hardhat/contracts/Agreement.sol +++ b/chain-api/src/hardhat/contracts/Agreement.sol @@ -4,30 +4,20 @@ pragma solidity ^0.8.17; import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol"; import "@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner.sol"; -/** - * Request testnet LINK and ETH here: https://faucets.chain.link/ - * Find information on LINK Token Contracts and get the latest ETH and LINK faucets here: https://docs.chain.link/docs/link-token-contracts/ - */ - -/** - * THIS IS AN EXAMPLE CONTRACT THAT USES UN-AUDITED CODE. - */ - -contract LinkWellBoolConsumerContractExample is ChainlinkClient, ConfirmedOwner { +contract Agreement is ChainlinkClient, ConfirmedOwner { using Chainlink for Chainlink.Request; address private oracleAddress; bytes32 private jobId; uint256 private fee; + address public multisigWallet; constructor( address _chainLinkToken, address _oracleAddress, string memory _jobId, uint _fee, - address _multiSigAddress, - address[] memory _owners, - uint[] memory _shares + address _multiSigAddress ) ConfirmedOwner(_multiSigAddress) { _setChainlinkToken(_chainLinkToken); @@ -41,32 +31,18 @@ contract LinkWellBoolConsumerContractExample is ChainlinkClient, ConfirmedOwner multisigWallet = _multiSigAddress; } - constructor() ConfirmedOwner(msg.sender) { - _setChainlinkToken(0x0Fd9e8d3aF1aaee056EB9e802c3A762a667b1904); - setOracleAddress(0xd36c6B1777c7f3Db1B3201bDD87081A9045B7b46); - setJobId("43309009a154495cb2ed794233e6ff56"); - setFeeInHundredthsOfLink(0); // 0 LINK - } // Send a request to the Chainlink oracle - function request() public { + function request(string memory url) public { Chainlink.Request memory req = _buildOperatorRequest(jobId, this.fulfill.selector); - // DEFINE THE REQUEST PARAMETERS (example) - req._add('method', 'POST'); - req._add('url', 'https://httpbin.org/post'); - req._add('headers', '["accept", "application/json", "set-cookie", "sid=14A52"]'); - req._add('body', '{"data":[{"coin":"BTC","isActive":false},{"coin":"ETH","isActive":false},{"coin":"LINK","isActive":true}]}'); - req._add('contact', ''); // PLEASE ENTER YOUR CONTACT INFO. this allows us to notify you in the event of any emergencies related to your request (ie, bugs, downtime, etc.). example values: 'derek_linkwellnodes.io' (Discord handle) OR 'derek@linkwellnodes.io' OR '+1-617-545-4721' - - // The following curl command simulates the above request parameters: - // curl 'https://httpbin.org/post' --request 'POST' --header 'content-type: application/json' --header 'set-cookie: sid=14A52' --data '{"data":[{"coin":"BTC","isActive":false},{"coin":"ETH","isActive":false},{"coin":"LINK","isActive":true}]}' - - // PROCESS THE RESULT (example) - req._add('path', 'json,data,2,isActive'); - - // Send the request to the Chainlink oracle + req._add('method', 'GET'); + req._add('url', url); + req._add('headers', '["content-type", "application/json"]'); + req._add('body', ''); + req._add('contact', ''); + req._add('path', ''); _sendOperatorRequest(req, fee); } @@ -75,9 +51,8 @@ contract LinkWellBoolConsumerContractExample is ChainlinkClient, ConfirmedOwner // Receive the result from the Chainlink oracle event RequestFulfilled(bytes32 indexed requestId); function fulfill(bytes32 requestId, bool data) public recordChainlinkFulfillment(requestId) { - // Process the oracle response - // emit RequestFulfilled(requestId); // (optional) emits this event in the on-chain transaction logs, allowing Web3 applications to listen for this transaction - response = data; // example value: true + emit RequestFulfilled(requestId); + response = data; } // Update oracle address diff --git a/chain-api/src/hardhat/contracts/StreamingRightsManagement.sol b/chain-api/src/hardhat/contracts/StreamingRightsManagement.sol index 37eb5a1..2f11729 100644 --- a/chain-api/src/hardhat/contracts/StreamingRightsManagement.sol +++ b/chain-api/src/hardhat/contracts/StreamingRightsManagement.sol @@ -55,10 +55,6 @@ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { owners.push(_owners[i]); } } - //get share - //update share - //change payout address - // modifier hasValidPayoutContract() { require(address(payoutContract) != address(0), "payoutContract not initialized"); _; @@ -73,26 +69,20 @@ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { payoutContract = Payroll(_payoutAddress); } - // Send a request to the Chainlink oracle - function request() external onlyOwner{ + function request(string memory url) external onlyOwner{ Chainlink.Request memory req = _buildOperatorRequest(jobId, this.fulfill.selector); - // DEFINE THE REQUEST PARAMETERS (example) req._add('method', 'GET'); - req._add('url', 'https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH&tsyms=USD,EUR'); - req._add('headers', '["content-type", "application/json", "set-cookie", "sid=14A52"]'); - req._add('body', ''); - req._add('contact', ''); // PLEASE ENTER YOUR CONTACT INFO. this allows us to notify you in the event of any emergencies related to your request (ie, bugs, downtime, etc.). example values: 'derek_linkwellnodes.io' (Discord handle) OR 'derek@linkwellnodes.io' OR '+1-617-545-4721' + req._add('url', url); - // The following curl command simulates the above request parameters: - // curl 'https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH&tsyms=USD,EUR' --request 'GET' --header 'content-type: application/json' --header 'set-cookie: sid=14A52' - - // PROCESS THE RESULT (example) - req._add('path', 'ETH,USD'); + //if returns just int - then empty path + req._add('path', ''); req._addInt('multiplier', 10 ** 18); - // Send the request to the Chainlink oracle + req._add('headers', '["content-type", "application/json"]'); + req._add('body', ''); + req._add('contact', ''); _sendOperatorRequest(req, fee); } @@ -102,9 +92,7 @@ contract StreamingRightsManagement is ChainlinkClient, ConfirmedOwner { event RequestFulfilled(bytes32 indexed requestId); function fulfill(bytes32 requestId, uint256 data) public recordChainlinkFulfillment(requestId) { - // Process the oracle response - // emit RequestFulfilled(requestId); // (optional) emits this event in the on-chain transaction logs, allowing Web3 applications to listen for this transaction - totalPayoutInUSD = data / 1e18 / 100; // example value: 1875870000000000000000 (1875.87 before "multiplier" is applied) + totalPayoutInUSD = data / 1e18; } function payout() external onlyOwner hasValidPayoutContract{ diff --git a/docs.md b/docs.md deleted file mode 100644 index 9cba279..0000000 --- a/docs.md +++ /dev/null @@ -1,4 +0,0 @@ -# links - -chainlink-feeds amoy -https://docs.chain.link/data-feeds/price-feeds/addresses?network=polygon&page=1 diff --git a/excalidraw/3step-license-payout.excalidraw b/excalidraw/3step-license-payout.excalidraw new file mode 100644 index 0000000..6a8850a --- /dev/null +++ b/excalidraw/3step-license-payout.excalidraw @@ -0,0 +1,1603 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "cRUk1DppgTkCeA2RA6PRp", + "type": "rectangle", + "x": -2640.653883643481, + "y": -1777.0739379596703, + "width": 142.20161897590378, + "height": 118.47232680722891, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1C", + "roundness": { + "type": 3 + }, + "seed": 751864476, + "version": 1159, + "versionNonce": 1153672228, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "7szKNMG-Nhftw0f1eGHqt" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + } + ], + "updated": 1716540972211, + "link": null, + "locked": false + }, + { + "id": "7szKNMG-Nhftw0f1eGHqt", + "type": "text", + "x": -2616.428074155529, + "y": -1741.8377745560558, + "width": 93.75, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1D", + "roundness": null, + "seed": 1781238044, + "version": 1117, + "versionNonce": 1015250852, + "isDeleted": false, + "boundElements": null, + "updated": 1716540972211, + "link": null, + "locked": false, + "text": "MultiSig\ncontract", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "cRUk1DppgTkCeA2RA6PRp", + "originalText": "MultiSig\ncontract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "B-GrdFUwex-2uubnmOnI1", + "type": "rectangle", + "x": -2872.1232556721575, + "y": -1568.7510741976482, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1E", + "roundness": { + "type": 3 + }, + "seed": 1777098780, + "version": 1116, + "versionNonce": 163966364, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "KV2r7mnQ1oRVMpa8RY0mz" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + } + ], + "updated": 1716541170710, + "link": null, + "locked": false + }, + { + "id": "KV2r7mnQ1oRVMpa8RY0mz", + "type": "text", + "x": -2851.42954332276, + "y": -1526.988367119335, + "width": 93.75, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1F", + "roundness": null, + "seed": 1177855644, + "version": 1084, + "versionNonce": 913168924, + "isDeleted": false, + "boundElements": null, + "updated": 1716541170710, + "link": null, + "locked": false, + "text": "1.Submit", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "B-GrdFUwex-2uubnmOnI1", + "originalText": "1.Submit", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "QsyMGBFykQvoXn8QB29cx", + "type": "rectangle", + "x": -2632.1646793726527, + "y": -1570.463237351688, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1G", + "roundness": { + "type": 3 + }, + "seed": 1644243228, + "version": 1224, + "versionNonce": 1508899748, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "2yqrUQj5TdIvsguyhLEB9" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + } + ], + "updated": 1716541134478, + "link": null, + "locked": false + }, + { + "id": "2yqrUQj5TdIvsguyhLEB9", + "type": "text", + "x": -2617.330342023255, + "y": -1528.7005302733749, + "width": 105.46875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1H", + "roundness": null, + "seed": 416712356, + "version": 1186, + "versionNonce": 691595044, + "isDeleted": false, + "boundElements": null, + "updated": 1716541134478, + "link": null, + "locked": false, + "text": "2.Confirm", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QsyMGBFykQvoXn8QB29cx", + "originalText": "2.Confirm", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "VkDMdVlXh75qHnoxqn9Sr", + "type": "rectangle", + "x": -2365.2504561994942, + "y": -1570.777997827946, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1I", + "roundness": { + "type": 3 + }, + "seed": 1471567004, + "version": 1309, + "versionNonce": 47881628, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "o7LMIb_ysao606P8pmhLr" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + }, + { + "id": "GLQkggDNgbk2TIg6YER1W", + "type": "arrow" + } + ], + "updated": 1716541373905, + "link": null, + "locked": false + }, + { + "id": "o7LMIb_ysao606P8pmhLr", + "type": "text", + "x": -2350.4161188500966, + "y": -1529.0152907496326, + "width": 105.46875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1J", + "roundness": null, + "seed": 1694225188, + "version": 1306, + "versionNonce": 335609124, + "isDeleted": false, + "boundElements": null, + "updated": 1716541375354, + "link": null, + "locked": false, + "text": "3.Execute", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VkDMdVlXh75qHnoxqn9Sr", + "originalText": "3.Execute", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow", + "x": -2629.5837390468537, + "y": -1657.6016111524414, + "width": 118.37186931515225, + "height": 85.97497219575644, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1K", + "roundness": { + "type": 2 + }, + "seed": 1480202148, + "version": 3101, + "versionNonce": 73073436, + "isDeleted": false, + "boundElements": null, + "updated": 1716541170710, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -118.37186931515225, + 85.97497219575644 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.15022186648483823, + "gap": 1 + }, + "endBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": -0.15101080216513676, + "gap": 2.8755647590365925 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow", + "x": -2556.117837897161, + "y": -1654.6939905325307, + "width": 9.718623229196965, + "height": 83.23075318084261, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1L", + "roundness": { + "type": 2 + }, + "seed": 546446372, + "version": 3090, + "versionNonce": 1777778332, + "isDeleted": false, + "boundElements": null, + "updated": 1716541134486, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -9.718623229196965, + 83.23075318084261 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.2667134898299772, + "gap": 3.907620619910631 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.10339000105429318, + "gap": 1.0000000000002274 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow", + "x": -2511.1610567239895, + "y": -1656.7883052915672, + "width": 197.04913459067575, + "height": 81.10349270458528, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1M", + "roundness": { + "type": 2 + }, + "seed": 292839460, + "version": 3117, + "versionNonce": 1265480476, + "isDeleted": false, + "boundElements": null, + "updated": 1716541373906, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 197.04913459067575, + 81.10349270458528 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": 0.4183289218551938, + "gap": 1.8133058608743795 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.6363234582027605, + "gap": 4.906814759036024 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow", + "x": -2722.8322990374, + "y": -1504.7088793199582, + "width": 78.63751723447785, + "height": 1.9924361784378561, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1O", + "roundness": { + "type": 2 + }, + "seed": 1072145060, + "version": 1084, + "versionNonce": 902949916, + "isDeleted": false, + "boundElements": null, + "updated": 1716541170710, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 78.63751723447785, + -1.9924361784378561 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": 0.22263398378329902, + "gap": 14.153531935962292 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.14389303943272705, + "gap": 12.03010243026938 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow", + "x": -2477.1999187892234, + "y": -1511.9408313583294, + "width": 110.94946258972914, + "height": 4.493602184745214, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1P", + "roundness": { + "type": 2 + }, + "seed": 384820516, + "version": 1087, + "versionNonce": 2079890460, + "isDeleted": false, + "boundElements": null, + "updated": 1716541373906, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 110.94946258972914, + -4.493602184745214 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": 0.1468786698920216, + "gap": 19.827335884634067 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.03887245516636776, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "Ipm1nc8P_wdwFs4Kk4SxJ", + "type": "rectangle", + "x": -2150.1365765236123, + "y": -1540.171224309748, + "width": 239.38356164383572, + "height": 194.70783390410952, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1U", + "roundness": { + "type": 3 + }, + "seed": 829457180, + "version": 763, + "versionNonce": 1539626652, + "isDeleted": false, + "boundElements": [ + { + "id": "GLQkggDNgbk2TIg6YER1W", + "type": "arrow" + }, + { + "id": "kuq-pNpVRv94cormc_8d-", + "type": "arrow" + } + ], + "updated": 1716541492157, + "link": null, + "locked": false + }, + { + "id": "3uVMFvenRJej4Rbog58rh", + "type": "text", + "x": -2093.925632074228, + "y": -1483.3463204892537, + "width": 131.25, + "height": 67.2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1V", + "roundness": null, + "seed": 481793948, + "version": 805, + "versionNonce": 295741348, + "isDeleted": false, + "boundElements": null, + "updated": 1716541372068, + "link": null, + "locked": false, + "text": "License\nContract", + "fontSize": 28, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "License\nContract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "DBi-vgSFCH4fU8G66TG3W", + "type": "arrow", + "x": -2939.4725172190538, + "y": -1386.514772510577, + "width": 78.3273050873504, + "height": 73.24093953038528, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1a", + "roundness": { + "type": 2 + }, + "seed": 700563228, + "version": 1435, + "versionNonce": 341424420, + "isDeleted": false, + "boundElements": [], + "updated": 1716541352288, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 78.3273050873504, + -73.24093953038528 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "QaL-uAHwyUTOHVcszS-WE", + "gap": 1, + "focus": -0.17375726084706178 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "GLQkggDNgbk2TIg6YER1W", + "type": "arrow", + "x": -2229.113031500699, + "y": -1500.9359857746726, + "width": 77.594430537461, + "height": 28.323604429744137, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1o", + "roundness": { + "type": 2 + }, + "seed": 821868836, + "version": 568, + "versionNonce": 1402815772, + "isDeleted": false, + "boundElements": null, + "updated": 1716541373906, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 77.594430537461, + 28.323604429744137 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": -0.11406119004732307, + "gap": 1 + }, + "endBinding": { + "elementId": "Ipm1nc8P_wdwFs4Kk4SxJ", + "focus": -0.10209172686307784, + "gap": 1.3820244396255248 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "lSJuQh91ZbHxNTh74_Ha7", + "type": "text", + "x": -3042.6204678463578, + "y": -1769.8220104243078, + "width": 168.75, + "height": 43.199999999999996, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b29", + "roundness": null, + "seed": 874278564, + "version": 410, + "versionNonce": 2122403748, + "isDeleted": false, + "boundElements": null, + "updated": 1716541325043, + "link": null, + "locked": false, + "text": "3.Payout", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "3.Payout", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "QaL-uAHwyUTOHVcszS-WE", + "type": "ellipse", + "x": -3099.313352230783, + "y": -1393.2259660149607, + "width": 221.484375, + "height": 149.63890989147853, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2G", + "roundness": { + "type": 2 + }, + "seed": 1412150812, + "version": 1186, + "versionNonce": 516276252, + "isDeleted": false, + "boundElements": [ + { + "id": "DBi-vgSFCH4fU8G66TG3W", + "type": "arrow" + }, + { + "type": "text", + "id": "OvHWr8pUouLjYPuDNmVJW" + } + ], + "updated": 1716541377567, + "link": null, + "locked": false + }, + { + "id": "OvHWr8pUouLjYPuDNmVJW", + "type": "text", + "x": -3023.533966475465, + "y": -1330.3118550260351, + "width": 70.3125, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2H", + "roundness": null, + "seed": 503628452, + "version": 217, + "versionNonce": 1770708900, + "isDeleted": false, + "boundElements": null, + "updated": 1716541377567, + "link": null, + "locked": false, + "text": "Payout", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QaL-uAHwyUTOHVcszS-WE", + "originalText": "Payout", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "gUjazb20PLwx3Wi-2Amd-", + "type": "ellipse", + "x": -2488.496076612591, + "y": -1388.864461722989, + "width": 215.92431006493484, + "height": 150, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2K", + "roundness": { + "type": 2 + }, + "seed": 890337828, + "version": 212, + "versionNonce": 2088558492, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Ai7yvI3z9L1To3DisokVw" + }, + { + "id": "b7oKozdwftHIt82ng8jRs", + "type": "arrow" + }, + { + "id": "kuq-pNpVRv94cormc_8d-", + "type": "arrow" + } + ], + "updated": 1716541492158, + "link": null, + "locked": false + }, + { + "id": "Ai7yvI3z9L1To3DisokVw", + "type": "text", + "x": -2433.109068515095, + "y": -1361.8974703119802, + "width": 105.46875, + "height": 96, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2L", + "roundness": null, + "seed": 1219715228, + "version": 94, + "versionNonce": 61588508, + "isDeleted": false, + "boundElements": null, + "updated": 1716541478616, + "link": null, + "locked": false, + "text": "response\nfrom \nDataFeed \n(uint)", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "gUjazb20PLwx3Wi-2Amd-", + "originalText": "response\nfrom DataFeed (uint)", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "NNz5mOiI2epXpNexOJ3kf", + "type": "ellipse", + "x": -2536.3095912229824, + "y": -1204.2763935411651, + "width": 264.76258116883105, + "height": 165.94460227272725, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2N", + "roundness": { + "type": 2 + }, + "seed": 311718692, + "version": 288, + "versionNonce": 1865778724, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "9PkRPhHbhwXyLZmwf7ybB" + }, + { + "id": "Lgb_PKvXsYd3K-XY4lFvc", + "type": "arrow" + }, + { + "id": "b7oKozdwftHIt82ng8jRs", + "type": "arrow" + }, + { + "id": "P_917BKkdD42ObkB04tA1", + "type": "arrow" + } + ], + "updated": 1716541530373, + "link": null, + "locked": false + }, + { + "id": "9PkRPhHbhwXyLZmwf7ybB", + "type": "text", + "x": -2450.911008913034, + "y": -1133.4743691889764, + "width": 93.75, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2NV", + "roundness": null, + "seed": 1868010652, + "version": 228, + "versionNonce": 743236004, + "isDeleted": false, + "boundElements": null, + "updated": 1716541475415, + "link": null, + "locked": false, + "text": "payout()", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "NNz5mOiI2epXpNexOJ3kf", + "originalText": "payout()", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "ieSGK0eWKfzxhxraqJT2a", + "type": "text", + "x": -2987.080695119086, + "y": -1130.9149893203858, + "width": 375, + "height": 96, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2O", + "roundness": null, + "seed": 593653276, + "version": 644, + "versionNonce": 652248484, + "isDeleted": false, + "boundElements": [ + { + "id": "Lgb_PKvXsYd3K-XY4lFvc", + "type": "arrow" + } + ], + "updated": 1716541510481, + "link": null, + "locked": false, + "text": "Payout func calculates\nthe payout for each owner\ndepending on its share\nbased on response from Data Feed", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Payout func calculates\nthe payout for each owner\ndepending on its share\nbased on response from Data Feed", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Lgb_PKvXsYd3K-XY4lFvc", + "type": "arrow", + "x": -2605.255613950255, + "y": -1093.9559859105539, + "width": 72.75466899780713, + "height": 1.5408378057863956, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2P", + "roundness": { + "type": 2 + }, + "seed": 406545820, + "version": 1020, + "versionNonce": 86928548, + "isDeleted": false, + "boundElements": null, + "updated": 1716541510483, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 72.75466899780713, + -1.5408378057863956 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "ieSGK0eWKfzxhxraqJT2a", + "focus": -0.13349686438761452, + "gap": 6.825081168831048 + }, + "endBinding": { + "elementId": "NNz5mOiI2epXpNexOJ3kf", + "focus": -0.27805809921294367, + "gap": 2.4878277168782574 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "b7oKozdwftHIt82ng8jRs", + "type": "arrow", + "x": -2410.30418630486, + "y": -1240.7560677209722, + "width": 3.673669546835299, + "height": 35.7183605262494, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2R", + "roundness": { + "type": 2 + }, + "seed": 385685788, + "version": 487, + "versionNonce": 380005660, + "isDeleted": false, + "boundElements": null, + "updated": 1716541478616, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.673669546835299, + 35.7183605262494 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "gUjazb20PLwx3Wi-2Amd-", + "focus": 0.19673471716742655, + "gap": 1 + }, + "endBinding": { + "elementId": "NNz5mOiI2epXpNexOJ3kf", + "focus": -0.1406768870781382, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "kuq-pNpVRv94cormc_8d-", + "type": "arrow", + "x": -2153.456506807398, + "y": -1395.1854844502561, + "width": 135.75994318181847, + "height": 43.5064935064936, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2T", + "roundness": { + "type": 2 + }, + "seed": 1197455004, + "version": 66, + "versionNonce": 447193884, + "isDeleted": false, + "boundElements": null, + "updated": 1716541492157, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -135.75994318181847, + 43.5064935064936 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Ipm1nc8P_wdwFs4Kk4SxJ", + "focus": -0.06050137754195723, + "gap": 3.3199302837855384 + }, + "endBinding": { + "elementId": "gUjazb20PLwx3Wi-2Amd-", + "focus": -0.10352063911545706, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "JeYvp-31IeVb2kLmmnRQy", + "type": "rectangle", + "x": -1989.820143171031, + "y": -1062.7991208138958, + "width": 261.1049107142858, + "height": 204.5556006493507, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2U", + "roundness": { + "type": 3 + }, + "seed": 439412892, + "version": 178, + "versionNonce": 1445722916, + "isDeleted": false, + "boundElements": [ + { + "id": "P_917BKkdD42ObkB04tA1", + "type": "arrow" + }, + { + "id": "90zj_e7NBEMT_sEZ3lOPJ", + "type": "arrow" + } + ], + "updated": 1716541559878, + "link": null, + "locked": false + }, + { + "id": "k1zNSb0F5wnFP88YAEHtX", + "type": "text", + "x": -1952.60930713207, + "y": -979.3321971125972, + "width": 187.5, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2V", + "roundness": null, + "seed": 1935234716, + "version": 155, + "versionNonce": 1414949156, + "isDeleted": false, + "boundElements": null, + "updated": 1716541543781, + "link": null, + "locked": false, + "text": "Payroll Contract", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Payroll Contract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "P_917BKkdD42ObkB04tA1", + "type": "arrow", + "x": -2278.3967667189886, + "y": -1092.650203843443, + "width": 282.22516250899594, + "height": 92.97786419475881, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2W", + "roundness": { + "type": 2 + }, + "seed": 356376100, + "version": 173, + "versionNonce": 722728356, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "yCF_0vpco6TU6V2gC3cCN" + } + ], + "updated": 1716541549581, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 282.22516250899594, + 92.97786419475881 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "NNz5mOiI2epXpNexOJ3kf", + "focus": -0.13550745720347293, + "gap": 1.1197343727159534 + }, + "endBinding": { + "elementId": "JeYvp-31IeVb2kLmmnRQy", + "focus": -0.04096275602015073, + "gap": 6.351461038961588 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "yCF_0vpco6TU6V2gC3cCN", + "type": "text", + "x": -2225.1748104644907, + "y": -1058.1612717460637, + "width": 175.78125, + "height": 24, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2X", + "roundness": null, + "seed": 1727145124, + "version": 23, + "versionNonce": 466115996, + "isDeleted": false, + "boundElements": null, + "updated": 1716541549133, + "link": null, + "locked": false, + "text": "oneTimePayout()", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "P_917BKkdD42ObkB04tA1", + "originalText": "oneTimePayout()", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "90zj_e7NBEMT_sEZ3lOPJ", + "type": "arrow", + "x": -2000.2909223918111, + "y": -920.080127499059, + "width": 197.74111022031252, + "height": 190.23047908775925, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2Y", + "roundness": { + "type": 2 + }, + "seed": 1741529380, + "version": 421, + "versionNonce": 1018248356, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "erhw5mo79lDYk1fcWyJFb" + } + ], + "updated": 1716541603242, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -197.74111022031252, + 190.23047908775925 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "JeYvp-31IeVb2kLmmnRQy", + "gap": 10.47077922078006, + "focus": 0.4154510985393437 + }, + "endBinding": { + "elementId": "ZfKgRLQQGhme7FIz98JsI", + "gap": 5.879667207792181, + "focus": -0.4341831136766021 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "erhw5mo79lDYk1fcWyJFb", + "type": "text", + "x": -2192.6686618398626, + "y": -819.4850988983127, + "width": 210.9375, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2YV", + "roundness": null, + "seed": 1457427876, + "version": 21, + "versionNonce": 1491033764, + "isDeleted": false, + "boundElements": null, + "updated": 1716541577750, + "link": null, + "locked": false, + "text": "transfer to owners", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "90zj_e7NBEMT_sEZ3lOPJ", + "originalText": "transfer to owners", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "ZfKgRLQQGhme7FIz98JsI", + "type": "rectangle", + "x": -2286.7813850541497, + "y": -723.9699812035076, + "width": 183.67999188311705, + "height": 104.3019480519481, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2Z", + "roundness": { + "type": 3 + }, + "seed": 1288238756, + "version": 213, + "versionNonce": 836195748, + "isDeleted": false, + "boundElements": [ + { + "id": "90zj_e7NBEMT_sEZ3lOPJ", + "type": "arrow" + } + ], + "updated": 1716541603242, + "link": null, + "locked": false + }, + { + "id": "EIMMTMEtvOiC9wRNb5tqE", + "type": "text", + "x": -2258.57521622298, + "y": -694.7999325022088, + "width": 125.71512127690983, + "height": 42.71675796463018, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2a", + "roundness": null, + "seed": 1633546916, + "version": 387, + "versionNonce": 1040043932, + "isDeleted": false, + "boundElements": null, + "updated": 1716541620933, + "link": null, + "locked": false, + "text": "owners\naddresses", + "fontSize": 17.798649151929244, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "owners\naddresses", + "autoResize": false, + "lineHeight": 1.2 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/excalidraw/3step-license-payout.png b/excalidraw/3step-license-payout.png new file mode 100644 index 0000000000000000000000000000000000000000..207bd60333ca3cd7ff7d478bd116f60976c1dac1 GIT binary patch literal 127494 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 Xqm8VhCqJ4fz~5fWZ^=2kk8u7C0Sa#T literal 0 HcmV?d00001 diff --git a/arch.png b/excalidraw/arch.png similarity index 100% rename from arch.png rename to excalidraw/arch.png diff --git a/excalidraw/data-request-license.excalidraw b/excalidraw/data-request-license.excalidraw new file mode 100644 index 0000000..867405f --- /dev/null +++ b/excalidraw/data-request-license.excalidraw @@ -0,0 +1,1772 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "cRUk1DppgTkCeA2RA6PRp", + "type": "rectangle", + "x": -2640.937974552572, + "y": -1778.1342058168132, + "width": 142.20161897590378, + "height": 118.47232680722891, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1C", + "roundness": { + "type": 3 + }, + "seed": 751864476, + "version": 1154, + "versionNonce": 674119324, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "7szKNMG-Nhftw0f1eGHqt" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + } + ], + "updated": 1716540353619, + "link": null, + "locked": false + }, + { + "id": "7szKNMG-Nhftw0f1eGHqt", + "type": "text", + "x": -2616.71216506462, + "y": -1742.8980424131987, + "width": 93.75, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1D", + "roundness": null, + "seed": 1781238044, + "version": 1112, + "versionNonce": 1705249564, + "isDeleted": false, + "boundElements": null, + "updated": 1716540353619, + "link": null, + "locked": false, + "text": "MultiSig\ncontract", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "cRUk1DppgTkCeA2RA6PRp", + "originalText": "MultiSig\ncontract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "B-GrdFUwex-2uubnmOnI1", + "type": "rectangle", + "x": -2872.0116485293006, + "y": -1569.4815936781677, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1E", + "roundness": { + "type": 3 + }, + "seed": 1777098780, + "version": 1100, + "versionNonce": 2031064604, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "KV2r7mnQ1oRVMpa8RY0mz" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + } + ], + "updated": 1716540407579, + "link": null, + "locked": false + }, + { + "id": "KV2r7mnQ1oRVMpa8RY0mz", + "type": "text", + "x": -2851.317936179903, + "y": -1527.7188865998544, + "width": 93.75, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1F", + "roundness": null, + "seed": 1177855644, + "version": 1068, + "versionNonce": 410034724, + "isDeleted": false, + "boundElements": null, + "updated": 1716540418610, + "link": null, + "locked": false, + "text": "1.Submit", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "B-GrdFUwex-2uubnmOnI1", + "originalText": "1.Submit", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "QsyMGBFykQvoXn8QB29cx", + "type": "rectangle", + "x": -2631.976976450575, + "y": -1571.1937568322073, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1G", + "roundness": { + "type": 3 + }, + "seed": 1644243228, + "version": 1209, + "versionNonce": 1571139108, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "2yqrUQj5TdIvsguyhLEB9" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + } + ], + "updated": 1716540697777, + "link": null, + "locked": false + }, + { + "id": "2yqrUQj5TdIvsguyhLEB9", + "type": "text", + "x": -2617.1426391011773, + "y": -1529.4310497538943, + "width": 105.46875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1H", + "roundness": null, + "seed": 416712356, + "version": 1171, + "versionNonce": 1083460004, + "isDeleted": false, + "boundElements": null, + "updated": 1716540697777, + "link": null, + "locked": false, + "text": "2.Confirm", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QsyMGBFykQvoXn8QB29cx", + "originalText": "2.Confirm", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "VkDMdVlXh75qHnoxqn9Sr", + "type": "rectangle", + "x": -2365.0170958098843, + "y": -1571.5085173084653, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1I", + "roundness": { + "type": 3 + }, + "seed": 1471567004, + "version": 1293, + "versionNonce": 760934820, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "o7LMIb_ysao606P8pmhLr" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + }, + { + "id": "GLQkggDNgbk2TIg6YER1W", + "type": "arrow" + } + ], + "updated": 1716540568253, + "link": null, + "locked": false + }, + { + "id": "o7LMIb_ysao606P8pmhLr", + "type": "text", + "x": -2350.1827584604866, + "y": -1529.745810230152, + "width": 105.46875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1J", + "roundness": null, + "seed": 1694225188, + "version": 1275, + "versionNonce": 81786020, + "isDeleted": false, + "boundElements": null, + "updated": 1716540569627, + "link": null, + "locked": false, + "text": "3.Execute", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VkDMdVlXh75qHnoxqn9Sr", + "originalText": "3.Execute", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow", + "x": -2629.1095861707718, + "y": -1658.5400973624478, + "width": 118.70696313763983, + "height": 86.18293892524343, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1K", + "roundness": { + "type": 2 + }, + "seed": 1480202148, + "version": 3054, + "versionNonce": 1332706204, + "isDeleted": false, + "boundElements": null, + "updated": 1716540407579, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -118.70696313763983, + 86.18293892524343 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.1564438070980912, + "gap": 1.1217816471364586 + }, + "endBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": -0.15101080216513707, + "gap": 2.875564759036479 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow", + "x": -2555.930134975083, + "y": -1655.4245100130502, + "width": 9.718623229196965, + "height": 83.23075318084261, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1L", + "roundness": { + "type": 2 + }, + "seed": 546446372, + "version": 3045, + "versionNonce": 1338060964, + "isDeleted": false, + "boundElements": null, + "updated": 1716540697777, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -9.718623229196965, + 83.23075318084261 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.2732353143020469, + "gap": 4.237368996534087 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.10339000105429291, + "gap": 1.0000000000002274 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow", + "x": -2510.973353801912, + "y": -1657.5188247720864, + "width": 197.08421313259805, + "height": 81.10349270458505, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1M", + "roundness": { + "type": 2 + }, + "seed": 292839460, + "version": 3070, + "versionNonce": 881009700, + "isDeleted": false, + "boundElements": null, + "updated": 1716540568253, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 197.08421313259805, + 81.10349270458505 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": 0.4199867678063152, + "gap": 2.143054237497836 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.6363234582027597, + "gap": 4.906814759036024 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow", + "x": -2722.720691894543, + "y": -1505.4385143299505, + "width": 78.7136130136987, + "height": 1.9938753713977349, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1O", + "roundness": { + "type": 2 + }, + "seed": 1072145060, + "version": 1027, + "versionNonce": 1746950052, + "isDeleted": false, + "boundElements": null, + "updated": 1716540697777, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 78.7136130136987, + -1.9938753713977349 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": 0.22243400432382487, + "gap": 14.153531935962292 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.14389303943273174, + "gap": 12.03010243026938 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow", + "x": -2477.0122158671456, + "y": -1512.6713508388489, + "width": 110.99512005726137, + "height": 4.494291352614027, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1P", + "roundness": { + "type": 2 + }, + "seed": 384820516, + "version": 1030, + "versionNonce": 304201380, + "isDeleted": false, + "boundElements": null, + "updated": 1716540697777, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 110.99512005726137, + -4.494291352614027 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": 0.14681410442341042, + "gap": 19.827335884634067 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.03887245516636853, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "QaL-uAHwyUTOHVcszS-WE", + "type": "ellipse", + "x": -3103.0014609970176, + "y": -1219.3115991318436, + "width": 221.484375, + "height": 176.64276541095887, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1R", + "roundness": { + "type": 2 + }, + "seed": 1412150812, + "version": 792, + "versionNonce": 2091351588, + "isDeleted": false, + "boundElements": [ + { + "id": "DBi-vgSFCH4fU8G66TG3W", + "type": "arrow" + } + ], + "updated": 1716540376869, + "link": null, + "locked": false + }, + { + "id": "58dH_jCFon-Rj77cgs4fP", + "type": "text", + "x": -3069.5245301795476, + "y": -1162.4327702980065, + "width": 164.0625, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1S", + "roundness": null, + "seed": 205125668, + "version": 721, + "versionNonce": 1549523364, + "isDeleted": false, + "boundElements": null, + "updated": 1716540538999, + "link": null, + "locked": false, + "text": " Request\nfrom chain-api", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": " Request\nfrom chain-api", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Ipm1nc8P_wdwFs4Kk4SxJ", + "type": "rectangle", + "x": -2149.9488736015346, + "y": -1540.9017437902673, + "width": 239.38356164383572, + "height": 194.70783390410952, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1U", + "roundness": { + "type": 3 + }, + "seed": 829457180, + "version": 743, + "versionNonce": 1413965084, + "isDeleted": false, + "boundElements": [ + { + "id": "GLQkggDNgbk2TIg6YER1W", + "type": "arrow" + }, + { + "id": "t-uYtOEL6QKfSx2T33axf", + "type": "arrow" + }, + { + "id": "GOvQqwMsfsD5WMCWSkPAN", + "type": "arrow" + } + ], + "updated": 1716540800565, + "link": null, + "locked": false + }, + { + "id": "3uVMFvenRJej4Rbog58rh", + "type": "text", + "x": -2093.646614217085, + "y": -1484.1123513334094, + "width": 131.25, + "height": 67.2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1V", + "roundness": null, + "seed": 481793948, + "version": 756, + "versionNonce": 417117724, + "isDeleted": false, + "boundElements": null, + "updated": 1716540647961, + "link": null, + "locked": false, + "text": "License \nContract", + "fontSize": 28, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "License \nContract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "DBi-vgSFCH4fU8G66TG3W", + "type": "arrow", + "x": -2971.9716609268316, + "y": -1218.1885461647805, + "width": 111.15112411980317, + "height": 242.28246620085702, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1a", + "roundness": { + "type": 2 + }, + "seed": 700563228, + "version": 1006, + "versionNonce": 1376300956, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "OhGFtySddL5qBYKReArNO" + } + ], + "updated": 1716540823882, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 111.15112411980317, + -242.28246620085702 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "QaL-uAHwyUTOHVcszS-WE", + "focus": -0.16719581513809834, + "gap": 1 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "OhGFtySddL5qBYKReArNO", + "type": "text", + "x": -3004.28672386693, + "y": -1363.329779265209, + "width": 175.78125, + "height": 48, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1aV", + "roundness": null, + "seed": 872527652, + "version": 117, + "versionNonce": 1124378268, + "isDeleted": false, + "boundElements": null, + "updated": 1716540821555, + "link": null, + "locked": false, + "text": "request(string \nmemory url)", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "DBi-vgSFCH4fU8G66TG3W", + "originalText": "request(string memory url)", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "uws_SLYqSKYqUCCzLYUPP", + "type": "rectangle", + "x": -2996.602813625579, + "y": -2262.6875136710714, + "width": 319.5566152597403, + "height": 330.3520698051948, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1l", + "roundness": { + "type": 3 + }, + "seed": 712963108, + "version": 79, + "versionNonce": 977060004, + "isDeleted": false, + "boundElements": null, + "updated": 1716540109354, + "link": null, + "locked": false + }, + { + "id": "iAKZnlQKv7G1NbGM2kgHk", + "type": "text", + "x": -2904.1058574567473, + "y": -2131.9415315282117, + "width": 131.25, + "height": 67.2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1m", + "roundness": null, + "seed": 1952666404, + "version": 129, + "versionNonce": 2100553372, + "isDeleted": false, + "boundElements": null, + "updated": 1716540122417, + "link": null, + "locked": false, + "text": "License\nContract", + "fontSize": 28, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "License\nContract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "jOL6YxvUCxQ4eels3AS4J", + "type": "text", + "x": -2652.519020839206, + "y": -2257.5637312035374, + "width": 540.767578125, + "height": 162.0783887987006, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1n", + "roundness": null, + "seed": 2012005284, + "version": 671, + "versionNonce": 1641494948, + "isDeleted": false, + "boundElements": null, + "updated": 1716540310727, + "link": null, + "locked": false, + "text": "Deployment requires \nowners address[], shares uint[]\n(shares.length == owners.length)\n\nDeployment goes through multisig contract\nusing CREATE2 OPCODE", + "fontSize": 22.510887333152862, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Deployment requires \nowners address[], shares uint[]\n(shares.length == owners.length)\n\nDeployment goes through multisig contract\nusing CREATE2 OPCODE", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "GLQkggDNgbk2TIg6YER1W", + "type": "arrow", + "x": -2228.879671111089, + "y": -1501.65917833499, + "width": 77.54877306992876, + "height": 28.310823778522717, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1o", + "roundness": { + "type": 2 + }, + "seed": 821868836, + "version": 511, + "versionNonce": 425999772, + "isDeleted": false, + "boundElements": null, + "updated": 1716540645981, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 77.54877306992876, + 28.310823778522717 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": -0.11300103944066754, + "gap": 1 + }, + "endBinding": { + "elementId": "Ipm1nc8P_wdwFs4Kk4SxJ", + "focus": -0.10209172686307463, + "gap": 1.3820244396252974 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "teDN596LL4MI7mfDIYXxH", + "type": "text", + "x": -2680.039793637748, + "y": -1862.8841045801544, + "width": 220.130859375, + "height": 41.4, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1p", + "roundness": null, + "seed": 733057316, + "version": 189, + "versionNonce": 507877660, + "isDeleted": false, + "boundElements": null, + "updated": 1716540532989, + "link": null, + "locked": false, + "text": "Data Request", + "fontSize": 36, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Data Request", + "autoResize": true, + "lineHeight": 1.15 + }, + { + "id": "4h_WvMTDGrJ6bXPUtyvsU", + "type": "ellipse", + "x": -2462.8568720671296, + "y": -1326.6984714632679, + "width": 234.60836038960983, + "height": 132, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1q", + "roundness": { + "type": 2 + }, + "seed": 1492494748, + "version": 621, + "versionNonce": 2069077916, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "AXJS8lw-afHwLycYyMTMp" + }, + { + "id": "t-uYtOEL6QKfSx2T33axf", + "type": "arrow" + }, + { + "id": "7gBftWP9OUiCTvDE3lu5B", + "type": "arrow" + } + ], + "updated": 1716540737705, + "link": null, + "locked": false + }, + { + "id": "AXJS8lw-afHwLycYyMTMp", + "type": "text", + "x": -2396.6272028371, + "y": -1272.36751902158, + "width": 102.255859375, + "height": 23, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1r", + "roundness": null, + "seed": 1517406756, + "version": 541, + "versionNonce": 1333087260, + "isDeleted": false, + "boundElements": null, + "updated": 1716540737705, + "link": null, + "locked": false, + "text": "request(url)", + "fontSize": 20, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "4h_WvMTDGrJ6bXPUtyvsU", + "originalText": "request(url)", + "autoResize": true, + "lineHeight": 1.15 + }, + { + "id": "t-uYtOEL6QKfSx2T33axf", + "type": "arrow", + "x": -2155.725967868581, + "y": -1394.4349037862542, + "width": 121.78577870969684, + "height": 76.31964656415812, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1s", + "roundness": { + "type": 2 + }, + "seed": 1858623012, + "version": 935, + "versionNonce": 330167580, + "isDeleted": false, + "boundElements": null, + "updated": 1716540737705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -121.78577870969684, + 76.31964656415812 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Ipm1nc8P_wdwFs4Kk4SxJ", + "gap": 5.777094267046095, + "focus": 0.17011545197806976 + }, + "endBinding": { + "elementId": "4h_WvMTDGrJ6bXPUtyvsU", + "gap": 3.4895754026401278, + "focus": -0.14958152292877977 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "bYhMyrmHjUtc3W4PLXlWK", + "type": "diamond", + "x": -2490.768803885309, + "y": -1074.2743643204087, + "width": 240.46773538960997, + "height": 306.3362418831169, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1u", + "roundness": { + "type": 2 + }, + "seed": 2034486684, + "version": 291, + "versionNonce": 677997852, + "isDeleted": false, + "boundElements": [ + { + "id": "7gBftWP9OUiCTvDE3lu5B", + "type": "arrow" + }, + { + "id": "YXq6JZEmXUxUQ0u7JZUxU", + "type": "arrow" + }, + { + "id": "mE7Mqa6eNUSDeccytlm8l", + "type": "arrow" + }, + { + "id": "rzH1tDzJEKWdjkzDbipqI", + "type": "arrow" + } + ], + "updated": 1716540785127, + "link": null, + "locked": false + }, + { + "id": "sqRUw7BxgJvY0P6ixkYWn", + "type": "text", + "x": -2436.7663180898553, + "y": -952.3156386710581, + "width": 124.5234375, + "height": 64.39999999999999, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1v", + "roundness": null, + "seed": 1822389148, + "version": 204, + "versionNonce": 1051837860, + "isDeleted": false, + "boundElements": null, + "updated": 1716540716852, + "link": null, + "locked": false, + "text": "ChainLink\nDataFeed", + "fontSize": 28, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "ChainLink\nDataFeed", + "autoResize": true, + "lineHeight": 1.15 + }, + { + "id": "7gBftWP9OUiCTvDE3lu5B", + "type": "arrow", + "x": -2415.5985843356557, + "y": -1199.2185152604811, + "width": 22.984718067092217, + "height": 207.73586904704416, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1w", + "roundness": { + "type": 2 + }, + "seed": 1442274468, + "version": 706, + "versionNonce": 1049648668, + "isDeleted": false, + "boundElements": null, + "updated": 1716540737705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -22.984718067092217, + 207.73586904704416 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "4h_WvMTDGrJ6bXPUtyvsU", + "gap": 8.115895970348433, + "focus": 0.5381110182292095 + }, + "endBinding": { + "elementId": "bYhMyrmHjUtc3W4PLXlWK", + "gap": 2.4058499367593384, + "focus": -0.6307298533059978 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "1cfs7ZiuDJYCIxxmGj2yG", + "type": "ellipse", + "x": -2093.832927261933, + "y": -809.4914909437855, + "width": 223.06716720779218, + "height": 191, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1y", + "roundness": { + "type": 2 + }, + "seed": 1075132572, + "version": 273, + "versionNonce": 2119830428, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "gfcJw8OTBz6z0voljIUO7" + }, + { + "id": "YXq6JZEmXUxUQ0u7JZUxU", + "type": "arrow" + }, + { + "id": "mE7Mqa6eNUSDeccytlm8l", + "type": "arrow" + } + ], + "updated": 1716540781760, + "link": null, + "locked": false + }, + { + "id": "gfcJw8OTBz6z0voljIUO7", + "type": "text", + "x": -2030.5151063293888, + "y": -737.0201885471008, + "width": 96.69921875, + "height": 46, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1z", + "roundness": null, + "seed": 1671036068, + "version": 232, + "versionNonce": 2127443996, + "isDeleted": false, + "boundElements": null, + "updated": 1716540781760, + "link": null, + "locked": false, + "text": "URL\nAPI Server", + "fontSize": 20, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "1cfs7ZiuDJYCIxxmGj2yG", + "originalText": "URL\nAPI Server", + "autoResize": true, + "lineHeight": 1.15 + }, + { + "id": "YXq6JZEmXUxUQ0u7JZUxU", + "type": "arrow", + "x": -2273.390476685708, + "y": -878.6599887324064, + "width": 190.45494113747827, + "height": 121.48340485820245, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b20", + "roundness": { + "type": 2 + }, + "seed": 1963468956, + "version": 219, + "versionNonce": 1522262300, + "isDeleted": false, + "boundElements": null, + "updated": 1716540781760, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 190.45494113747827, + 121.48340485820245 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "bYhMyrmHjUtc3W4PLXlWK", + "focus": -0.12880502179237066, + "gap": 8.046939335570784 + }, + "endBinding": { + "elementId": "1cfs7ZiuDJYCIxxmGj2yG", + "focus": -0.17639829714519584, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "SVBuKjIqCO-tlOKNG-C68", + "type": "ellipse", + "x": -1929.947984080116, + "y": -1263.894900034693, + "width": 269.6885146103895, + "height": 107.55884740259762, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b22", + "roundness": { + "type": 2 + }, + "seed": 1188073764, + "version": 135, + "versionNonce": 1952572196, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "1C33KUY853eh25FIDi40V" + }, + { + "id": "rzH1tDzJEKWdjkzDbipqI", + "type": "arrow" + }, + { + "id": "GOvQqwMsfsD5WMCWSkPAN", + "type": "arrow" + } + ], + "updated": 1716540808054, + "link": null, + "locked": false + }, + { + "id": "1C33KUY853eh25FIDi40V", + "type": "text", + "x": -1876.984265519488, + "y": -1222.143271520887, + "width": 164.0625, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b22V", + "roundness": null, + "seed": 931404828, + "version": 66, + "versionNonce": 1503358116, + "isDeleted": false, + "boundElements": null, + "updated": 1716540808054, + "link": null, + "locked": false, + "text": "fullFill(data)", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "SVBuKjIqCO-tlOKNG-C68", + "originalText": "fullFill(data)", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "mE7Mqa6eNUSDeccytlm8l", + "type": "arrow", + "x": -2025.5850344513437, + "y": -810.6273752064658, + "width": 228.88642082727756, + "height": 129.82127519865685, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b24", + "roundness": { + "type": 2 + }, + "seed": 2075812892, + "version": 276, + "versionNonce": 1560336924, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "vQipDSc4rQuNxXqerF9cN" + } + ], + "updated": 1716540835121, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -228.88642082727756, + -129.82127519865685 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "1cfs7ZiuDJYCIxxmGj2yG", + "focus": 0.629276996098267, + "gap": 8.14282812036511 + }, + "endBinding": { + "elementId": "bYhMyrmHjUtc3W4PLXlWK", + "focus": -0.5560689754818529, + "gap": 8.662822505755642 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "vQipDSc4rQuNxXqerF9cN", + "type": "text", + "x": -2210.3407448649823, + "y": -887.5380128057942, + "width": 140.625, + "height": 24, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b25", + "roundness": null, + "seed": 472912924, + "version": 16, + "versionNonce": 601013924, + "isDeleted": false, + "boundElements": null, + "updated": 1716540834627, + "link": null, + "locked": false, + "text": "returns uint", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "mE7Mqa6eNUSDeccytlm8l", + "originalText": "returns uint", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "rzH1tDzJEKWdjkzDbipqI", + "type": "arrow", + "x": -2282.6818283787798, + "y": -980.8919869414062, + "width": 366.48442911957954, + "height": 187.30624410703626, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b26", + "roundness": { + "type": 2 + }, + "seed": 488615836, + "version": 191, + "versionNonce": 1872096924, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "4ckSHLIG3IGK2s_oZWNoG" + } + ], + "updated": 1716540830289, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 366.48442911957954, + -187.30624410703626 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "bYhMyrmHjUtc3W4PLXlWK", + "focus": -0.09718057768923423, + "gap": 11.4448858734023 + }, + "endBinding": { + "elementId": "SVBuKjIqCO-tlOKNG-C68", + "focus": 0.22847139346280754, + "gap": 14.948564597994832 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "4ckSHLIG3IGK2s_oZWNoG", + "type": "text", + "x": -2222.48648881899, + "y": -1098.5451089949242, + "width": 246.09375, + "height": 48, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b27", + "roundness": null, + "seed": 1143738532, + "version": 39, + "versionNonce": 1699090980, + "isDeleted": false, + "boundElements": null, + "updated": 1716540829880, + "link": null, + "locked": false, + "text": "only callable by data\nfeed address", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "rzH1tDzJEKWdjkzDbipqI", + "originalText": "only callable by data feed address", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "GOvQqwMsfsD5WMCWSkPAN", + "type": "arrow", + "x": -1908.1772691635035, + "y": -1343.6849177845643, + "width": 56.55347607289855, + "height": 83.75660570704486, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b28", + "roundness": { + "type": 2 + }, + "seed": 1597086748, + "version": 158, + "versionNonce": 2039820580, + "isDeleted": false, + "boundElements": null, + "updated": 1716540808054, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 56.55347607289855, + 83.75660570704486 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Ipm1nc8P_wdwFs4Kk4SxJ", + "gap": 3.4637825787378915, + "focus": -0.2948178231013436 + }, + "endBinding": { + "elementId": "SVBuKjIqCO-tlOKNG-C68", + "gap": 1, + "focus": -0.16388226272685036 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/excalidraw/data-request-license.png b/excalidraw/data-request-license.png new file mode 100644 index 0000000000000000000000000000000000000000..ae8ad3ea73187e1268dad1bb4c131cb721cdc2db GIT binary patch literal 133149 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

U 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%0AK&SJ@(SytSFge=$#K6CZl@=I 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 literal 0 HcmV?d00001 diff --git a/excalidraw/license-deploy.excalidraw b/excalidraw/license-deploy.excalidraw new file mode 100644 index 0000000..fafb3e2 --- /dev/null +++ b/excalidraw/license-deploy.excalidraw @@ -0,0 +1,1038 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "cRUk1DppgTkCeA2RA6PRp", + "type": "rectangle", + "x": -2640.937974552572, + "y": -1778.1342058168132, + "width": 142.20161897590378, + "height": 118.47232680722891, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1C", + "roundness": { + "type": 3 + }, + "seed": 751864476, + "version": 1154, + "versionNonce": 674119324, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "7szKNMG-Nhftw0f1eGHqt" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + } + ], + "updated": 1716540353619, + "link": null, + "locked": false + }, + { + "id": "7szKNMG-Nhftw0f1eGHqt", + "type": "text", + "x": -2616.71216506462, + "y": -1742.8980424131987, + "width": 93.75, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1D", + "roundness": null, + "seed": 1781238044, + "version": 1112, + "versionNonce": 1705249564, + "isDeleted": false, + "boundElements": null, + "updated": 1716540353619, + "link": null, + "locked": false, + "text": "MultiSig\ncontract", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "cRUk1DppgTkCeA2RA6PRp", + "originalText": "MultiSig\ncontract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "B-GrdFUwex-2uubnmOnI1", + "type": "rectangle", + "x": -2872.0116485293006, + "y": -1569.4815936781677, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1E", + "roundness": { + "type": 3 + }, + "seed": 1777098780, + "version": 1100, + "versionNonce": 2031064604, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "KV2r7mnQ1oRVMpa8RY0mz" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + } + ], + "updated": 1716540407579, + "link": null, + "locked": false + }, + { + "id": "KV2r7mnQ1oRVMpa8RY0mz", + "type": "text", + "x": -2851.317936179903, + "y": -1527.7188865998544, + "width": 93.75, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1F", + "roundness": null, + "seed": 1177855644, + "version": 1068, + "versionNonce": 410034724, + "isDeleted": false, + "boundElements": null, + "updated": 1716540418610, + "link": null, + "locked": false, + "text": "1.Submit", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "B-GrdFUwex-2uubnmOnI1", + "originalText": "1.Submit", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "QsyMGBFykQvoXn8QB29cx", + "type": "rectangle", + "x": -2631.976976450575, + "y": -1571.1582454685708, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1G", + "roundness": { + "type": 3 + }, + "seed": 1644243228, + "version": 1208, + "versionNonce": 930474908, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "2yqrUQj5TdIvsguyhLEB9" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + } + ], + "updated": 1716540353619, + "link": null, + "locked": false + }, + { + "id": "2yqrUQj5TdIvsguyhLEB9", + "type": "text", + "x": -2617.1426391011773, + "y": -1529.3955383902578, + "width": 105.46875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1H", + "roundness": null, + "seed": 416712356, + "version": 1170, + "versionNonce": 1768822812, + "isDeleted": false, + "boundElements": null, + "updated": 1716540353619, + "link": null, + "locked": false, + "text": "2.Confirm", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QsyMGBFykQvoXn8QB29cx", + "originalText": "2.Confirm", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "VkDMdVlXh75qHnoxqn9Sr", + "type": "rectangle", + "x": -2364.895342563131, + "y": -1572.0208955552189, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1I", + "roundness": { + "type": 3 + }, + "seed": 1471567004, + "version": 1289, + "versionNonce": 229954084, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "o7LMIb_ysao606P8pmhLr" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + }, + { + "id": "GLQkggDNgbk2TIg6YER1W", + "type": "arrow" + } + ], + "updated": 1716540439397, + "link": null, + "locked": false + }, + { + "id": "o7LMIb_ysao606P8pmhLr", + "type": "text", + "x": -2350.0610052137336, + "y": -1542.2581884769056, + "width": 105.46875, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1J", + "roundness": null, + "seed": 1694225188, + "version": 1269, + "versionNonce": 513451684, + "isDeleted": false, + "boundElements": null, + "updated": 1716540405931, + "link": null, + "locked": false, + "text": "3.Execute\nCREATE2", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VkDMdVlXh75qHnoxqn9Sr", + "originalText": "3.Execute\nCREATE2", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow", + "x": -2629.1095861707718, + "y": -1658.5400973624478, + "width": 118.70696313763983, + "height": 86.18293892524343, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1K", + "roundness": { + "type": 2 + }, + "seed": 1480202148, + "version": 3054, + "versionNonce": 1332706204, + "isDeleted": false, + "boundElements": null, + "updated": 1716540407579, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -118.70696313763983, + 86.18293892524343 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.1564438070980912, + "gap": 1.1217816471364586 + }, + "endBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": -0.15101080216513707, + "gap": 2.875564759036479 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow", + "x": -2555.9301349750835, + "y": -1655.4245100130502, + "width": 9.720163408487224, + "height": 83.2662645444791, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1L", + "roundness": { + "type": 2 + }, + "seed": 546446372, + "version": 3043, + "versionNonce": 2113004324, + "isDeleted": false, + "boundElements": null, + "updated": 1716540353629, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -9.720163408487224, + 83.2662645444791 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.2732353143020469, + "gap": 4.237368996534087 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.10339000105429291, + "gap": 1.0000000000002274 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow", + "x": -2510.6514025478546, + "y": -1657.5188247720864, + "width": 196.64072925025812, + "height": 80.59111445783151, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1M", + "roundness": { + "type": 2 + }, + "seed": 292839460, + "version": 3062, + "versionNonce": 884581276, + "isDeleted": false, + "boundElements": null, + "updated": 1716540394089, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 196.64072925025812, + 80.59111445783151 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": 0.4199867678063152, + "gap": 2.143054237497836 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.6363234582027597, + "gap": 4.906814759036024 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow", + "x": -2722.720691894543, + "y": -1505.4451767304545, + "width": 78.7136130136987, + "height": 1.9741196808006407, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1O", + "roundness": { + "type": 2 + }, + "seed": 1072145060, + "version": 1025, + "versionNonce": 1736590492, + "isDeleted": false, + "boundElements": null, + "updated": 1716540407579, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 78.7136130136987, + -1.9741196808006407 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": 0.22243400432382487, + "gap": 14.153531935962292 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.14389303943273174, + "gap": 12.03010243026938 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow", + "x": -2477.0122158671456, + "y": -1512.804170872405, + "width": 111.11687330401446, + "height": 4.734326618771547, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1P", + "roundness": { + "type": 2 + }, + "seed": 384820516, + "version": 1020, + "versionNonce": 1315073180, + "isDeleted": false, + "boundElements": null, + "updated": 1716540394089, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 111.11687330401446, + -4.734326618771547 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": 0.14681410442341042, + "gap": 19.827335884634067 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.03887245516636853, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "QaL-uAHwyUTOHVcszS-WE", + "type": "ellipse", + "x": -3103.0014609970176, + "y": -1219.3115991318436, + "width": 221.484375, + "height": 176.64276541095887, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1R", + "roundness": { + "type": 2 + }, + "seed": 1412150812, + "version": 792, + "versionNonce": 2091351588, + "isDeleted": false, + "boundElements": [ + { + "id": "DBi-vgSFCH4fU8G66TG3W", + "type": "arrow" + } + ], + "updated": 1716540376869, + "link": null, + "locked": false + }, + { + "id": "58dH_jCFon-Rj77cgs4fP", + "type": "text", + "x": -3069.5245301795476, + "y": -1162.4327702980065, + "width": 164.0625, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1S", + "roundness": null, + "seed": 205125668, + "version": 713, + "versionNonce": 1087682084, + "isDeleted": false, + "boundElements": null, + "updated": 1716540379969, + "link": null, + "locked": false, + "text": "Deploy Request\nfrom chain-api", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Deploy Request\nfrom chain-api", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Ipm1nc8P_wdwFs4Kk4SxJ", + "type": "rectangle", + "x": -2138.341730744392, + "y": -1351.3319385954624, + "width": 239.38356164383572, + "height": 194.70783390410952, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1U", + "roundness": { + "type": 3 + }, + "seed": 829457180, + "version": 682, + "versionNonce": 836357404, + "isDeleted": false, + "boundElements": [ + { + "id": "GLQkggDNgbk2TIg6YER1W", + "type": "arrow" + } + ], + "updated": 1716540445064, + "link": null, + "locked": false + }, + { + "id": "3uVMFvenRJej4Rbog58rh", + "type": "text", + "x": -2100.4394307755256, + "y": -1273.2813854243184, + "width": 164.0625, + "height": 33.6, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1V", + "roundness": null, + "seed": 481793948, + "version": 589, + "versionNonce": 1076957852, + "isDeleted": false, + "boundElements": null, + "updated": 1716540445064, + "link": null, + "locked": false, + "text": "Amoy Chain", + "fontSize": 28, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Amoy Chain", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "DBi-vgSFCH4fU8G66TG3W", + "type": "arrow", + "x": -2971.997026186573, + "y": -1218.2494227881573, + "width": 111.15112411980317, + "height": 242.28246620085702, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1a", + "roundness": { + "type": 2 + }, + "seed": 700563228, + "version": 973, + "versionNonce": 2106717340, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "OhGFtySddL5qBYKReArNO" + } + ], + "updated": 1716540431921, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 111.15112411980317, + -242.28246620085702 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "QaL-uAHwyUTOHVcszS-WE", + "focus": -0.16764775282576738, + "gap": 1 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "OhGFtySddL5qBYKReArNO", + "type": "text", + "x": -3037.8413860016713, + "y": -1371.5906558885858, + "width": 242.83984375, + "height": 64.39999999999999, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1aV", + "roundness": null, + "seed": 872527652, + "version": 38, + "versionNonce": 933489700, + "isDeleted": false, + "boundElements": null, + "updated": 1716540431223, + "link": null, + "locked": false, + "text": "bytecode of deploy \ntransaction", + "fontSize": 28, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "DBi-vgSFCH4fU8G66TG3W", + "originalText": "bytecode of deploy transaction", + "autoResize": true, + "lineHeight": 1.15 + }, + { + "id": "uws_SLYqSKYqUCCzLYUPP", + "type": "rectangle", + "x": -2996.602813625579, + "y": -2262.6875136710714, + "width": 319.5566152597403, + "height": 330.3520698051948, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1l", + "roundness": { + "type": 3 + }, + "seed": 712963108, + "version": 79, + "versionNonce": 977060004, + "isDeleted": false, + "boundElements": null, + "updated": 1716540109354, + "link": null, + "locked": false + }, + { + "id": "iAKZnlQKv7G1NbGM2kgHk", + "type": "text", + "x": -2904.1058574567473, + "y": -2131.9415315282117, + "width": 131.25, + "height": 67.2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1m", + "roundness": null, + "seed": 1952666404, + "version": 129, + "versionNonce": 2100553372, + "isDeleted": false, + "boundElements": null, + "updated": 1716540122417, + "link": null, + "locked": false, + "text": "License\nContract", + "fontSize": 28, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "License\nContract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "jOL6YxvUCxQ4eels3AS4J", + "type": "text", + "x": -2652.519020839206, + "y": -2257.5637312035374, + "width": 540.767578125, + "height": 162.0783887987006, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1n", + "roundness": null, + "seed": 2012005284, + "version": 671, + "versionNonce": 1641494948, + "isDeleted": false, + "boundElements": null, + "updated": 1716540310727, + "link": null, + "locked": false, + "text": "Deployment requires \nowners address[], shares uint[]\n(shares.length == owners.length)\n\nDeployment goes through multisig contract\nusing CREATE2 OPCODE", + "fontSize": 22.510887333152862, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Deployment requires \nowners address[], shares uint[]\n(shares.length == owners.length)\n\nDeployment goes through multisig contract\nusing CREATE2 OPCODE", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "GLQkggDNgbk2TIg6YER1W", + "type": "arrow", + "x": -2233.439243322775, + "y": -1463.4954813985923, + "width": 102.25710283873514, + "height": 110.7815183635048, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1o", + "roundness": { + "type": 2 + }, + "seed": 821868836, + "version": 385, + "versionNonce": 1973827100, + "isDeleted": false, + "boundElements": null, + "updated": 1716540445064, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 102.25710283873514, + 110.7815183635048 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": -0.11300103944066754, + "gap": 1 + }, + "endBinding": { + "elementId": "Ipm1nc8P_wdwFs4Kk4SxJ", + "focus": -0.10209172686307463, + "gap": 1.3820244396252974 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "teDN596LL4MI7mfDIYXxH", + "type": "text", + "x": -2665.9755814827154, + "y": -1862.8841045801544, + "width": 192.09375, + "height": 41.4, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1p", + "roundness": null, + "seed": 733057316, + "version": 187, + "versionNonce": 1265398172, + "isDeleted": false, + "boundElements": null, + "updated": 1716540495972, + "link": null, + "locked": false, + "text": "Deployment", + "fontSize": 36, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Deployment", + "autoResize": true, + "lineHeight": 1.15 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/excalidraw/license-deploy.png b/excalidraw/license-deploy.png new file mode 100644 index 0000000000000000000000000000000000000000..6befdd0e1c0d58bda99ebb84d8c54086acc5f9e4 GIT binary patch literal 115918 zcmd43XIKtwMlDjd$hB6#_L?MZGIm zu#n*21mqexvrcvT6#NgvM^8omO6e!s?^mucUQtuLV*s=G(S-ehw(FqT{C4<)He{1^ zCf>~Kv1|E4s29;D@r+3AHArdOWB5WS6KiXiJcJ(nN1bwcI2sUex&G^W=J(AV@hyvu zlH~#4N&T-OZ{{Y0#}$PK1Uj%dNHL(q|MdtbRJUTrwWIT06>I z8hTMb+q4}cyl1Ova{6K;JH3_WL1Xf}J!h2RsVD3>#E=)bSN>65r|TZ z2s@Qpt#ewYzO2%VW-NK@LHI3;)VKHM1MhD9hcSMFp^m(BQn|wPWB&4@CaekCRsJDY za6e<}{)4lPwwGhJJhz_gA8d1vmIciSf3>^&eg`gZ(h_>U?$z*4>p!O^1_G{T69dT* zpqMAlhLFy8ipJ@_yh(-ub&|sL`ur)Eo4vUwcwkRS-ehU;RS@gHEI}9f2&*zlXhf+y zlQn@UuEOLQ(Y+A5ylrc=LS!sfeC+f_;Xs!MQ^D1{ud+De@)2n4*1T7oDY4Fy;Id> zIJ<=cc{n@!i?w^CI=S_H|1y`BBA9Set$X6;U)if@gSgPw*1-%4{hHc5Me$Fs4NtlQ zKG~Duc=)4g=p?z%rzAqNHtHrOuQDT9ukTycc&*YXmVaHEKn{H2s-}E(1F;8>k*RyN zi&)`_5{Q%+Tv+Y2aY1Q@*cDtq8L>XjhX&XD`l3-o<9>N@K3i_xApyZAsDeUxfQ>dM zY@hfo^*jkE%nf=+Bl8f(;;Rwz$Ee?4V6h^qk2?D|UUqR9caVk?Dl%%$4B<951s`t8 zy&BiePHc_iE}d{lOrjC{6tdGr>9LGV-duVj>#rld|MV36vM$7f6}vxf*KYXg7|Ii^>XC>7&Epdn17-|AJ~}_xSHv= zl`8QkfQP+647l#p89CX<>y$@vVA3VXai-iHt&GqLO(h6;Up?j>a`Nlu#D!o}I1j@VY?UVTB@{k}n=exAEZ!JBo3!QdVvMrJ5(N>ew%fUkx|YK;AD zhL|RVP8H0lnnJN1)86fH+|8AAOaHLT^MK=L@2>q7vq&{C$J(BQx&xxg>I3uFs|sX5 zn7n3VzU5;#NPIQW zuZv~RLMGBlijH`4sz4lXw&l}?U-yde54|{E(+uek+8Nc?nRPfD(UyGwfb?!b#)|!T zkv_-J*|=pG@BJ`o?8=*k&%f;Kfk{p4%zSorUt8vQ*<&C>kZq&%5c})0m94FG`L(*d zTB6=`_CE`TlNKfk^1hEnPGiq~UmFn~@JKpx7Iya`iP|p^at`N&KKyi^tr(kwV)F@6 zol(!rtLUYJ6z3e~AMPavpY8O}%{f_b3Srd%3-+W-1FOzl7amv;opuwhS$K?pG7hSW8f%G#{-AN5EAa=bJ-j-`;)o(rfrqfl$2jQXA91v$ghp)hCIh z9b1kZ-;}boDc7?7rRI&&hM6qa((gUH!1(nYM6xrNo~>6}EPVz=Jhm6w+}{nfCp~t2 z?iFQf6U#Q!8h&+lqpW4qf7Z{aW;sRUM8Y{ju<2+q{w_@qtxtlfbtL)OR=MaYDw<&` z(Y-LopG(8;aprzx9~iv$A&9iPS5IW7cxz_7p~3KajH}n4c7?Z()`5wti=?!e7~gNh zVK~|sU3=~mbmtJ<=wK_`JnVem<4vZ+?(r{U+x%pWgl+wdT<^Y{?sE<22h((WWMalW zYa?UYyyE2tqEk*RH3w6!4Rvd|4d$|zFcfx=1S0l#TKzzefou0(tT0rO9nl+Hq67k( zB%Dwi%m>{=j9YEn8n|{b#E?4^1?d*+T|{p6-{0)jWu%C%HeP~wK?#^f6Ja6`ElAqvSzFKl>KA4Zj{&zh$Pa)74R^>E>#rO`g$qw zB7vbxPtOnMXTiUD<%gBs#JC;X22=P%G|0YB6D-Y*AVGQL2CnYd=*}EWI_5cPLR?ta zbZqn2tg<$i#?3Z{Yyj z3<~OG20Jsz+yjYpz~1n8!I2gIs1ccEohISI0PF+bo{UWnm=CErG-xNzBhJ?(ZmYso za1*p%evHo-BNZhdp0Ke^)v#H=@es1u$6fZrf7)HllAcIpZxqjwEnZG^qohjW#3icy z5ahX|Q1@C?)Wr&{{bVUg@>4wb1bepI7j{@=21mc58Pf#xVTiI z^@0y^_Y}Qe%MJEu=t|Nx=IX4TpsO5~$3GV61KDx<5b8zt`8$}ry~b_3jwJ$aM*=}2 z)*i7PsE*0kO-#D&ngUl zmLdDk4yTrLf6mlZ*_snF$TUujewY58!@}9wz?!VaQEFVXB0csv^&Jy%$PX-57Ix}m zWnG_Ru+(wwejTr7KR8&tI;WvR=l67Itt*Ol$+utNdE%frGlW_B$bu8Ww7q~LUFCjd z(cV>V?myX;NGo1RP|AaO!zLS72&QLZS+xCYL?@uQwEkV0PX~}H(i^}+a$W{( zC69pp+~1m?Z!u71tlB6ZWNJ=YdhF4F{etpO(Q!WsEF@{!dXYvS7oNJPf~o==l2OA$ z&#n+nNX`LuqQZ2>62i|HE-S{SFm6qz#*hR~^U$JX_+UOPZ0inr6h#!~4JO#mL!ErN zNJ=t!bte<7N DB0lZaTc)AMD=hq6?LQ$69mEI3a>STBAEpA=a$X6=nE4yGb<;ec zUD*%{A7~fSVq_U5dh&raoQFtK!Uoes$}IIz-b=8TrG*}IG8~8gTND8eg4Q8=q52b*BaUftx=z!qQoT@_#UDHPy=r@WGACArUxdx6bYW3u47ug+Y^1;X29+K78BC zYHv{NkY6NDPWe-{O`+>5s&&t&pSR}M5<1mP=McICj#H~K7GJ~Z*4Y$n{MLSz3P!gI z`B<_uBzxKTnOx)&A7ndJKlpai>*#q-+CI_)cSNzfh% zCmSMJb(Um;Mat{`f;#v6W$B(TRN|G$crrXYn2T4Xt&`g?=yQRT%T!mc4?LKexcAjC zO{n4=mn!^KA6~RxB|5T%ej{FY$aWVEQ)g5D#2uVBzX!1kocNrEYqx{AH|MGtUNY*~ zAVsVCQs*{Pnt?2;4B}`4Jc&VD{R=~BOCwX-*9EKdtcSb3=O`jtYG`h*^A<;7z?(Wp zzr;V!v4rlWj(naLMNjcKv=_vKLNe?5qg{l^G1f=VLy-Pp+$Ob5*2!>{C<|j)G2Ft~ z%Ya2WVVfU#eLF%@JNd(N!+Z10@jN84F4j(VUq<19-Ktg$QO|iBepDuPToowo;O6^4 zsw4H8W2}eNv1(9s?^1Rb$#TxNQ{F6vX+rP+!8}PWYGI-&IDnrP6)s}k4u4nT)Zg@s z>>Bk00V15S{J^11M;qe@H^X^uei(0LS(*#qxmblF-*quL?{04|>teuF_9|b6c()t6 zHWydM7!>_^GA>Yt=vlku#y@@061b`^O^yM5dmSV4nNid$mm;2U8{mbvV+g4h`wpfb zY&EsD>(d23*mz%a!10Z|N|$kIRFPykT3IhdvR6nm_rW+k*UW3E4Ax-%NkIGg2mRZ1 zd{Xa)H2oj=@l=oM$*9RjF~+ni>s`KC#SA5ft(t+%4MkI{z^5)QsYa4 zR?^~?84lOwd4!Yk?_h2{XHtl|-A)bdsQ3N8=mR?k18PnJj~Z}s;4{V2PHkb%{!lm9 z?r=wOX=fM03M*uaL1g3%t9a*FTT`(ycO9?gZKZaw_?lFPC^Bo$)5?ZE%)XHeTZ}z- zj#-8=Kll2qM7h7k5g7tz=Pft4WZzR3L}WC!=P>3E6yeAX$LF7YJ_PpF&lEoQRu8ke z`4I%PgmxDEI5&9nyXDd&cv;JZM8#AIEvS2_88+i;$lS}>qlp+ciSD(I47KwwVVc04 zuAODkk(i6^*I~b2RG4(4MJORfDA*n$?$ipJDVe?fuW?s@dQV`v z3ypzAaxys9Z*yjHzREhO{}C6yvbpSIs4}N9kLm?TKzfaXH>! z^%W;W;t{0Jm_qQa-;S}SYA*WtLS@X5?IWBD;TxcG^u_0^wX&(G?JGX!ZF}=+}3AeCQ!;YiNfaaz-*+Vml<>mXi5%%^f*}yyU%b#{KZzevopA6U-8#D(w z96NrZw@{688ATiyvLgZgNIbL%o><<+_*z-(eAwkIZ_}?YpZh;v5K8~jWw6QaMhf3^ zB@8(|;0@aPyaoHzc+2*)$e;8(i0&zU2K3i0vgGb@1v;_Gw+%@=(}2}Qa-5^c{Xq#=107lX8Hsak+u}=aawDh| zYl4YbrBbYrv6--fWLbi(H@X9po*e|U{4HlBBF`e}BKhjSG4n4kt9{W4^ln6<$b+!& zJKiSP0rg409}e6)PL2FJox~`UGDT$x?b|}fp5K!eu@I$3hk;<_feoBlQn{*31WO(N?`?J&$35+mJA)v2~W|7iuR7 z=t@ly=QLkloWAV59ZTxv{_ET4<_FH#nQ)0{uj`1z+g(g<`ag3UpZL6L8Fs!Bdh(s) zas-n0?5gV(TZ;;LwG($YSjpWezu31?Q03l@rS8N%R~GsyQzAZRanE(GjjZ7K&?j_~ zWAhrQ5Thp-#ed+O@O6-{?}c=WxZWwO`+B{a8brSnBWBQn$gtg8ZV?XMb+Z1ffVZj< zF`Te(#--dO4NC>=u5OqGSe4zIO+g%gAqn5X`m8bZ4pnxGKTd28*0H}i+kiSPCPZT~ za%||O4NK|k=MpSx6UHU1PVv=@4!@sMU!$iZnV!?qTRAgjJquC!Uh^9eqAvVxP*C4c z+`oz^?2_L*stbx9JuuER>SugzcQ6xq5XpJ#wM$8^D$=3ej`-Rd8U$dW)6gos_6OO} zh5!CGJ!l)9gha?d_-SJK%BiuN)z?Ns5JulY-TaGXeZHloVKvK@+QAoH?Ma^h8VL!5 z6g&j@!z?IjH_%N<)c02sdReWp9J$}5uPhZBr|}hW|AqRzs6*pDrN>-Trnq*zw=${Y zz>~6rB|-@GrHfbj5!Mc=)~#e6!XcekRBC6vlHF~Xv=nl?VJ3S}#z`4eCBRCIUY@LG z%j_Hf2KN}Rf~0Z7O5~(~((+-2sY_9T8Nl7no@k=~DuD<7NN4{>MEkFP{tvS9mJpo& zin^bEpAGR9yMY?4NKRM45U8z4MzR0(Nhcd{It#YDXr3-N_Lq0sF$3=;e5mV8_&Z0CDd^(RcF*$oe;Wk+@g^=J*md~D9qh6>yHu@*p(0hbN#fn^=UDN+h-LgPtpLbs>Vt9~NwxQW?jJsO;NACL1vJLmqi;Zpo@YHn~>~*t8ZG!aS18?=njkGzQLd{53(=I`AKiQ+d*Nx@lY~Yzhh`k~Fir$P z89B2rc&$PfX{8k61yAPl`5AODSlG@W`=-vZ`*{PZ4Y`vdPVP0r`*d>zXiSJg+W%IOi zVa`mNsmFKAX`6W7v(>DV-UeZpQO>R+6 zOQ~OM(JfQMN}A~m%M+g`(Ayqc+a-Uvf7Jf5K%K>6MyXZ=*Cba$bHjm zr7U&=GGeH`);`azvbxo*3&fR%Fq3FB+BcMLf3IKU>57_0sm$(}wE&)uf>L8WKq=@B z*8t8-9EtMgbqy$MI&c{$JKh91PfaIZt6eNx+BQ=wC|>KQ{l?8-1uymUxA=m(%ny(e zHU?>D;oK$Vk1wUA%u@p6Xol=Nhll%`_{nTC?b*KH|36V|=%ImW@(iOm2%L&SVEe!*tQw?-Q#;fx`)v_Byedcz9I?8=D-z5ya^= zalh0L`EVXHVI~!l!_-#UTO=(kQ>-^OASm&Hf=H*p&APRZb!Q+f`~YJGjRZu{uRS%1@U(3oCIZ+|qOZhEAf`|oU_dcjD<0tFo>?bH2W zM08%A(2J&8V}%gV+LWH6xy9}!{IsZs|NAghWC-2zO6Lfk7f!{X;+wF`(|M21 z80bY7y26U46XKIH5;*DWCe|Tp{0x@Y+m{lHd9luDD&g>9$F@h{ug@wWxs1k)%wO1P zrcoWy>C$Qtb2uX!lP?8Oh{e(4h#PYO`HotgdW`CfaHw{SZtS)l1)g30iwL>M-vA^m zEt)>aiS>4rg;(GtDiMy1`z$+#pR1Y>U)M%#fAZ@)>AoN68~55dq8tb40%lNa9gXC? zqv;Q|9AFHB{0=2JQeBWq+rie<5e_J2cOuQWLoP`905j?D;3Gp`@c}_0E=3HrHdbK2 z?jsxRN?X9dQ zE9zvYhoOe_W?)`0+vbkZCa3^-hT`;YphJupER^_tA}$J;CW&&z=u=TFzeB8jbqroU zymu}9@nBix&kRqcBj)_jkG&oEF@wB|k%7iciqLm~V3|KfF!GQg7jr2_?;vR@;uIh} zl;*z4VL1}e{sH3pO@Q-Xa$C??Q&E*g=DI@!Vqj@`T-Uu6RXZT0)rcXm;IR5!lz2NP zl^aS;2y~VR_>x&;+{F^U(>7(x$MgCY88SmdN=pEa2N$Rs?&rAac8j~glfb=kr`x@~ z7P7`NdL3N?y^>PT4;Tbbx%Fd?zZ;srTE9{HHnYLuZ!N%HI^30;;M6LGKAIQ0QnDvJK#1Pt4sh}7bHuAJXxc=qp0V+n1VVyz6zS4_gsw?lC4 z3LNydK<(hm3aY95P9ND2)x&l!oS?ueLU(G3?`$ZUhmB?E;5>U{mDeVYrr0xBk2|6W z_L$_^?G|}|4J!~GOF-I~$q?HbaFT>dc!PDmTog>n`1y@FXIQBfTq5NggMwR?KrhIj z<+HWConP9eJMaN@G0f5~9iPdzNJwh#BTZw7b-Qs?=JIT>a&igxaWr*)4#gXaGBVT} zh_*w1AL*aAYPsGZ{#;p|;FvdjVsYqgEUBWL-N_}pgzzQhsZFjr>;%d`tln<&q&MbY zey847+-;V;7wb7y8<}5@3QizpO737u!5X~xmxCUi>;7OhkU#LB3tU5X2!Fp86OHAg z#mU9?e!4vOep!Brn3ptGpc7~B3-g{N&k;aZX?Jy?!OEsJ;)GB^@A9+gW^a3q!x zA`n+&=A=+5n48^{$ne~Kjm#uWwH7jw9z>~=+5^%PG8;i?Jc z!ktR^C{}o)fLJLmwoqyHwy@MbGLPaulUIl65=!l*b=?Qhg87fhPDudl7r*j`h>O9~ z2%b=At~V{C+|dSL-^gQytc@M?x?(7$B#G$O(plOAP`9@qlw z8r4f`+@*@`Ilw0*D{KMUf-`7n)Q8|%eWpSU0CCS%UhGlh7nP5hgFASPR`4k{fXSzdsDFh0HB>-5Z9}~%%>h&t>D?A z+!iow>Fsw|f0;P&N`(kqmn}%z9uBXSbEu0X{stKWfh7CNL1C*wpfjahy_1(GRLGht z&4dfbggTr@O7V*Ir`>FOYf=lE(q~5)S0mT2=P~T0lHb%XB}Ry-$sQ6NVs$?(Fs}*B zG^vySu?w-Ijk{CY{MxfcfZ-k+R;9ABLgYkhz#vvLthr;mH9QF4?%~~vxuA_>Yj_=P z{QDyBEqq+NmAMKoAiUD$1s?NG>0|f4ON6oQf{QjVk2U1mu~A+Tgmign5RNlZ>$UXI zX$h!3zDbf((rOwgl(&t;7F{u>TxO^uA|}v3+nc`FF;~z=vKF1&fUtrp;mPxD7*Y~ z_tMhoR?8vgN<|O-hR#K&RRCy|j`S}fEsA6;JcMW!Nh5J@8)iIDWegF=2U^Q~IZ=?R zP9@5JYd^fYZ+HLQvS_~o9*@GlnC<2v}(U(Prki^;GZu<2hs{V zBv2-AYrmdH*Oh3gKVz{oiG$VH1q}zfw~M^9r0Jv%zb6b< z3<4Fop_UU(++02g-fTmF&W|hdoqP>HzBt%+sYRv<#~q5z`s!PX&M0>Op1-%LiK6rd zJIlw`j=={%ZsgcFF};d(in7i_i3nH`P*mN@x9RF*S!JX^97*+V(+a0GJ_tljbk4z+ z5`T)$m?=!SrpR>%$9U|dZkL$D%KNW!*S>6E=z-M(1c=BJIuzVIIu89%~0ggZJwk$4qVUc^yx97ZV<)I?hN zTkThEE%ZzmkQzCjI~FbG{<6RjIM>C<#_ z$r(NaPN;PU?Swj{Oo=dZrV`>LqvA$26J>2G`VhO0xO8GB(`V}(by37G-)2knB++d| zChETK{W5MdUYW1#i`!8Q*|F5e< zZp$+<7Fo0#cWeuL=Rwso>>w$StgeJ%E5+gAj!He(=%C&5{^{mH4)L$V47gj>em$4a z=f_3M67N>2`})JZOIju!vIpnGK5Exp0tWJdr3u5#o)muu&1UftCEaMwesgPoHA0ME zejU)z*){!Kzae*WbkY3s_J&cWXw1HCSsJKe)-});+BMo>9`3`c#KY)n*B^n{!Hkmi z`M+*>WF5TOh&IgG@rT+OoFzlS9ugsypnPNx_@A{AYzfQ>V8za6LF$izc47p#v| zNH|K_Z_K%(K?fS5w_OybJQ8gp77l23=Srk}lp{^_O{??M!$YR`LQp3~Op`7AMrP>O zlpg@YdF#aK#j>lH2YTbIXwV3+W){Dc1`DJTyIuzXP?4Hor~^m?w8jtvm)QFdfV3yM zIY5q-)Nu{K(tnW()##SWzod97MKs2+tGEx{R%blQ4I_{eU(W*TtPAFHXypjQkoX!c zS_<h#r+w&1YtN@ zBZo#)=^R_B0sAcXTcA8VlG^M;g8WkT1sxFYl>p}8zE-7?&gU`fH}0pwQvu%?d!Ky@ zTVR_$h2rMNCqjh4nK*HEfKqETPwD(E!f^}T>;^@`)o;Mg^w6{2b zI}D0H_!$In_5U+Zm?jQ(b@)7hDcnpD{^Y5zC1PmMBRnLvq|0xqy1_;e|$ObI9o%YKg<2`a05ISEoS7I7AoxqhfRVL5r4Q^dD+k9gR|}W%-o= ze2WfM>Q836avHbx3{MkfF!xfn%Aw|-mv7l6yTib+$oL^A=%US1ZFxFRxc zrhhMlu4o(FcgrEeI?7*R4&bOWhx1|cqns3$552@d8PMRh)LqxZ5H^#@AltkE`w*2C z^e+439z-0#-JuN^dj%Ml^tY-8B{oVt(D;S|3;<0tpl~qoy`63mRAlPi%SMN3L{Vn5 z>C>1DU`jtU@H5{H`lSUxn=pvEjJ|bHe%lOuI}a)iF(!i7FBNI4#cs5|zAm zzs#cPVW?0hI%Y=E4ATANQg2C6NnSVpinb09u+G=Ktn3HPlY`QSGZ!EFfUnG;@$F3N zF5xTu92e(6bUDRl#m9)D@OX`kI1~Tb5HYZ|wDw z)uFydlB(6R4=y!qWpw@cJ=<)6i`vzSm{L#qM01wii%E@9SVWxmK1o9SxV)q-t|6vXII(Mk z4idjNB%3v~!lDKUSud4vx`j8_i_83BIQl&R!~bE7W8UDu?`H*xJ@^sz;LJ`OT6#V9X0h)|y@?O=bjt+p!*GksWt6&<4l67qY z8ZIfMfatr3YXn@Aj5OasSy=nc55f!Bz`7Q8GNkG?_m>*R7&N!q-M6=eI^yx~vh~*H zDt?Z^bjWvn+|-?sqK!&;FhHzC%#U{ihpJP@w!bf*b%KP_jvR?(tLdh8C0nim6rZ9` zr;-~i0H{#Iq-Q`)KUvDd-1WX@j=CvnoY1;XjpICd{F5Rjyb^Gn{g+9`ncb=gpkN?g%6=nZiceox(|n{1k|Ve2 zo`9xtS({)3Nk`g!mzx2A#Xl|eE_18?dhcg_4l8Hmp}R4tGGw+bB4e^d5ApdM%PEUT zjL+~%O^HV1<+A;yS*z`b*x_S9tSPD$;QL$6W`Nca#95Vuv4Ltp7H2&iglPymO!*Ey zQzsh&9)!8r3wA6m0O@KXUt7nOEiO23qc(fqLvNJ{nrs(sj!uB<%ug=Q0(pvzZ`@#V z&g<^gZ4g(n>#HH6i7-yo_m4nDTW6nU(#>1D@c4pS)CI<8LdBY^4pRqJyV+fB5vflO zSV85_vP-<^rZtt1`Okv;-OhKwMK2Few?qzIb1<-kIYJy7t z-hF4b0KncVJzq#%!(UhSfZZ+UE<447Beazsf_JgmB)|h ztUp48Af68F2&VM`nbRK^_MJkccT`E}53Q^TH8uMhqILxw2bow6rnc8@awbEPYeKP< zN$J%}K1p{>^}HHrOl*I>0cnX5@jtPmnu;^_Mza~osg4-*!Dt!rRu(R^zvZ@MeiD$Q zYTtSQ$%t`v2;5}bblvpZwC{Wl7RTZFrJ7m)>_f&CPrNbqsBdv=)c!yQrquoeXrq2K zy{^^4o%}d#wf@c^sh9`I{Rs2rx{tPxmhka&ogbpCeEQD_7-VLI7bc^6UJODXGv?No zSdKjkjLDSi-ooc8f7CM9IPF$iH?FYsbOw~R%t1HJh#;m?WhO+h$gH>2mPCimm>15DO7*zeXJHxCnDu6E67?aVV$d@pj4M*g{GHe_D zM61Tl19HN|XG$nG>^VIc<)8tspbs3xi}Ks0Ui<_K zsMUEwCH85jC`)-JLStiw@v39Vi=(BG$?Ya7T6MybPHZ5E(mr!2G!G_Gu1K8vv&Cy4vky}H}=q4Zh{x7t4AF~Ks*fr#mLXQMch zt0Jl|CqC#IQKX3?p0?qwHeRz-$ml@T`><8aofvT&KB#UH{uY-adA|bH+(BsgG#XSCieLUO4vk|8JTqL|{<-V@J}=X%G!RibBZMB+sz zMPlBli(CwB-+t6q^%il6K_igTQiY*l{7Ry3Qc?-j#fPwzTu7sWPt)FA}8cvlCbP{6(IXq`U;|O=;YZQ_F8F^qj{tZ;A?Lx z-o2J{kax}6*L7kBb(($bJ3UY;lYyG8;L+&ybf8{}GSOoImVS2!tS};PFD!HNDKYX* zfrOlQ@&y|r$udR-<1udj9h5RJfNa%mY#FFy=X)K&K0hYyie$Ww(?$2FIkE$ws%NXF zEQ`>U$Dd|p<@PwBr}5rp%d}t7C2@?rL6o2EafEzXtuCX&ZGycv zC?2kBf>-K<^sgUki&7vZDAOFPC&$PSTl_5T2|r13L)6FXQVbaqCT;&bahNa z?_6K<#GAs)%ZD*nh!R`Y^5Z76oqZu(m-B2py^imr9f_)JbhOSslO;p$&S{L20M$iTbN5H$5Oj&_m)lBHBfXuP zJNbR0$O*1ap`Y(Y{6Go(486zni{ges9#*A9xKR~2<%jMv>-FV!-9fHb{h{^v$E_$1 z{QMNuP1k$q4QvO;aG)X+yVN@)(~vTj=l&4eF~Xzy?MXToMQ)afI-_msP^@zo&&&Wt z1K-WAI~0V@wG<8P@8y(b-VL9=HqLQ#6VE3Gv|FuQGN^6E@C3=?+gVZoi9X=PV9b84gM2H(BKM z={!%TcKf@g-$lu#jo!N#uBmp?Z=Q(8eG%y(2R1HKmpsR+yp~Purvh372Xt#dxev-J zx}4p#?rE+fF}K!Cj&{<)>2(0aC#0wVs8^op(a0#|l-V~PiMzHy1ddGJ2TFCa zNUEUO1tlZo27H*A#E7y|kG3yIO}pB*F5R6p+(|@C;%Ga zp{Y9v79O4tdYC2|g+-&VT>$Jg_I_9ND0HF9e@ttG7;l%djbWLg$?OPV~zI`cP{rw=cA9^4CvBE+X#jl}(`yHDhhdspKb6qDcN%8&C@ zBAJr~f~TAdl@>j}><8Xnh9Y^ytf=&84hl2my2I&UFRTl?J46D<6iBks`{fu~A5n5g zYkFop`oEWSI*BXEHn#P>?Af(In z3-YBEud7Lea@Zn`nJJPL2=Vv0*!Bg7sJXhTZp;%kUELW~wEN(>s(U*LpNQR#q+8R8 zd4(9cP0JESo15j8%=Uy)?^BaOshq>!jUZ7Hi$);CA%E_o2sBBOov$XcGTc8-&VUko zg}-g%X{t3oSf2sF-OdGMHIDO%+rAp1L<-MSy%CWcY=hrZ(e}yP-onE9V4U0T(8%!B z5hSQpH0pD_%2UyUrk|Kau7h&}z?<@P3 zU0ec;*q!X)hP=Elqara8+4Z&s*~{Z6I!B2$Lz=>a%Uy5*SyOt#omgDyx7+Ke7ZEm5 z0oSt)5_WdOR>KqdqOY|gOH6A#Hi5|Nu!Y&84e}X2V+})91g`2vK9M=$xBIyD`WUDC-(dY%hgX_n=qBp{z@(TI#XtSTL?&{8b47?KfR}@fVB;+n9Yo zXZtMsp-{Il^+MJ!Nxb~T#LKZ9~1 zg+~gSc39=Pa3Y0yV})2@sW74YG#%Vr3w`rF08gAK=nd?aMweSO9>YFaE%Ptq-}nP~ zq=4Lc|4XTjDF8emMuup>;}$4-sxxzk;}a;Lu3!h%sw&dW0@~PovR*7HbtUC`vICIO z%Cub1=C0cQ&|!l+wj)$L~b~3m{;0k#jPRv8Iw1nrbH=|Wz12tLq%M6T} zEj(crjE!Ag(Y05eMJqJwr0Mf$2zf~FI+fbjH#TC3TZ%7@qSSXxZjNV&zl6B zy}GSyfvr9%r_qj+Xvh!99S8j1)|PEAF7`+{b;MH@zAtFpz#zJ_TBq`aKG~6>5jK_t zcKjWPJ-H8FQ}AsV_+>Tnmj?# z=*bP?Zm{$D<7~H7fa8S`;sknkB7?-m9=B86?9t#X;5N@(z3#l2@yFd^F^l)SBY(bK zkGjk^e0()quiZcaDx@`UEq{5t0C8qtK+@8IcQ;bNAVV-$J{tPkS@t`1W6<^)OFFqL zM%zHUHPngN4FASC%dNC>{@ePwSD{?eWr00oZ&wzgAPSt!Gc=#S%xDCjxVutgAak*$ zqL0)XJUIJ9G;6&mSYDGS6Y@)MHrYf67&m=gwAu%|T{|!67Xwu%ZvLFaV1rN00hO6j zG!h0Y)g!{B@Y{ZPvq#=~di_qLg6`#Vs!m_geS35T&WNVA>dHkdn11hPSx*L4xI4Q4 zC2(|&gl{Zgwl_R37nfp&q(6<7qri-@huc-;3dm1V8@Bce@qzar49Z_2djIp|^rwLI z5%uHBS7T9}VL*6z?69M#$jb3Ss+iGaBeWQ7@C+YA6B8NQ9a+6uH3c@8JGuXsID`Uq%>PgzaE|l4Fn}8Ln?<9E z5QFF|g@@2)L*#8;6u=J-Q1^wvX!}TE0K>(p>Y zV4XrnfUb2Xu!mJU;6>Mqd_YhXAS0|edTYcJ_=0z7p^iU^1OqiFq@s&dcS=!d{wT$1@hvExqFdW`WF0}9e z&HMo3B0&@T4*~H%KW%=8M+#&Q{}&)oc39B+@xznQuZvL0uur`E7uE9T+5_yGBgqO&w~+- zyT^|KgGVe2f^h3C*s8 zy35BxgbU2|7vKQT9A5vu=jCr3#gQU#KyOa`Py2w4FD&}NKmK`yQ~h={*8kPfzz0^T z(a*g1?k)gao}xRgTP)`P@$MYm=Z~a7Nf?RtiGQZ+|3ACUe=`d(%KN%&=x1(pF#zsc z05S&mpsLZorvgI8!AMj|VZ!vEW$>H7=+VD@A5-wR^Qrx>W&s~)64@RKyBOIAZ=|6% z2K$R>WkEUv3n2tdv>)7LjOsV=@^>`6s0RUa&%9Zr$Q;u|OQ0AET;du!QQzTEo<(mH z{huS89UX(Q?8Ul9AO>1lT_9j|b>O-B6ScAbbxk>}3l-ql_&nIadjw*s!7H8QJir5Z zztX?+j|-x&49rx8Hq$3F7glh&N%ZADX|nw*ROPUyNPsiqmq7lv%Y|Q}w+&%x+yOV& zd>I9@1|l2y`y~U|U#Yd0Bzpl9`>aS>ZG8;brCPAtQ&P;5oGe_Kxg4mS>iot`dIDni z0VUfarg!KvmVR%k957G~;58TZbS)R>rw!H}QHIYp7UTIhlcW!f#X`?u0bmblJrGqJ zy>CLlJVY>nNapATn!kBBmc;evojpjjDP%kd3;`#mpcO3vwy){hVpdZi`Dzz1(ffpy zU!kQ%G~(W`Pr)9JS+H^9-q%4x!4H4GEMVGv7i{>c2fFHt?y4`1ga1QEUj3Vn9Bqtn zew?c#)XVAtH2&Mtfcy!Vje)Yn9RvZK(y!s?$Ltmdz&{57#fd9vLglWxn+PGqV8C$( zFuYiY1HwaO*cpBVUEGp@Nt&g0EkRj^0-9we(=pfN7}w_$Z+RAWmpZR0Hn}>e!t5Dcl6E|pz`!1K~`#YRQB_2 z5Z|d#Ad()9&#hdCW&kn4IXkog6-6@xUL0ikq2eBC)NYEq2w}`MAOg?p`COopt~#p2 zg0MGN@LC1D&!2bp^uzqnyBPut3!Liy-r-~!QQiPV8h*w^$PbUeqcwuPXbtF>N3i@q zcNR%c?lQT4+f&vmH*&rDO6j5@NEIA`NND#?c1Vm9m$vH|;vVwqsfQl#} z8I>FaVb<{mt$FYLW~QcUX8tvGZ{1r3&F*vdUVG*5TY5J>dR8A9JblEN8}AHq1C$>W zzKbEKup89=2=4|2H70oP05>s{9k8V@zTPY1*N-F9ojK{_G49&+mX_5l704eR5>&)g z4n#3m#GveaeRNzOy$#E0EHk{@29TWDl7_`o@p*K3jBMAjyxi*PpG^XHt+t`YHFqy9 zX$F0`BTqE>6De`~1gNw;puG=4v(%4*ksaoHAlu6Kb7+1h%ckKaod%TLb$z@|VBru( zxp(t5uC#tjxq9h#V-J*3&uznhxZP|Nl=}o*w<{bvc}DBq=d{d%09EWQRigAe8Z@$p zb!PY8T6ehg!9;RfiT{4rMzRgNz4*dAB8w3h$;mj|cK|DRCZ&Cezz)IiIZEhO(?V74 z@7|Iu*+(eLYb5TyWQ@Y?to|!69OqXXC!pEe7@9>Mjjk#xT=$#1cjLX0TI4ZFJLOoW zndC%v@6RDl(6hPyup6oDv-!?*u*d0KuguoQSgf}|m8C&jN56yg0>k88r2YLD=Y&IW zY4Z;|@edA_yZ)MC9G$VRy8-7jhtzqtf$XM^D^8+yZYPAuN7t!&*IK2*ZW&01JWc&q z!&@TCe-%(6gXT~x*VF2hs6^+AlpsslC(eGYN(RoEw+~$tZRVkH7W;nweRbg>s{+A8 zb_VlEVsEid=m4pD$(6Fbg?Sv~a_yj_+w2AuNp}vpN?P-wPxWg-*HCz)U-apQ>%(2Y zP`qD1jFzSz%Y;1h&ma2McdZ_l3)NN;MIQ@=YvnZG=H)0IHk!&D<<&2}y%X!*o%uum zLr&r+fyQ`wGt|*9T!uim!9^D)L4AaEg8rC^DYQg9vO_qG*cZK^m0D$YHhl?7$b&*H zIpt#M+~4#K>BkGl@yDlg5;IqzNpwY^Jo^Ya6HU`=VDRcsCq6!tO~SwA+ug>|Z!mL^ z1!c2exuy{#_lpRXQv)Et2U!6HcW|ry$9^Cb(CS`<678LMH7UCbA>+guMdl*P*<()Q zDq?ZROp2xjw4L=asC0= zo)wQmtrF2S|2Hbw59#(Xk~1y@BMU(EGFlR?|1H`;I{umG((EOG2#E#EeCJt8^BenS zs+awDE9sl+t?faR&)@0#-x9HTKZk9#A#}c1wT#Lghtg1h^yIqeLF0754}?F;$+A@kDgx*A-uth==F;T3tqa)KamdHe zHqkl-zk7UH#t9)AITyhH63Q7OeG-p8eSSa7W5WKBcEZ&f9=i4e)c^KNBWYIK7jrIm zAKA;xbXw!Cr6oCQm5g>`g7yz=i;z&ytGHOUB|Hm@mbW^F)e0L>(f&a$6S2+yQ{BR~ z|Ana4)Tj#z$3ndVjN>OqV0=2@7i-NaH&bp`7bak9e^oc|Dlf6d!JR=My8Bwua??O` z$-vH77CqJIpdbfUGM0lSiR%?#qd=W0U%js$y}YjXHNw`L#8F0FzMU4w@*Q|w+RvGG z>@k}@nUrH34}xpvqD2s|dFgaJid|GF<5dW5L z5%*Fg*YOpmj{fXSy3bd@%=!U2z#}*P@5tfq;w_B3_dANnw7a%?Ow-96`os%lqJxrS z6j+iJhxnFjAhHt}%oRGwTdy@nK(_4Q*(|m-JuFtm6!QGS-40k1FkQra@LekYh)cxs z`D6vIIhSI#Ft%J!jOC7z+wJYX*0VVMZ0jV`ADl?-W1N#tx9q!ZL&*3Uq;_!P6PbzLgn6MY9Nbw>6m|JM7u$i#so|G17HT#Cn%XqEoKAclP#bs1nQ;p7 zU85QuS)77b8)h)C+D?xrXtH1UygEBMfG1Wac0%4b0%$RIxfac4^E(e$@un<027rmc z@B3=nXz#N=F^jV2%mn4Q0!Q1WfXbxp>Ldi2aTAZ6p||Tcz0b-<>x#0d0AV1vD3xpX z;uiwxM$Q$wcE64vXnIKjAY=H>7{;+SaBgJv7vARhNaro~zu-eo*uZ-+4p`XtesXz?}eto z5sSu125!(wQwIS6Dct`)Y%x-4)6eroGF~v{hV+-o1e+3djKzT@`5ha=ZQ*{QY~4t1 zZ!I%#amrRGp^er4r4|gmm&>;Vv3wUDASPaoxfYP&D!`#EVlwg$k|Ey|a`m~qgEA;b zY;IAkFl{sSr_19pn$*r3qbz>31@!6p9LXFoCJu>l(GRoqW1G@`>CSLE@|;*{j<`qm z-b0;!i)=OQw0@A-eeaeRDRTtt?IJhr1^4!P4}B(Hg!+8>&fFrRVZ9$fCf!$2F}>R- z)%LWf-Dg(xTW+rn{=Mw1Ion)e&dZD-NT=G$OR6FJ!W(!7$RRJ=;KiOupiHu!&~bQ7 zsW(Qm8cM0k5TSwgl|xzWH@V=mY)f#2-9~ee2{1MGPo?Q#NW}xg-j)&9kh8VomM zw;%;%yCak#E$1Aj(8Oqs-eqY58d7R9LgBD{B!9h@E>g<6zKCi9S}Rgtz&5xkwZk2iETd}vm(wS5N0VMScB6Mhx1TJofGIe+BMKYh7l^^nvlgt)kN@3$+yNRs> zyjWX4qAPW{%2o13sMm@-jb=%1?;g{3x4LxKp;i36Z%j6!ql_DyM-1$hT3LXQgzcJt zv~!MC&I%QYWej;Kiu$<2qa<*i&FG!Fr*fR!dxdV%=ato!J-2^L*DWt6dJ>z8<`_W( zF0C_U^xd^vxAWT0+<-!rPrM`o6_0jn?@(y*{?r;Z#mQ@);lslThcjXOR>D)Du#R$q zezNn<t%i7hlvGAtHo7|Y@M1AiuFv)^^VuAb@BrDUGN=p z)XeJJj-Ktk6&Y3^)Ve)HV#!-vmGp}i?Tt5^s7c$i*o#=@3XApATr}ZWGjFEw2`g`5 z{fA#J>vi+~z29tpX5A-pO1|)r7QY7-z{tW9%<;+*C4yhxx;1OE zX%J&il$kHZ2|gA~+yQHzm5!4|&gD~udU4V3m2tkx1xY;p{bt!P<@4>=SY|IyRbR&N z9!H@~)ceHAH20v})lr0Iy@FZF<9doAPrPi}4QU!bnUtx^c9&YWk0<=Aw9t!U57r?*7PTSwsN1}#Ns~m)$r{Q=I<{#yydOe_RBCgOvE=H6C5oUSKR%}4j zah#)x$)geMeB(IWjIB?nwj{ zE(+ZS(3VOc4a?vsHZb)HLe5 zg+zkiX;JDpfN;L%+13{VaF;BJ^qKXNTju?@uCP?}>gN(x$g{M{oH38g-K2;&98vH- zRnpWILKT*I01*%&CBWlQ?`GPE>#jS}>RiE8wy3#&|7^a*)gPd_H0SEgo>cfo{v~NF z?*b-#=Y^0f!g^@*Y9X_|4KfYvSp5Bo@d+xO;*V95qJbyI(gtT!tup z%{Uxr*P164>K)sG2QBSJ!9eZd7xfp^Plso@dyA=OuT~tt#$59_OVaEco7m5=oP=vk zuHiuf5UX83K0^xtTwWUmy4kNJZM3|eY8W<7PIK=Yu}o(QF204Pe!+e{=#6j98D$<# zbYLcJVkG{ggi;euQUsogIl^1r{z>E6l2z0Oq%+MuuZT4iFQvA(x^&2Irf`wnmDTB9 z5_S+77ro{4u?|7gto1a%t@`yR#w^_8pDEKC}8sKOYO{5(xXX47fi_0#M`$1~xHGhk(Dd>S-_b z&aQ|qhKV4C$#id8E{`c<354pw#lPe>DUi|We=sw-cyu#gdEPh8&j^7cRv|ejLLDT1 znXX7K2MKlY5M`+Hb&UnP|DdOHB5T7+XGPfD9*QQH8pr8sdeF*pK8^3J$sHfJ)gREH zJ@oA{-!qwB#?H=QitltMXd=G3HXP@6>WFoor_?|%j)|guZ+7fu=>p`uB#T^M!dgu| z+t2j`jS+Nq@4tVp_pC;8`i6YK`83Df7I^_~?A2=_9nwGL1zH4)s-gZX^FmBH@;HZi zuKe?;*fSejr&9J#Q}9xop-UtbIk1F+CZ>|Dm+3PZVN9rJVj870dEK8-0aUU+Bfq(b$p12CgVK7GJ?* zG)qM?76Nn{ob1__hPTmb@5=@IcIcVH_2zzAu0BpcnX%_no~OS?$7V@I55lA78+dHy zMXy`XB0>`J3XxWyyfdXBt*;XcA@vq=g!8gMNDRfGcVpRIE^e~jgzm2Jj_?zTJZsUD zw?h*@|3GTv+w&Ymv|R(!gmN-ml`i-(3?VM^W8|EKlaBsnT}hYBzibNDQnE=MOV29? z?efX5ES%fc!2J5F@^TgQbG0MRCpsfs87?y5*f| zIzxz9vkAj4zM*d*_qQ{kYshsA{Lrx%xi0cN|eqEUC47NC)N6dbqxC61+V z&t($ZeBtN3Gq$rj9iV$6<2t9xV2~ki5&H<+%Y{{gYuMgW*0O6qRd8A@5*iI-GJR38 zTyw1JvD#O#?a#;sBw|=>#&s<^V_cEuZH@F;3Hw$P9ka;2jx`cWHxi2-eKv`sXLrB} z|8SAj{P=FP!%z2C_HDk&yc2PnJlXeq-I7+J3^I(~*_#Qe z3K`XRJuX6(-M7LG6>j(~5rR^ckCTi$dO?nX{S>1TsyF{PU zf1-AXLQ*~4FLp1&FLdB~Hen=BbGrTs@K!H>&b|*+);~Xqn{@Ti^thW2FZ#p;cZ-CE z>Mg6G2y_h9wy>n5KJ)Khev--F_I9o8+sU*s)mb4kH_@Z$4Px^eaWbYbUH_*SV5fu7 zv)o$m(>Q))&wjwHNEpJ(Bm;r!+gpB0hN-eTnpp+Nk6xmN)iAtawQHFTX}aQQ?Ak#qqsXd|Zstf|sfw~3X3thOdMbVCG^?bW<%ZYDuUJ4)Xipep z%jZ?#vBTDXReiq~imQ09~url(`mG09;J#A*F6}o+MXu zCKKuuUQ2H*I*{I(G``~MCCS{2LXBhBLmREEhhv|Re#)XJeN9R&epQUEfa+5u2MtD) zW7w=_5=l?|{CRm>QD?k3^W6(FM=Ri}Hg@b?7^{0cI^Xl<7P@t`PZL{s>p!jPxnbX?#Zny8{Fhty9tFJ;? zkbdtF+zlE*Zq~$Zd6q8LnE`(ZC7?w8PC-Z#n|eloXo-75Ez;73IChU9WC>U?ZN(o~ z+4EpOKc=Cl?v_B!Kv&wu#w;0f06LNyVMlvg@rhNdp-~VUq}MV@e_}ZL2D7PFSp*vd zI_=5UYSqabG8}nCEH1%^&r&QewECs}I?A)@dFar`t}gr&&#=*LtLy3=&yL1d4Oob> zIo-R(>NpkB8PI-*+Lbp&jH7?N02rcWy})Cw5V5bL0?I8X)nN`$x=d70t7Ucab0}3` z9Eoy~kUxc1ep8z11qIvvrnCC~80?ELc>T zu~ktbfIraJDq~H*^km0r`+$xT6~UXVIW94=g7;RA^}BtLPd}EG>T)4W`)qMVic8xO zQp%8(Li2UT@9d7{Y-qt14>Rm)b-VwdfY{Xj{j6(YL95ALA7^H6s&Ja6Zcy|=wchy6 zRowNO7*>Vijohe@4ozL%_-*IDcx7MbHV)X4QWeOjpCC2o)@DSuY3eZ=~6hsM)Hv0H#?lu2HW3DAkOg#q+@U z%uZoeG#=FPZMSG!ss3m2?0Whf>-PQdXM?((x6XHdQpgV7KNf(Sc8hg$-QOyX`0L!e z=LY7nx_gp_->^>`QB}VHje^ghUUrSDhXpT_SO)tN0Dn~1b%52@C{?PXLTlHcslOA) zndnFK@q1zVh0UUVXU%wQ-#>o$TE=>_MG&``s5mYGXQC_ZQJKblncHkJoRGzVQqg6E z(sO3jK5`I_&YWp+khu8*R|qf1$+}Q#)zp#cN2ghJ9&uhKgaaSC71Lp$+LQ4z3PKr~W(D#6u_ft%2L)$+?`wrNkY(m9C-p8-+kMS)$BRSG-w zjW4GAI{mdLKRYM!LsX*$$^!D^PW%lyVoYJdBMPDFilH7{3#6z^-7LbEk^N`$Qkckv zH5ZZIZ#9Hn6L08LNRi};awhPpgCVo&AM}uoJzHXR0T6jkM=^`JD6L4@Lg2pmeq2&; zc36|C;aWV5KsyEVzs;DI};~-$TU!|+!Q@cxH$NA z;>1ZN#9~674Jz3ZFYbAT-Ix%1YV-?bLUE(|)Zc6UwPG>Cb4c2o2Y}l2cCavr4~V4v zNsjJ7oz4Sjl+P1}O;5iJ5rNqU^}yIYdWYlA01WEzKgdLg-yW!)GqGoOC<{5KZ3~zR zPZ-M+D$q~tRob`~g;0+N>}Zc81sv$soT~@Y%duNG5jI{Yps;cS_??dy(GwA*{vgwT zBu6FOp_9>O<3fqw#{48ODX@w6@KsjT(*h#P^Yax$mmFo zI>>~UpbN*#zNlRJ%@VpGPHK?{f&Nz2J0X(>O6kvr#QI-9#u|4A8T#>yeQ`E}CR&F#Kn2f#c}{}+j0aVy@L17z`l3}q4v^N zn4bg|xFx{Laj|cme>w@>?sI8IZWn@H1Ml9K(%QyrjX_X{QJev?IJO&rYTMhlh;)wB z^sc`epUvM>TA-)0S*gMZ)phkv8qUQi|f)A)m&A6#PhrJ2> z`9tZuBLEV=0kFW?zyOI}PJ4 z&Q{CjS5QSj2k4Zan`W1+JPBgDG4Y|}3d3W&l^}YKsKish$jg={nw|x10=8*mV)^l@ z9SE8}Xl=ti`4C;3^NvNRlmf_^-wf3al@Jx)7idC8K@d@>alf#MhIf90l&ZhBSM2yQ z{M{w6tr!GMrsFGYPK1&<&r1gZ$T`QgvW0g_Y)$xm zPjVb1+$UE`xgC_RU4$nQ04$RSJq6IF-Wl{xyL)A2mbBXK=t#~t+q}D-K_;J_t&?CZ zLOsWq0Ki5|jaUjzN0$Ps3aCW@v>X1iJc`>FtCFwXo3$3M=Pj$5zc~Qpm^Y?l#cL=T z)KZB*s2M2a(?^_!=29>qPo=w|gp4Q4L^Wc4A$xLj_w%pN=aqj=h zJcTqpOa{=_mKZ-%W_R$pztjsf-B(xwsm%oWHJqW(pt-8Dtf9)m!aynNYbRiU)yh;65&nVW@(+Cfkpwl zX59TClk@(Xt@J0XQ72d)2%EJM)FKp^oTT-f>_PjhV$f{h;SU6M06}ncy8*gHLQy*X zHglx%4!e-A(1WT7^awmL`(oj<(2K=E&cA(rNTP`zB}?!2Vt9o0`eA= zj`AVPP$)*2RQV1JY=x8Xr zq%v`7yZh@aLhaHoE@DFIvmF?Sb_QC2Z1nUZ1<=ZySi@n=tXvZ*Z9@h;vCFh)IRXa% zAeiIXks9mO&F6D;jl#eZyjvmg{*|$U)x}_vztp%^7MSEHuHt}jBz26{h~A{@1`6ns z`8J-PU4DGoiY>!+tuB`u-z3QtB_H-+8>iT=xrR6()wFDfoQ}58DLlqc1ncBZSW`w% z^vH`@f|2k`C1mbTSHB7|mmCX?uYR-4p_)5e{q7U+EH8^ZJ)q~3eJUZz_9We$M8G?J z=jm8CZdrTn1RJXW|l+5_=GxW?`!Rw z8Eg;O=T|)KPKCuaQLQ^LF2+L2zFF*2s`7)jKB*aI((M{%3sU+zY~>W-)Tq!n)BV#`e(FS1tk zk_jQ>=*+qkH^JLZzWyNg*5>LBW(qbk&2WE%oV&Fe@oduXSy@^=v0Z47UepL3Xaa_SiOP{RjkONKoX{Mi_|#0e{RkFzmcmcYTmJdOqgW61 z1X%(hxnuoOW6%Kd^Ns{VEA{4`3UfS0tKEkdU=~*24xDRTDsyWmC*T>IJ|3<@nQbce z_<%D#7%;V00TQ9AmgLz(9}iK)90dT5n&> z-n?cSQ66}afxPSXKo8bzoD?DQJq*g<3@+<6Xp<0)Oc=XjwYGvVPJ(I<`GGJDv45j= zgz0HYt~$jPKx`H^r^iDQs=in3k2n0MZ)m>?<;%Yq=gi$t%05io zBs4vIQC|4<`M_Q|JO(z`Ne;a5&Q@E~w9-5~QbpQ1g!ErrinfR|q!I9(&E7U<-g}Lp zU`=?Y^rN23c{5DfvS7@WQB1@yU!w(f91@fO%O zGGwcwEYjSg+<*!01hBxlojRVdDjq#&vbs$Z9UQE@(Qxa*)g-5 z*R#L*jD)71JVEe&PWV#Ii7!;V$Gs4!-J6B?ES&8->m@mSjh@B7oZ-Jg0CNR3(0N?o z&8y=B7yF1gJHzfd_QjQ$Q>om?37*$B_&#+zhxOMCpI3Rb-SPrriV{i1 z(~L?_j|Xv=0X&XRb@9@?6vsU;5>B5Uw9#_CVVo=-8;`=d)?u6u2>>nnyik{IKYR2| zf6|v^b+(-TqG95&a7C%JcZIPRCHJv9i_U706&M(sHVN!t2oGwjOi?QsBItT-WbV}z zE*Y^v7e#Cd*!6o9J!GRM*_**P*ok+`&Fg2D1=*VUxLO!=R54sYgm8S6dGd|V=;e_; zgTIG=Xx#@5wJ1{JOA4ugxH?X9(VMb#f$J|HjPb0H3ow_9()Cj)&$l8@=jndkoQ6{z z35le!E}8Ni;-vgl3H_lK#9M975exLC)0);@&Fe4jSxl@Bo~Q0ijz})a=Z9^oo+%y~ zq=by9z8+KY=NC%nS^5|Go@fH*f2y9-cGS&&HHhks1yqJrQnq8l=IFAmMbU%k_hoKS zB>FT1Ok(?=(nX;_9A2WKx^rK5ybLWf`vkHb%`XS8p3UYyJ@LeV)H3qUEQg97zq?V~ zT@^|5lag}DF-D%=`r%961j6mQq;lUNUvtiphQfL8gTww>(JjH0lpzgD=j7g58Ek4r zifjZu=M*O5^ZA43M*F8M2gtliB#pv~BuLt-^Qxg{d-B^jaDnM(P`5fHoB7zIu3l@S z6?eOq&Y>4>ChlKp+x66)oSlhSvdW^rm<8fM1FF1`V5Bm#JJdY2`>Zb8S$%gFE7~lV zcOO#st51qu%};oa5m`K|fx2?|`9YhcZwL#8%toXaG5e%e!2k;X1wN)~1;3=}sJP6$ z`x@h9hW~jRg^(w5k}vbz1sG`6FG756r`1pvK>!6878&`t^19U+PGW2;Nq>`hni58h zN8bni%Qfj?2B~+4=BUn%l z37a^3Ay}4&18sNE|9z3Hva<55$TRrohRn9lnygo!^mbOir2d$5pQL!r$!(7m`N_i` zRozoMq}@}wWZ^F5F3JX`vzPfhU!gIw!Ox$QqPmYvG)`*JB%H~rI!T*$#IjoE!A6kz zboGX7nTxdU!i&1_y{W7WiKlhgV})AIjUoI8+$|eXE7u{6?w=Uf{u))Q*s;qKUPy_n zzmS<C>{VS799-ntm6vQdVkk?OBNs;Gn#w-NZW_&R?HZx& zKpfvv#M3k-pf}Y*NEx%?@s>J48Yn_PP6X?p#PA0A$mX_q^L%Wc_!L}JCY4`$YeU6_ z(s?C@_uwp3&^v0~{aX9wv2x?F0z%Hz7`3+N6SLmEApoc@G*9%!ukihZHTJ%~AFk~m z&sWqNbr_-J*JjNhxvBJH74=OuFRR+H#lF=KRttvO4b@b|z>F zYt5@KO@8&s{qW<|=3_=&{j3>n@5u{UtJ()iY05_|a}C!|Nf%zZ?YIf*0p6NL!(owWSn~Q)nGz{N8F|u`;-+!_#r!wvE=9- z$zgWCZ7PsU*>wT}%h#2xWf_E)_{#Tsh&piVTx--D8Tm_g*x!zI3i+&kVLP;`X5l<| zB6Q#-)n|IUcg0=u0t)2Ofg{W-!IsVHOc)M*e4q1E9wBpsWQ)D2kgNb?jEc|joZRndv z{vvo4gS6tQ2WvBs1?oQFYS?%Ju&=gGrC##q1jukx79~`#wvp`LFp;ewB}CF;~i(WFi#}k+IFCrb|k*s0HzGZ z&98mhZ)KLA4k^DVrsLM3{gpp0m1*qG?q#O2Y!FC&v_YLY*)&Vj&f#2L4X|`AM@H89 zW>BmiN&>u9Z%e0d?cC62Urq%1%_tOH^9Pf7coh-JNBzU`Dni7!74ZlRRAgmGq%3ld zvy-MY49DTs?kM8cbuBH_*8LBfjB1mt*Nx*XiQDJD=NHl zfy7xpwzP{S@_S-9|C8LGQQEPS??wyJ?VUf%?arEvqit>~OEmVJerEZ$Q?*=APG4|d zO?Cvf_lMX>-MJdSP6m|$1kYgO7{mLX#Y}(lRG6`**v$b6jWY-SkcqJFNcEni{ydzaR^0H6e{ z(Wa+a%-ML&r}uO1bc^~51adF>$ekZ>C5~NGB zAQC4;j0RNUlggi0J3-j6jpw|V3@z|;Zw1>b~NO-+#QPF$%0TkS%vcr93 zx?`o_DfxU=-319{wEn`^^lAdj)gx~t*bCDN1#tDb`i@0UGfvGA!M4O{IONAj>gX}* z&nqU28yz?4r^?J4ATeKWaPrJWtbFN2cEY)OYokJ$R zo^I}ivV_h7UPyCqjzQ;D#$S8Ig6vhD_(neLm0Lj!>=iZa)w^KNYwlbU=|J;17)DH8 z;izB!llNx$SRCCPOXoRK!-1(v9_H=#mae&Se&N6~OGaJIWEZLgYVJz|R!5(C`gO*t z*XKH!?fU*RGy9z=d}xf{f)N-3R&&M;25Oj_FVZW8WTaVd)5l=`=>@3!)J-=k!v4@0 zF1U+VpPi5Q`);xPXdGNTg7=1?6(*+dRGY}Ag~|;R;t~Ad!(f&~?lBXKDn9VYv>DRs8DyQROt>T;m5b#42rVTU6pcY)^@GBa8LCf|HO4Cs z7p}Ro<iD{`ul0_~KOMNAZr737eFCjs&PL@bqcXX2Z9|(CNT+I0R!YlUNhj zTS$nqDcVDp9iKnC{p-DhWi#QbzxT&^w2N24LiX@98Z%%6&vJiZ{QO@p^~<{og58l! zC;1N_2@d8v=MLX_zkHY)k6@7=o$%Iq_UK=m`)i>F5c6v6= zP;u|I(=e49Un0O)@|K05TTR|;Hm-0J3~sUb2?ND{AOFEe_|aD}bK3X382e&5BY=}s zjE)0jW35SS8HxyMMC|@984|AM_MVtr479r&OkZ+Pqr@^ZjVQd!&T#a4;8~C(d4(2;+NPP~* zw>y3AG9jVmVIo}u`EbnACwBtNpX=`8e=Km4xZ6#T6y886655D0eoV6;j^zpgt*31R zqzivttx^Giaod8^ssTw=Uth@74Z#E5Lx>_q=4CJN5?JEFfZmiQ(ett+mmcL7|8>rY zoEcmNkFIi=*oD9prkIRIZ?Z$x0hyw_wABb`!d&RT;5PP|NnOZ)lD$|h z4XE%7(7|h%A?0b;@}9Ln#{PYk?U}bjy}^9%*Pt>(zT;yOP+oPjC~rY{KAgZZREB`* zZ@~oNdGHlv$MIYkyxEZ;G|U=#;{m88dS*As=RG#vpP~=28ym<`7=nof_r%7og+jK7 z*9up^NbDKZK87ICl2v>@QzpQ-wgF6LpU10{PaZQ`r*i-=tl9!hlTrut(N!26R(z$% zDVkTO0%5#+ch@|ZsIRoVlj&sN*eRp%J0$Jjr{B5C2JF&uj8X)ygo;|dN?Cq%eH-vM z_oQ1kq(BD^wH*HZzA+;J(|G{V_l^{2DoSLG^H?Locey#&xZbCxcDmkD=Nll*UYk&@ z0L$!SK+<4HS)s5nli@Iptpj^{!myq`%@s-#_6y)DUIN(VwFcn3jV|1qs&w|BX10aE zzIYz(<=nKXQ#%*Oeoltfb6E3CwMxz`3M}n(fzIy>bMF`i)AQmwDY9$OI-AUwaLUMZ z@BQfDmzT*)PGj&ynQtqhTYJ;{JMb=LAgs9Ng4#S1@GdqXSB)s`I=1@02W~&3U4mv3 zl|dlpO_hNmZp-Wa{<9(rP%$Zd)|C4*CYW!cS3gi`jFt|Wrql6*w~63^$Ba&H=EFWj zHl%BAK(ST*?6*3LA6vC8#?>0(76)rgf`-?4}QZO?79OVPHc8j5t4)#>*OS zm$tfl^z3p%aZ)txjW=nkN8j|R8X7~p`GUuQ9FewTDc);p9*S<|IF@&fxAO1)rL4iN z#|beaL0+!t*ULeDi4XCn^cBo$M*(nXa^sPXzE!FRj2Wf*{tPO#gTU30OsI;?SN-u) zBk;=j2|cDo8YftJY6+RSCq!TfJQ5Y?qOy-`P$=%{lP~nx+$IAj-L|~-RE=63jMYQ< z&fo1?faW)g3NCa3fSA()T)wX(DX5R2(b7br@@^FXyh2}xfECD;kN$%gsUeos)X1T{ zV-U!Bb@-?aPg!()Y&qC0b?6vJ6z4r!`VV^3QN_uWF52&v7s)Cbo~%9?$6%OgyeN+U zdxH~rf7zz1vSK@-40Ev^nJ1^Cg5pKG7n@WSYSy&1HFb9lg)OQ_K$9B!tNX}q-8#3= zaS!NhjWf!@gQ2g*S9aNWTN+qxF2c;1(1AZyR0^o%$32ziv_>37(ftqAtL=AICKv9s z>|427A(hZO$S|gvnjM3z<2rTCo5jw#2!)Q}Td)o)B$a}`0EIjy10jv0qQSH~uD*Rt zs19PK{yLrOi1|7jKN0ldG=_O!E=HuBg=4s5Xax5?O(Dfik(&7FLkl;HTunW0{UFK)Biu|K^Cl>X5QII)+>0KW@eH1Ll zsh!^53274hJJn)W(Bs8{fwUJ=?Qp)pQ84 z%>tCtc<7dFdnSSB%fz4A(xGh}jC1sM3hdp)V@W;ScgoC;DR~pBBK3@ zb-K42Sh|W0&PWHI2Jh=*@C2-V*@*%PG5%5$32MJ&OB<1`ozznQ+@0B1sFEq1ogEv< z*ih`cVuEtTC7l2(ZVOEmeFd>?-+@!5D~+Pt7XTFFPy9)*`v(FB^zqANZX2a(D?-=v zL6gPVsX7U%CGF97XpErZw@IdOrvmZ9$me76DsX4E1b-{pdNAQL*YpT2L(fIdSipQZ z`p2N=AD2XQNW-W*c`uFJ&)m%iq3rt)yvqW2RjZXDO#Ud$==eD&MVz9H#D? z;?)g`pA!?tL@R6t?XXS zfx3UWW15eYb7AsfnPDi>UAX~3=EneLKZkS(b)e^w$jBG`lFBvkc3##9msGquW!!oX z!Vocj7>nK^F5Y>|b;ZA^>{JsIV*-EGfc#0Fr>Q38+6W86B?MWV;oc`X1gmECLG{`L zkp4Cu%`4#ok6S|H z;xx?@6AqGr`#T%p_tohEr((4GXVp^FD>hJlh|?kpRF!#zbb1*6=A9{oI=a|4V z=k0a)*i)`-dfi4%ksk=NI&D|Er?tggm7?s3q($+Q-&!c+I0j>%wv02vi(!^sJ{8Xd zP@kGJ!g$FBC2MUv)BMTY_dKr9O>B5{)V%iYnQ6aG{fx%eQkIVPPBZ$!lbS3jZ!L_r z9C&WIF4Xi+{0KxGGH^s2%oFDohIPl34e|$ozBf7WVEz7$y{G8D4kDx=ur(M42)?>S zK_h5TT0qDu%8iQ54Z%kH6?5NgLaiBva)IGtxuNlg;o(M9ot!Bczji^C({CeJ(!bw`G90+rog)MJk#Ox|Xq7h7UwfE@qAt4gN@wU$0+O7G3Li0EaT~Jh}V4*#bjyf<58R~XGSjgYp*k!*v#H+Q@`PF2hwLWf<2VBV7uZ`5KoRps6xUuN#(Dt|WG_ z@ShyF|HFWA2KU`qxy2C3@%_;31w2sd1rSaaFrSqBN5ex3^gG;3mR>aS;+pg*^n4`* ztNk8M$Nt$AjO^zYdFCI*8#e&K~)#feBtAG2C4$yoxNc z$4+R>m5x)1}8F~(A{V=3MXU{o_$eS^^e~VJPW3UB{=@W5|>ZFA}>>5 z5lf6`C{9QN1WBIB^&$W2E*yAtnK^ja`_l!w1Sl=A3)fEwnX?HSJ_ zyXORt@X-=@r2jojID~%W5a#L@X>sx1!ZW{(P5I;Z4{qS{!V(JqVTlLout@Sr4tRUn z#Ur?Qo}?*9ETK*3B4GG~K6=*uu>&D}a5yuT`;biepC0JHt_D?u6Yltb$OT@7e;=}! zUD~B6^wZPu)=rNJ{`h?pDdZ)R899GH(0^IN3fVe!VqE=8N3Mv&BLCGqBEoPK)x9QJ z;;R%a>j~fI$pxs&f464d_&G^M7IFvv$0dGQSWB?5Zo&x-a>246;Y%A{j{n~LU_=<) zkt1+@%lkiEG#%Kli2tyJ>|I3sugd=i@h7m{&BBLGiz_st#9TH8PvGNu;yFomX7-;8;(z$x%jmm@imxR9FR11|9sUe3H4Zk zSZ47O>W1R@Kb~FmG6V~%Am@ z*!Lg2u!li}hVy~A`lRF$d1#E_H85qkkG3$sKUGhQe8F{4SxoB29I_9r;pkp#k^ByH zFax3RJt|kh(SGz|m==$~4so>Ab20x4H!du?-w%Ix(4|K~jGjMznJFQbMUsm0k57Pm zUUsv{sbZu_PIjch;*k{rN>l^332S(U`nPXI1B=8d8~lfFl1B0XqG$f`k40ge(()ao zQg{z`Ybi`~MCJFZy@ppiGkQbTo*vR;wU8bg;DjfoV?@3F_Zu+-o$wid7dBNj`5@g|BRk`0^1&6tNAAGI-_;NNX%mDaW z)_){2F$1RHFZ|#gliwzVN!o&G4vUd&UEk^z} zRKFr2S_o3AzmY>ig_W6~OZGuMy!Gslf_wjdo9qP0nh6qV&D;Xq0L!L2+%?Pq>|5{hZy}IEYW=hYdEe2gU1& zyA3=NM5A#+B1j<#&aZ#(kxG2uFTeNSc;#{_9EM3boq*|%oKVIBO9dS}-)j(=Pk6b! zHiVWxXSHzuJ=2glM4vd!tJN|={Zp*2K_OUH9M?u5gXWKS5=9E~s1CYAOW)#au%^}TJEC_3h2|ki32LEE zxXbeUbEpk%SYNlEuBmjNNZDqsYF^fs4j1ny-OB7lAa%jNA_98+5UKr0(5lwzD{mJS zbWdWIsBrP}H~j9kkO^}9abxD=VGBS|eM_}1`K1IiAT(?vP}Pm!jSh||hc=Uc-e0y0 zSx{n@@4V(-+ zZeiDtM{_2B2-GPgmd6SdarUf!UStY6N>}Dv6iQ?|`p3=qm7E&Wd0OL7t6%jp{(O&%u!ZZpn$1zYIz3qwb>Aqv%Vm8eW|zxZC~8W6>mr70;KAU8 zQglv-S%&6(y9?U-%JcfD*kLXDe_j<{Wd?4|(RAw68Uq8LH@Ntv(FAVCF8hAd^XTzf zWg#yC4fT%_WhU19`Cd6RH~;r}zc+&8p2Z)#GpkGTD$Ft<(SrgP z?==*Z?0XB!l@|(b{rh2@5Ib1UPM&qer)Vsa{gN8Ri_;!w z17&0RFH)x0X9%FD2TtB8cDpA$D7{@N_^F3tl0N1xWN!Z5AF?XA(hoWecYIbA?EW|Q z-ZLnwWeXdY5tXQbfRaH4kt|X22oeO89EO~85Q&mUL=;3oB}-C*k~2saNs=XJ6eK6f zFr>Hl40z71Ti^Hht$OSJIdyRM?%ln5g{Qk$KT9{jH&UROD6(N-YGTS-x>?yqR_#{T zVn}Jf2Wy}5YN57!G~aR!EI@G7GEDj~X3k-svhTGtiuCF3IPA&nD?Sxny?-^`%K~DR zdd9bwt&)r^5-CyfHvBjtTkd lYKRi}KQo8v7giIOFnXcT2E)EdQl#rk&p!Wd5Q_IcCjBbx_Vt&xePr!FGxS}B4aGbQsXU-?NJ%UIM;=6$&w;&B zWGwtE2%qSMB^6ML5rT;4|C-JdE#s90A0SY7`R`wfLO^qN&*dclF`84^$1;FT^ye8u z|NYCbG-!@rGBx>M(mZ*q9pu;YNvg;H_b+x}@7pFWxm)R91ILUDX%3)EY;wlK|Nf3C*F7esNu;&NfbaE%|B)QgEmheNwNdY z+3~1R%Kc+yC%<(O0J-w0_1*vPU-&_DB@`@#|Lo`gHS7OP6MAz0H%%v={(shlvBCdY z)Bl{_f4J=b*JD#rKy4SoT+xXm-`dVD{z%zlHT(N~mB7u^orxHg5m7r8>(^46vOMkl zZvDeM>D7_rvAgbZMY=rygk4@J++LL_hC(cy3XiR*@k;kXMS{LttN43<#wz#D;`xA) z99dN+5$&DBY}aoVuPem}QV%S{lhkQ(H3 zAZubc9oOxELv*|8a?gd;>aiBRa5nnCs=&=0mHDYs(}}`L3}UO zNvwwZLumcHIt?_ZMWOKPU=6t3dnHl!Sj=v}gz!5^O69Szv6}Z{%}SK^T77E#Bal;= zJA`gyU)x^&`DujB2XXW@jRy_7N9%q|?G~%@myWli?YSf^Vj0`>oAInV7&R5YMQI5V z8rV+To26C$QKEEe5f~v+hxbQ*>o@s$&UBAbu?o851A1~ENQ|GWBS8ZCi=A1CHmu5P zb)wt**tRaJoqrA>DL*?(Pj-$k7IYahs`u26eHbYjQbc*jX$T05g96JFT z7GU8b}{(uZ&?W zEQI>CbEn7+N}6Rl2MNhJ3+@XmfX8_!oAsaq4?hP_oQU-he?)TWt0vXDK_iM`k( z)@h!vn?Tay;cCsHcI(wWX^0s!}F5n~6VCnhHD}Vw$lQLoVF~am#uK2YVwN5Aub$b4nY< zW5<2>Lt^*S=piu!bx%?SLI+C=6dJjWVWX(RqyiR~b~1T)3T((0efFm7_SCRo6DO&lXSwwug&-S+uemCleoAwDnk_i%Pk9ZoBtm9U?+Jyp9S5^xx6epwjikIBA*^?7eo^>C)GZD+{b^NKfzyj&m%~ z{vK&vU&!$!F?YT2vmGZBi|9v<2Q&z!`)(Sc_IJdG9z1F8is^0{p^hQfb6AX({`t*H zwOd?q&%Crx3nWSeyB!O%^BNcGpDlGaELubw9CB6hmh4klf$JOjK{oZYv)fneBHR`r z|L55;&R)g0wl*mfoV~MEw7yMOgPk0Ch3Z|P^-ic5ebwefpHeE;5LM@BT(Morxu}&s zxAl*1DYFh0Y}sq^iRv_gxW|>;qRxAvtdTao?vWQvb4A>pVlBQDcXt_m%Pd)qsfmwD zD4Tg@EC@`I`>!dA0((|KXYJ2vA*HcRk)_|~FS*{XoR*;iT3S6mZF7BFM4-L2+oIfS z`LL8JT_CYSoG`{pt7NR;pzC-L&#funKyI~$C)M5H30y<_SKw+@{IxT3R-P_~Sv%7& zrBz4HXxXOHYQ7{}d07A)rC>YvfW+7l+bhwT`~d!vtPbwZ zYgQ$DQFHy(6%QvEs*c*Kh6Xgp)}Has8ndRw1a>Bx$C`{A4@JwYR;{UQ?>FTLeKz(L z+K%&keY$aZ1orTF$k4`Ra*mQL%x?3oP6al}v6y!tDQhg=0ASOI>mRppzA`K0?K;ioKo%GfL+T*G3^Fwhyhy!g!tf6PZK2fw^9;-#!h2$^T#CvnjlMq#j zY?nJvG)%0nzp};}Vi}Pv5^(Ac=e4X5HCsFZtey}Qzf4Ed&=2{oc+9Mg|q9@hgy!NU@ zZ9&FX(R;W1dUw5N&OG<_BAtgz)Y>cdn9!r6vYZXefUTYvt9nWY!{4H4Vj4sDyqk^$ z2OLiWB|C_5+V9?>Z=veq@v_kCtR_vQ{R+-i;SK6Co2)sGKJ)?1Kvw>A22s!3E40=& z@@JR&muq+H0;hHOP00G~n!NJmWmP=RBfOM6I5hX*?KLgUOI`)ti-|XVvRnI`#$g3R zgpy-u$hN?Wq!3M=hUJo9YO$c0XAa7M|0%R;AM;T@IB1`x zl|2@683}TUNL+Oth!IX5NGwm+DiP5N`neMMQEXs206RjW0jK-uiOSA$4$q}T&JdC9 z$Vr}-QY62J$kg5G!{%2q-d`*=f(mOhsM7gd_xGB7I>)1qT!y#x4k{bCqb72kgP`CE zphp34GT&=6(1E_6%u)?r(&*M9i=S0}KmViR(O%K!CgCyStLo9K`#Te1D^-t<^_3^- z56%tj-XW!OS{G2E=AzR~&70j$v>l#`yFQh$PG&eAIJH9_mR<1eQ_)cL6(ksoxSb|0H~ zD3!)T-Ph`#-PTmM)!8fQSwF*PPZCzVvO^8d4$xpk8``JF9PEI7OjD%vIn&I;)mv7- zh~vm~_M6FMQm?EW=xy&S+BzC)Tfbc;7Y`QTY7EL9&skU3P}Ftu@R)HpMntI7hNvS;gAnKSh?9?Ty@TLI&;eY=*Ri_!-9>zmPE~J>+GUKW!H%1*AIey z7N+`iB1+;owm)b0w2aW`WTC#q`NYufPkq;;Ri|Yed-QW*jsIy-5mn-!PL2x`O~Isi z79S%fl*-LYM51jr-5U$#_lb2_9faJodA(7awCS=|1}x_SK_05_l#(bW)}nKqIRe$w z(XN3U8soGMR#SYbrpI*hv29QA@-t$0vYe(I5wR+Ptz!K+fklzvlB|%R$I}h8Buh>HZSW5yM z`G0h09yFXkzGHj1`Bm7#T*{o9Uk0^=YZBA|(pTLMOndA*mr2+jc(IK=nbZ(1$=-Z& z3ie}LB6GW}H{GSL%k8h32k*lJQ+u@S04PF)Mau}b7NbA`G>%$l8u!4*py%PxcpDAKbh%N8IOa5rbrT4iW?b>Fo zvp-J#s#aD75Rl786>84TYO>~NL!%AI{lF_Xfo0IYKU)Z~Q_*gOPI_~O zR&k8Et?gu%_zsTZr*|GqOn6r1R?@Axwz$ii=`Jn-Snv78C1@wA`ds1WFMndFZ|6+a z)8C%Ba&SZmwj~L13Iow9!HUOwjefuPQm%p%Te)$*=d=#(@vNVGkFI>K@eXE)slb-BLlox{ePN140D<0aG=rQ!W^YouZ7@elE!UO?{k{5`Ph zp>Lx_uX?hXyC(c>k?H~uZI-q-IP@x(=QvZWavw1J*iGAoJ`B!2Ufa`gi_cf}IGp$N zn0}ERwvk=tli&9H=2853+`9GlK9FMi#uqs{r6Y~+9^=Lck817h=M9qm4|>GCY6iA* z%eIWHUWN;kw~DyW|7sw6lq$gSB5{fQ-MhfKq_Q5Cg4^Kumn!e|SXJ;J^B@`g`bj_==!sDM$G< zLsziL@f+H*-6VY(!w4GbRH=bO?fkaE!s3)EQHruB%NK@cpSQv5+T1_9c)+_Fl*ke3y<2d-XZLo^YVl#JL-nhtZnUMqUpyWVP-+~o zi1l76QvTjj;$AVc$t&8v|8lDUg+{?m$&0C%COp$8H_l(D2kue2X<=UGo!j{s2Sdz) z@eHyNoKI6aWJseU-eqJpwyEQpLp0j|Q%slU-fHqIi0h_CXam(X`P@69HvZRhS4mRF zj@~}#5zZAcQ2u;icmTd2Jm%c&5l(J4-KrVZFfi`5g51pQDdCK~m0jkwrA018Q{sdA zGxizn|M9c;Qj1U=>Ex}_$JhR#evXy0miT@Sal4V2*Nz31l6$L@_%{b43w7QWN{ajrW6w0w2kQA3Xe3%TxRJN$cX z{)?|}cea`2^Nwiqc!xFK5tw}HFZnEOaB0Ts>$t=VGl4^WZP%Wv;0BY-Nzt0!ho#w( z_*q9^icrT#Me=_%e0(%h{n%I%xMo^5cl*R2tVU(s(6Oz`O^+xQPm}jesM*t;|B?A{ zZoL?|eP%76j$yD~O!G}F@%GqhzpuCOd9(8NO}qFs1^1$+ANuagoWLCjeV&}%dA}9U zyO-~~?d~A@RpleBz*6CQQy~S`5VUMuJp9x0L8onTsQvEMMvmw@jy4Y!K~j56}- z`4GsCkY9A)3QJv`z zz1R*nemj`z5aMeB#s0PNiKl}VTH8Zwkc!@&Uq!d(OH8WYK}%B(gIw~k_Ak8)R%2&5 zR~s)c$D!5>t>)MY)9yt3&b1Y~+}c=>6iCmX_0HAo*9s^_;}oMS0{5s)7A>iVCwln6 zp2GDe9+ZZn_y@0IGE?Z%DpjJFVpI~}N^swcO9u;K93wXSLbGEsC!wnu+}37uxSk;n zsismP-1lt3p#AP2vg0WICv%Y*ov*Ur+AR6F#@Zb*W<-X-R;vVWh3w6jjFs4eshvMzIpgxs0jIhLw`0)b>LB#+(tGd5F7-+kZ`Hf+>GB4k*-wvsp;+_Rh= zY@@t3cbe2i-dBszd#=awbORHL(iodhq5YN_)ubOqTeYxjuX7E*^Jp_Pr@bV!ku0-r zMZ_^PNH54Dba3N9U$RtDlgu~(>xL!!s%5N<4anb`tJS}ffPQmv|rbnUR>jLH}*-#x$+`CxW;0l#x#VJplm6S>*6x}Vv!SycLe3NZBA`*Gr9|J zt#VSuVxDuBsGtmodpB2XE_ds2&X&7}oaO?EMlg--l+s?R4SlYO*PL)P@?^-hJfMG= zjnKe3mDe^QppeUU;aO9+jpCS|W1m(c@$*&kFB ze3`4ZCNJ}4Q?h#d?2WJ)_%0+kgJr*W9&lud>PM^r(AHb z9@@6P`ZvBGfjyc%DpgS^1q4Zr{~Iv-oSl}T^^{*bcfOdqBXR0iAK!_3oI&0t0dbe4 zvI%{TiLAx}PwOnH>Hx0 z*7lfL)tfLMvY+}`b>jK4V9U3F96B9)tf4;7DIqJ*n_h0zjRDB^xY8(Ja<v^Yo?RBe4HLVG+-hUDO_KHK>aZ#U9}Y zF@Ll?mh**sGDAmiml19_|CP{dkR{`?`Dan&RKVzAL&^pcd#E9u`_CW#V|@Sl8_1da z&u7sZ`@awTooj4x&ip?Sp%opX_BgeY|7p?xeM5r_<3bsLR-jIf3*QsKx#kiPS~t}g zlDVINtY%=Nbm_C!wja9qFoatLWCWo#njX5sRvDUi1m!xxb?`{*@+64VY+mqa#b=Y& z7kk7}nel;~(yRSIhD9%cC?k?6EuBmw zoo_(3T?E4&p6Sz|fvs%-wnk7UDFIMpVNOUK!)v6hm-Mb#-g?GX{LHxB z*!s6?V|9@u*S>ysRqBX7>$$kwK2Hm*gT$Z>B&g#A)gV9UPZJy;3aCl`=b-dgTK{~F zi_eAJn?0627;dm$YQ;7)CpZ~pQZZO=WQ&SvqY;uI*{34wtUO}{uKpu`eJunNv(0gS z?^%pMlAsKe_}d*G=;H(S8%p!<^FdBxC)O%EuXKpDTq=F9b-}-~ox1J-BbZ|A!;rFM z;Jphp(FjpzY?VT;J6?G+ZLH;TaD97<N$V%{DzK0o+JFu;&EY8VZeyPM?I7q*eE5Yb)R z%fh{JijKKE`h3PU9wH zi@|>CrrydNJnK^>R|i5) z!=(0FJ_Wm|FKRUr$2=l&*DH zs!EvI>sl$>DdDnC;~LP+`sq)8)&g&Oq6LeTvhl|I2BmH?7u zVZF$}%yud)z^@JKa7IcL%#cUXyVH~^UJdX)EyZGtdvQL^+zs3iPMUc3Nj-_n;k}M# zX7uAz9c%`WlFcT~ei&n`3GAd3a}CS+n)_;&uP z9+a&1>Z3MB*rk4LRBR7|JivQfmbXsxFfFq{|ML^9F|+tN@2LXZoVypim?tL zleW~T(BA?H%xAp;gxz}C{@}E~&q3!X>pqd7U-**`F4dY#8emtBCUaV^{FOO4&OS{5 zID=F$1oQz4770(xw^vKFVoA3^3kyF~&}$}0fwaI>n27eF#Y_Y4f-e5S?FwDNZ$=?! zPpNm{;-FiH*v`Tj5daS!bIBY0cT2s)`?O<6K*LZDpD?$El>moC48i~JBj8}@0*W1c zP9PZ%EjD0c-T;km#dL(A+f1scMdz|>>Rz1Bb$H&!KVmz-Tso1nnno$#2{CYhG7W7$ z#S4t|HhtkgI4}}Sx(tLK&((rLU+y@|#1)2xz?LIEsNVv7P-NdyceTC9HL)dB(-b~e z9D|g8vtd9qUOu`5m~zq}29}j_>o30+4URpA0abPnVA@IqwJ2-!{j&hqf-pNM{%G}_ z!dw=xYv_WS(WM^V^?+q5@}c1LyG=lDlm-z}Ja~U6Kaz>iJw^h~@47VDRtIjmpv6Yd z^$4gcvT*wb)YZ8&NF+h?#XCR!ia_NNi;U66N?AnP@u2y6K)C<;i{4p89+w-$_O^mJ zozPmz%cgz3TZn z(r<~?U{6kH_osgkpuOt`1Ol3cOQ3Gxn~OqoNzP3)ZYd_AqWljM#j0AXzC9DUqj9)UUycZ<@ z)h#&tzQ?XN}i-uW5th!Li4QWW@(Hemoy%cMU<86i(Z-Wf_}K^#q%GiR|`dQc81;~)+!){eGMZh#A~L*uiQ z&h=+hAQ@a6P;sFd!)V=qBGWo7u@I_H)E}Ox>^09LIIL@1rpBogLVkAu zFu|4&*7G-aKVli@_)-hQH#M7_sM%|GFyB!Jn!Yk|xZ>8ZPOJfy5gh7oksAQ?90_7; zFBMJcfH&2h-=8@4*9e3~TcazWX|$77y5zPuFm#`sCL}ce>7oR|EgK zM{7`pMp#(n%)rvtnCj{>(s7yrwNl8W4%_i=lXx1AhtGClBB3l$)zJY-l)$j%$E8O{ z39th9M($R&w=^X+fZ^>5-IG3bO*7Wk$?Ak0pdF=Us7w_&`GpE*#k=BB>HS+8jvkUgD1L+2lV3( zedx~?xa${|&d%&BCXb)S_W$5L?D|-1c+M26q*7Al2$A7HG=L>lT%lM9EFZvlWd(ee ztmksE=60&qU2+}XbcL91J6p(LCheip1~=b7lDJL8sWLE=1yZEO-tbt>of6}@;YnLy0<*=Xwb5b4?nYM&))3&I39tIK4s8EE z#EGKJSHiXe2*`$3Sq6>D5oZf>y_anoN(E_M2aV=I+?0ci68KyH0wU%d_scV&;MRcI?uWKp z>F?iovv&wU6u5=Hq2JaaVmGLk6dAg($x!m1V*?hd=5W~oO%ia}U%v~8s@LWNxQ5OIo079n0Xa>bsBkULX>U<@S zAlHK!16ThKFK16+!V5edL>D2mlr8kp!TEd82m;8pnenq)a&h9tHexzSYYyHf9^B9a zbT|zYoxrpagJhY-ExGIJ#`y~iAYMNNCBs$nEwe;|J>@lXvcd9oD8?WlvuLGTKt+0Y z3(&-*0h(@6z+bH0u%27Bt$n*UnDaH200(~IB;h;a`UY!2X07CFHTF?DL=KRO+r$En z#~x7ZY2Wym=|L=-UXue{Gd%x0G!%Vu2f3Z|03h>QZqlNIz!TD|5LaNGJD_cJ{>AqG zE)=y>A%ek%&TBZq>V^Te%rFqx%9+8H_;RfoK#-^~pzHJ?3T2Ex2}<#eGrkMTyLIt< zC}8{>c#6*vJvmyit4`|$F>xb)01uYl>e`qvQwOMpwn&kEfNeA8np!YV6FDFwA`k$B?Z=iqN)RyqSZjAL*rR)9A})R9lSs8y)(uOk$5lWq;nFNHC~vHS!ubMku@ zw99&U#WE12oHc!lJd&|=Z)ONgsS7G~7q&18&}QG+Nqyy)_5Y25LGbXoYy?s26(%0q z1{L;CYG&o22! z5mqtw4%do5b@-lM`{viAC*>W?`v)HE8KjtMVZ7G;_4k19&d_;xcGDyN)2K^RKm+UIQ{v#hA-NG>g^mCkPI}A;EvIjLiep8R-}Eumej_ zzW4f=scRl<2pH|#62L>s3s9;vpvW%mo3jU`sa7F;{j$dgv*Li^ax)#vp#ogO{4RQW zI~TKbKo21a35%x<^PXlkxR0izrb4kS&(3~lP z>Wd1%h~rd5O#BJ?Wm`FGyfkL%K#bo6cWh0krwT!9qU~JY2&{nXP_W7QVh(ZER@kXh zgPN@6Q?G>!JgYZTIn7+iawZOD1gs(v=HF4oBfK{szK`|+_MHw;eTkMiz|sox?8Ry* zPzA2%-7VGbsZjBRqr+9-bij6&-9)hqh&8znJC6?(XGoSkf!X$e%8g-QrBc0=&~U{- z#2W|@dh9wJLBLfu-52FO&BcL169{d4Jzh71eZUv4tUx` z?W9ot>p4~V=#}KLyBBEQRRgfCX*&RY+Zl+})Mz}$A^}mn97z3G7NVTZj9gR%5Z-rl z^mIu+mk8X8ug?k-+D!DY&kNBDLtYYMZY*ZF7#YgNrg697?jA9})E~0I&Zdk^Xc?#n zMvE8%AeKW9AatvoFEet0PTFF-SWCUQQ*57fUlpf$5?@&{i!u&Ep{0PWGfN?hO?ctc z$8HFS(z73Z8TVLBWiK7&*15}X-TR4yf2t`|QBibDZMzr%N=BeaURI%^+p-Y9ZaDz0 zg=BURXx0X7jA&xx2neeLv;Hu483K_op_pOC0Dz`oq;}C~=VIMWaf#A0P)abt8L+#i z51GfYLlMOaV&Si*-Ko#`qGhJB>)q=)pyy^b8wMEr*4Z>>_%=ww_*6B=PK@W@SIjMw zYT@TiiJ>SaWOJD7d${NfYLb$97J%vmsXzvd`0pWHv$P17%HDvQwyMB4l*|YspWa?Y z)AQ~CBH^V8bQsdPGQ~pJ4A%06yeo{f{&YuzII@Ai4W}B9weEwVZE7VT6fVpa-|RZJSXD@xX303z6Jb)`l_xRB z3M4wO+$KfKk%ljF{_caPLG&-4`+db~Q?JD$a+fwIl7*|CfBS+N4~F})`NkV;tv_A5 zO2j0}^&$bxxNpy6{i^YqMc9owDY_-Dh)MPd8f3d@K6Xe{E#4{33`A|^=v|5dE47{( zP)F<~%Dvr2|MC!LvQp@mkZXq&V#ITJFe1M**z{+xaImG%AldT#j5yGL?LJ77McM)w z62x8B%cPiK3o$N6J}P>kq;pZdu(f}zn=pfi-=;rnPJb)Cjf;;p?ABTN4{z*-DL=En zX(3USjvOf`Yo0V=erp39uQEHg+sG_nyCm-;ROKIqs%Wa+d@y9wlAu}=6U*I|1NfHb zjsdZBIDkbqDi0{J3)G^^aQ^m9?adh&g7I6BD!Q{u)Dlrh^-Qa!@GLD{R5y%ZegD*mTSC zrrlXyIN&eY*re1m6+sO_TjHa}+1n=TCoh9j6WA9Ae#qV-`N!8Y z)I#`a$TbwI!cL?1v6Rq$^s`#vRz*-- zP)*Z^8NI7e6~!S?t%J(@6aO%HmGb5DVe^>Ynj?OP@k*o7Q3bvMCOtZFM&56?dgfa2 zOr=ceW{kwWCH_uN7%qKS0JW%XAiCG9IHc@hxV6!@O~4M&Mhvqg+xWZWt#5Qkd21GS z;=M1US|SS`JdG{L(q(uM8V@3#IdH!r1?{#P(MRJG6Lh!^_oYxyOHK!()!Bey2 zTWsIL`?9`_h%fUARjKf=g2iR{u7yqbcm7h>n0kqk(i~MnZW==(2dL1l;IC(wpC9T` zJQ}9V@UVc`fk!?N6pK*75DCunRR74C3CNk?ubgY~Of_U%@)k?}15H@{3 zs+s|~N{oubD4b4Yt8^8sv?Gc;+mc9D9yn3cTMpblO}nWLXbSEDKoLIu3nUL{maIx-&^n zflFYy+WS;DmftRResM9lpsAUj6-VgXKQH(ag9cdsnx-E-lA$fuB>=8b=r@IN_~18v z@X!Ve_0_ZJkE_!gmbNIT)ZqPK>$rejFsa2uf{qMOBQO5lA8s(F$lG19&Vg`^x9};Z z)2H-FKy%z|SI?oFV*sz<3wlfs*`F)8rJ5G~_3PJl0wdE?w??ld3BxhvBM{<{goFyO z24h;E*6AB3ZqA@Y96ZHX8k`;*JjHMimkK>{dS>v~-GEjq6XNDd+;h)Q$NS%H38CA{ z&TAoW&5*uY1I0V&;Xg5FU@@IPzVf60!g+J1q2HfCXI}d46F}O{buznWkd&bBnT~%P zY0!GP&R}@1Kq{C#28l#^olhQU0bmiPPI1ti-m z_dUaDz_r>AHX^R8qW1T_xp1jYyW$7W2Cwz8jNZXV_f3ijzQp|WadBhb2NoEjcrr-f zG#EXT1UmL!%jgzb(AW~SWX;TFw6a}t{BN_qy*XR^=k&qe1fWdI>5wA@P14%{VIeMO z`}pFR_J!W2J#`E}1+cKWYo`2N(613OW9dAK7cxbj&oe9(+$%EtNpJxpD*zLWq1Z!$ zX&y<9qxDr%udto_LM_>1H(myhc^elh`ENA9!XX8=kfk;L>OA^=K89NU)>v$zvjVre z60z=;pP&vf3!*?z7K!Og(G!0LJC@imj?w8lA=W}@YH~f_>0sdW2B80Y>#1(&x%zY) zs|3-1XP2g|W4q;|p(92Z(402E1fzavI8TmoB0ud5Q?$f47+#*yag4e0x3$_!pf#U* zELOB^fC=fYNv4}{jww50#o+j=a2(*X9uw0@ijc9RLF&u6gfuKB^qH7fHk)4~F$*AHzg2M7Fk*a9;W2iU5j3hy(oScv>JbT2UG zUrj`pFuJP*Tg$pu{}z5W#<1j`(n}L>Z*NIjDeBCJuhy_nf(6nVvO^7#we#qIfL#xJ zXY@>oT#JatDGt}9o_93bSn$*}ZP5ca9C~Mp5&aMD3h-+&v4;bE>J%~>x@&_0+HvMm zx9`5Nc!l6Heck5~^i$;YMJym>e0tevj5pt+?_!I~vJIDlDG6l9X!Yjg0=H0Habs-_ zc(KS5DQlO}|4@1DC%KcNPGU>D@#Dg{ zZc|=H!HH#!#v=OQwgeUrs!vz7j0z)a5jXsc9DfP@{q7m$FUTE`p+9>D`4qQIhk02; zB*rgVW&acZ7g0Hr#Z@#j{>z!A_SU}hJzV(5**f(_Q2-7GxM)|up!7L;-@LZ zJe7?k!Z!;HV4^Ljc-qhS@CN&zmyJr8Z$K?TQGy0G^%&C)xB&KzXf1}eAfp!Uf|2Wt z?+6J9oO@iRS7XF|eQw-%-YipclMm3qi`zL8osPX0^3LR3Z5Z$T2j_;}XXl37^>1cw z7uOkoN|z|7@Na*{eK=+w6(CTNfAw$g)%<~9;hTJc@gYAMkh}cCtWO7x_mhLfq&_@s zsl>OdNDV3VY?k23CrHj}9%|6~+wGqdkf;bxL`98LR`*(TTFJLihvhq^{Drah>K>Y8 zr{H~mrAT|)M`WkUM${Y!J~{quo(|m!YZ?0LR22$E(-0Q{!VIP`1fEqv3-iLn*!y1` ze`lo&h`7N1ljEfm)k4C(pCioOpa=s zv|OXQdUek68ERbrCbBJr8)3E;zu|t0aNvUAQ!T$bK4CtE1+)F!CjMe$w$p(?MJ7Ky ztKeYv>UGG8W84}9T4+!HET<=$Q2ESZn|&Ksu;qrTqmQ-&wl0!w^D>*~b)ygdv{{Cc zy-}jJMu7{YlKHsB*Mgt<7^q%{yex05VRRlemWm|!1* zJdD=JF?HF>Gk#F`g1k%5njnraYv8fCclzi7aQibd)Oi?r%h4yb#mx7lU!sc1$|reB zOvO!0by1p`pUE_WtTpb(UwJ12dGFn>g`rzvM#2l(BTPdgh+aKon1UgEeQW5R_jTbF zv{+wt)_snFsl8#~6+-{lt&l($9@1OMGa^iU+VKF+nq;u)HjNlk~`lj4ZLr;(H2OMV0N-O);7(f3Di|E5{UpQ$d zZ75RCT4zsCaMV42xv%poA~ROBbn{OBhOn#FDTb@9!413HXo~?TEtf4zQr~3V@RbaO z&p6n|BKlb}+sxmFtCQ>No;p6IE1+jCFL`|+xcG?yX%1YL^_nkt*$1Yzb#Z-1{O>II zoaR~t7G9ZnXUUYNUOTZCC3Vm< z^$<26NNYgPQlM!G5G2+`X4TY)E8NTz3Wrx{n{AUS{P_z?k=MW)nCyOBK3Zh-0xKZ}=iv?Ky=@VH6)eMg796$7IUWWxronB}10o z$&I^%#X}~#o&Cw&YE!KPz5&KL>?w*+xJ3J-;k&kTHl>&ZKcL zHw!erm1q;C#L~n`Ci1m1`eSd1&Alq2BJbbKl4&;Rh(T@E55W>{=JJ^xsE4Evpb3#! zl9H)iUCZKP`0*~g#HT6aV!tEIoaV!;Q0VhuZ{irJaU(boh5o+|CyYVn~glbs13 zX!`TsJa>Yb|J}_!gJb|biY7w89wv-c(D+zJHwG&UE^TgPCZR1T^QOe0<^GKAv_yy` z`WYo2pqza8cUB;~VU9f$up7)oyX_88L?|`f7DxECOJ23QvafL9Vl5WkiD=cK`HPU9 zyZ{NI6Q{ngk-2^q;U~h^gl7tp>u&q|`zL6>L=at-1EMm=#)yjk-)j(e8NaOCs}dxy z?t(Eq!;`#>6Qc8L743W`$7E@D*v=LG+efv6czro-!R)n&GC!8GJ<(n)>W@~qJ= z{ns^57kOQ*KsEJoAB#iN8cXtm^AB(!JukzOM{rCj>QXZ4af(`5dKOvIznmwQd-V)G z`*@J!gcCVJ_y8V`{idL?dG{7Ktd9mCnN^}M&?OSys7G% z(uYiy?|N8~pNYI#JJa1uE5HZTOq1(+!dRR#E;NsVnm52gFELz1<3o57&>#Z z<~MMa{;N7H!LQ)ECPSB5bjW^2`K3LFllxSz(Nn=pBh0>q>!ZbX24)3hc)HDC4J;1X z7}-Lp_<}>P6c%F-u&?4$1D4{f2WVu)LJ?){G)o9Jk&kYhqZXR?c9%J3FplB2W_331!{DV)bKe zPj#g*w`Vc|SD4>$Ic5M++SL?E#Oyn8<}K~xtYTFu{YHzB2nPwg1CDZ?G$c?xqB&RP zZ;>q=hEDPNw*b3~HUCD#)4?)YkSlGf`mvwMUvloKHMai|2ZkIa4o|r~3 zyosRIAi#K$_aJCb6GX3|ozQ)H4(H;`zFsyPw(LBO6o*%2VpwiSnk$BO03EJ?CVWQM zl0;zJzkvcbu+MK|E8HtsH~!v?aWCRPiw`JxAYX`-z^T8&v3xJbT*q-xNL9AXTKGl# z`O9ZCYwaQ#rMI>0((ztfC_t7#*ta73E!JN)($R1ZW44vRoy<`^@xda|a=xf>mzxg^2~1T%Xl zzfJ}E>m_!#&)ZeJ%O%&%Lhe&jQByzTz{X<;QwwCfPycaSi{Y0c5zakqkMAtg5ZdBMItyDa(I`kQI2*024fd9%?ggNxU=%|p z0Rc~u^j+`#5(2kL+fssWJYwA+OnCNEw$T(F$BvVNvcuX#Y&HrjYY%+?U+Zn?RoC^^ME=_Gsp6JG>0JwI&YOC&KqIl z3tS#$^vq&Ly*i7W!5&@SDQ_9``8+Y=z4yUpQ~zUD0Z85yM*VQo?c9ptv5@BbZi%+- zGguSAm+z4iFF}y7>zQAiX#Y!Q^U^xYyWRKoC}3E~O57WL9M?SA92Pb&fw~;B_iVOl zFLN$*evjO%_rv(#BmpS=tWDWN6CXg7C-Ic5ao8+qi0w8-AhU+-i>oR4u(fiTVSX== zNap(Eaw&K$naGkcC1CQbD;mec`G6j)^W?aLV-K}gwcyNk$a(+w8%FsyaOyoVSn!ly zBmbx7AdM#d+uaIKTUB#VNB5u8qW?URXpBZ8u{OS5^2z&J*Kc!e$-V z#CcMWELJo*^erlbsGZ9@FBd<)k}1V|#jV>Sdb3+6{y9QhUxRtd<+`YE4ulxO_<(j~ zz3isLhTZt-Q!yH{XT`(R?G?6Ue&D*3a`yO`SMMLx}8|@wW z<_I&F^x>7_TSt^vd>>fuP<}ke89ZLzSulB^C`8jwGuE!#J<(Gg=r(n?bTx4~L3M1f zd*w;OjA(hB7oI>SSfS7g8lSnS9@veS7Dmyv$i!jY=-Be zh3$rm>e*EgrsS^IP|g)|%cRP~0iG2B4#Pe|#koUunqF_ncX7SuqV^&hHaKN zBsX$D&BDUvWRfDZ(%jcl5kjwZp(8PRR-kH#@Dw^6Y>A{Hfz~yLcRl4j-%Bg2*fNAE zZe}m9HAtrK6l+@+>Eu-$X>lxjnL3VHJkWhUV@TO;1K^ji-;fXTha@_@^E?yxE!(QZAWx6=!XH}K zn4&*s`M-^lhNDe+T9%x2qAoZ6nVkFBa35iUVHHl>XipLpg9dR}D$=0 zTc5bF@h#Ddiey$lcgBQ#@)Era3Z?2-bYD~!twn>!&@$SU-HZK-2Hd2rhV5Q!bq0oh zGfmd@$GO?bky>l77hLg2d_sa(St#Cd&3^x05WXz3c3i!b;ib!Dn?nVIfXbY2%?7r{ zQP*mIS^T2d7& z(>7+M(44z;)xn0ebunbOGmb_|#-4rqRQz->Pu3k{9zry90||>U2mJ?;j_=7A>q$o5 zOwPX+mg5$#8@CqG&Anlr^EHrM{OVcHY;QM(y%*<|KPj0$=753%sP{ZLLhQR}W|nKD z1nYWO!2m^)%QFv)8_!7+-lA{pZ_h8h2@AT|?knuz@A~B3Ny|G-cY~bnu)H>c!@&=` z;7vsCz!D+rbvp)6$J&UJ=!C)4+VS=sudO8LI2)4>j}~r!@syh1z*^REN9P#UAMbj6 z&J$u8C!`{{PVcoBgKkvtiy=1UP=#F}G)+zZ*nBiNNxI16LOl0fp;NWw>Xz~>5ix#a zHQuA|?g@rf`;Pe%KLktnf>$Rxc~RNli@mX&Y|4ino}OFPxb{1d8n*QPX z<{gumiswtZW@brKDoMNW)#6AO>PG2O*<->D&8o-73vbSDF9?#&r|{F>6&mIydwH@K zeeuCVQZ3^aU2k%MXZ&9bj(s7`=p-qS@wEr@GXlqrB0Di9jaG%mE`@CTDdf|W+>Gch zB+1gMcK$5y#rYRbcO^QW-&vN^K3~Mu{$WE@soacCF2x>RJqPJkyFXeg_(}NDS$&hj zWgbm79~K#N_u#Ox(#yr2rxzd89aH~&sFKS)K-*-5G7MdWop)-e?;?Ph*SUCOV7K>0Y5f z1~oV?FqRy7+6Jr3Ubb{)#12}j#f^)kdZ}XS4|1=KTt0#$qHKzI`YJZD$XTjzK~${i zvhzG?CRC;TDAFO4JO+#IcH+3Q4@MVdQ*%`*=l*~_Rmz^g74-5Yd92P=rkBNS+ZWEE z@K5Z|4s#I}7oTq2fCZyL?puMJ4Gl&xnKBZm)-cuxr;ywqjPnzI3*Ely>-RBG*^tr5 z@~+i99wZU}azv2PEP{wylpKmV7r|7f+`RaYq4J1-#J>&05V33L>OZn45hD4_imq^Zsb8Pa@Q`hes(bkRm zXI(q!R={`M<=Vp~T}q8ge(16iBfjInbDbsgeBnwJOZd z9N(Na@DS~4hC<=5y!_F5+<^Nc8SxZc?Jp6mhSa0;*UV8og>xr&`s;x!SUD)kXs|JS!(Mbg|qNS632@~{vZrNf`f)$~4>sCb}$t!zr=wtJM@%=5TT z7el!^dnLZd_O&-V~@0?y@kOEe7H8jKRNaD+x`=4u=F z?tP6jL`X>Z{Kf(xl}y3lcRP>oz^SwWl-t|#0pB|>NzNo0^&5EDE&~R8{MW2j16P;X z*cC;Yca3ncM)y~>D=d{>plN0N>z}ImS@_EeB5pepx!3YFhATx zOLNlm8PCrUC=F=Dz|Pz}9c&nbc<@b%^)IlLY8#|gcwZHk_=hJ6y?NRSzv3KeQG-V% z=8a%V_dTK8V;3EOe;E&8zqg1c#1x?Lguc5E)O3#T?Yflg?QSP(8G4qPUefoTZ#;NR zxFeQ#t}^_+9auQ8$;bVA1QPH$CRLK6#*jSr9Ge0CBh1vz^Hiaie|w$)j3zCZL6A}5u%svH}aba$)eC1LP zfW!&yZ9dtf$F^IJ818KibUU{Jt)S3;M{n$B?9~&$0Gmi@E97K*0f5?R+khX`MUpys z(-)US5<^|S*R3;PC#zI;vMyCPS$Pa$en>rzJwAY>`d1-5;bA(H@8jhHc2-LksC9@X z!i^?O)>QlB#;NpT9$7SZaP5;x9D77_ogUD3I}vCk+gK-F=*-pwu{>&T<(*TG?=MdQ zl`hb4>&ux-mdx(csndI>wm-JAE-9-#v1fZaxR$Nv*?#hF8_Vm?ZD39u?=yBP>1Qit zdhly$s_whz?KBDGqq>gW|M76T=$6Z9UlM=}yZ5%Yw;2a&q;weB$C&J!C~YY%^|8}V zrXIs@P3e9}efU$ff1dz-Qz1f>H-wR7!gq+`7gFxb-v7jBWZ`#J!Rv;_4WFDDEL4e) z+@r22p=~pOCneU`OF4Wr_QxZD%wIp_8icvT_W-WxOf*Il747ughP&cyq9VOj`B`oy zlcaJ_#ZQlalmZwX&z)b%TKxq;-TVWF4?HKgTo)w$lF746Z8pvKqJ_N4ihKc?$q@)6Qksywk5CyRut;Hu&en#)y18wx= zFJEyS44_#+dFQ5iFMP=3Ariz|oW0Q@+Q$~9jU`I9Q?}81wg==00RUEaN8}@K?*Ifn z`ByPEAA#kZo)U+Pm1VA3UfHZrYL|t@QIe7t!0#gVpy7xO^c5MyrEj3#x zeF=Z?Yck6ao8h_D^F*|u_NSs_Xt^E201YkvYSXWKhTbgyprv($lZl7eyxXZ6KZbS0 z-C95oA!Lxi8$(iw8vNsoDd5EMPZ5wM@=s_$fM$lhw(imi@88$WAZC{|2ozJsK@Eh| zmyX)adDo``rPH$=io*<(wt#{aGu)ZgVtimwWFp5lCJAU=nR7ec;rGqhvd#w218LFr zVmW~A6Ho2_@bCWa&+MM1Q|*{NX!P(%T7t0^)mOH+WmaxvX2~DNj(Ch+sZMQ?M9K%y zfjCH!brRkS;!z=gzI%P<$hUYA4eJkr7O*<2;39}N(aa3un^#@lJEL(@uWAj@UV9G3{ZITQO6#Y zuJ!u$x;C6`gMO{6ee0SFcSJVr5Evwr5X=m>=p-Vem1V`()Lnm2F-*UQ*f>q?N|O2^ zywxMixr_vl0~n#q1Z>1i(>q4H%2dls{Tw9s5GMZ(94v=`t0{v|+EK0(Cr{32kS+dh ztoa|%B71Q&Oiqx`V`~Wt24nOI|8H$^v($a@|S_&{a5`;DD)Is;dhS-pFC0f^&xt0%G7 zhMtQ)Ie_#+u0qV&(&@F|ANfU+M0*%6mz5SYq2O)l?hh0-(_LH#9YN73l-8N+&d$bU z__`z4t;e5r1MEt><#BbZ{X%=&4SUwRTLTTTq`FSQM=yM#C;@_x*nA~$_!)*@=ub** zygZhG)TufQcRyIL40Z&1%AM~@s~~P43}I1k#YHxI=$BfkmoDVd6?J+_YCTA39Tlc& z7@$=YvAwC$?NL!S#AQL&HMd1V%^^!~XlJeUY#b&jyg8EyobH}l;JAxYrT3nzTe-eG z`u)BbRdxMR=xy0|=7FwJXVmO^WqRI3i_01T9qp80{_5$Jvr{P%mbVL036df`xKK;| z<|_rscKcL-C?VS$nu*23Hp6h8b?KNVi+o`YP2EK(Jc&Rz7IV+NF)R_vTR`(q<2w%m zAORUjf)TojXHV`iPb;-cJB}GmrC9@MdZ$>+vIfLD>qI?28o(WyW=pMm?aSc2SRccU zQ!Abp#AZ^msdYzm%t+39%pN?ofr;KsU68W7u{X3!UGS}EtTAdb;VaQGy@a-{@t;W|gE9BRtzc&~m# z8E}iIHkTpJbqMka>vsX%=uhn4wXl>Y`VKDxdAYUro8)&(e%JMy@nnVa=yH#f4xIux z;0V*d(mK_Th?XoTj{nNAUKAC&q9?e*d&j^w*{NS(d8#Y8dO)ldw%l;y+7^ESFN4)q z%LPj^rC3pLNeV&@_3kunY$)rnxeJzwkDdUHqIRi<*3(ke%X;c75FXNUNoub4Uescl zhftu{z5{4?mUh56`-N$C@3;0ZznpEE`XV>#Op5C(i^$!d9eii((xWRg7xedUXo!-B zN-W|lN_gCtIg)PgiKchj(T9ZhE8uiAQFxp8+tn!@1sXJK_?7*epOpjt!f2 zw>`yEbJo-rXbX|_?w4-%+mvMRQEJ>VH2nEy4dF-5cofzb_QW~;yrJ@asa@0)GKRE) zSe&6~8|`XA>+oPt;DY7(W!*?WssZF)y{ZOLoFsStBQGt&pR{cWp2JDLm<-?C`pf0? ze7cU-HL*2?dn4bZ%h(_6V^CUF(USkv1sd=QO(HkFd|+~!GbMFvZRlZY*8 zL$;Q;a`0%Bs`%OV`46-#G@<>P<3~h4qN&QFQ)e{QA46J&XJ>`OiLbPd%Nq5byCw#GJETm9uBm-*~e(>bRt*MPjN@H zli(JtVzFlrJ-$X}gQN1Z2 zbsoM-?2t%PsfQIUPfzRls(NW>WxDv8jdExn?Sqt@>9W~}Glqd$?WBFqr?GaGD){Ui zxo6~JtIut&+uCnUp4zj(y-Q*0V^Oqnu8AwRnpsWL>FLj@sQt<-!yGG#Fw^}13h zkxhG&5U)`B5o+=b_jwFz&r_jen2KK?m56t#o4Yjytk3}2t293~Z?PxuW+qs)v#G29 za8({!az16=Jxr2Um|r%CRdDKfEZ9K-FsIwy{Xccph3#9QDUgG}FJ>uQ8rrGa^w2%d zqn^R&9^hKT0=n|rmz9+OF7EyX+SZr41@Oh1G*)>j&=39;0a= zXy5^=tr6UIfBBJ`BX1>Dlm=!?3xM^@(c=ctqO)&D#Nnp2#wAH!P-!l`S&^BTVf(V( zRYQ_F@T=ue{q`awHlaB&$nwEwGDH4wsV$31mcU7>W{tgR5U^l!4xcLWsH?-^t=ki7 zfT5H2YP4&J-aN?|QPyKQCPq#E;Ahkm;aQ&9L!nH3x%sF)s&6($4n<{pYEI$j2M-<; z4kK)|t4J@JRuLM0RWJW4F5!_r$?KuF^P)8CTAr$b#qP@AgSYf5(_1-qVPdSTgig0Q}cZriZyyO)SfW+={nHWRLid>&rfLWWEmCMmOmI6d&c?_&U(=x z#5%ffNdleM%!+b3j-hlk*_Id1sCg^vQIzfc0KY2M%IsmI6=so`(S+^W{-D|6tRh|5 zWF`{WU#&*8dy`X-w|=yT)XZJ^-34su*wx@VZMy{sqPJb$+)vVs+n^S={R44l!`5S>eJ?8p$wu+37|0o#x>Q>imc3#Ibg$) z&DT&idervXCORZ!DDrss`K=`c~X+G70KD(f%DEkG-g30 z7;3-yHSUV<8awH<{UGOMr92&8zCgR7AUs=y&Z(@+Em7wKG05_)TPqc$Tp41ee<1Zd z)X&P!vSW!oPM@l8+-g80Q~6!dM!BkFIE0Wiql+mymXKvF7H8JZGT7GiTR-H+dCn*q zTJ;h~Jx!fg#U?{))nFC>eBphU;HWrF+lubf0m9*EV~)sMnRD$|NX$e}za=#r(%rhW zw|t4%jF&@ENT7Y}16NN@oX2q2Xzi)E!oJ*WaW%n4rDD3@7r3iC;5C0P&-95pVoKsz_+4_zTXH(^__zezY^#4tTzk z{g(LhndnYLsHD4~efoN&EqBDAbsi?8T4ksoIBcP3lDcxNT}<>N$EroKWz#qP`a$mH zv>4k*HrvChbLms{v%jFg;4}qfQyY)O{K5O%3;u!4;xj+ZFKz2MHY9fAh>AC8-#VMb zHVFk-b>(aa3FHJ~zwVPZ$4SE|pr3};(g;C*yr zQTXD-(&uW2b+Z&U`b4J;5^DO?on8(lb6NYoa8-Zc5E%yGe$x~NwRdQPkEa)u{ z34s^H-pcjdCA`_bJP}pj8S6SjYZq-fWSg5`Jew;X%Snj~?}G6K#~oTBt>dQZn-(ij z{$ln1<$jwk86vm2BzhN2BN^%@RU6MW7w*h*jqH?gT_NvIyW2LJ&kXhI9mSv9+W7^L zS|cJEeER4TJ&ENc*?@nZY&m}DGPQSv~<>cWr0pba! zQ*V=pOE$Sw3!>0{(JE6Z#}j)u&wz53y!Q?i$O?+e96;Mk6llx(pWm2!cjDqXHtEwa zv6=j_^0|tjlYY@sauKa?!kQzf%5H--B0D2hk#(A%oayc|NMMO}Mq>*2swY$o@3NE3 ziBrg2%1c-*F??J#pm3*Rb@1_498+=TtsaumElZrouU!xw8zY_IyZf_7CfYI2uC(q3i)I0Xq@i&V{|3$F2@DIhiC&?pz=E$a@Qp znM-Ou^==9j3#17J`@*~XRmwE=DvA?=h|LxhbR%=|+8NBzw_-E3VtrNJY&c( zGwE&+5bdw{9k`ad`AjZ{keBJa{UA0@M38%wv5fep3LnXURnF-Qw_F*H(yV)stWp4a zPE^%}rQq8vjh4Q#!Fu%o9?=mJ|Ei8pbsx*quM(U+=AFBFvFq+|G$WmaNky6_r;hG| zAwf`8T8~W;+lzMEw&?Ec*J2vs?`;#v#5bhN4vg|uOh{$XW+^gN4vwr5&T6W^zf2EV z$j1mJ4UcP?qeHQdq~-1GHbu>}wg+wI!e*ZtB!3*vpDB!lkoQVl9bBct?mMN1iXT0& ziB_UR1C`F6xTW(b9opkF2lv4_NNUB1q*jm*VD$#07@zMh<<~8y61mq!hUa+1J0>3`C`3J5J<~*9{5FMBf0Wys=TXtd+@t$^ z)rat^Ph$AZ5>lF){!gEU~VPBJh41-PIAO{ zjjYUBpp*wyt0+Ol~F!Z$g=I0oqR;+BKQg-xqbY?kK0hL?>q#N zbmOhwZ}vgY>*@Q&TJsWSA4!4;hs-&Jk{{)G!!>yl!?lAIyR>w*hze8-s-I~d@;$+t z`C_F>wLeue%hTy{r^aH~%OOk?-5QwCCeshJu}X#)kssdCl(77qcdYXYlT$CnxvfLH z5i&)+VbqQ+!@a8*r-Mh~p*j|t-Kor^Zx4x$s4oZQdcf(h zfa0zZ9xA4+R2vbjjfF?#5Qq&JgWSYOmTyMG%x2!iFHjHeh!BWo&#_IiC-`i;LGTY2 zKV{peU!m((J8ztgqZQadS54m+g_jTM^hpI+>;pp6i4OB&K!5dW&;zd^?V_G2AC- z>NHVt<@7l-KaP6ZKYxf>1R#|BA-u=WTmv%4WP@YTmN~7CsNDJ!Ale|95AB|U=b|c; zh;Y&rG-ZP8PrUc2O?jO+G-&?B){)d!|7pd#_N7(#48EBm5Y5QG_pturdvo%-aO>^L z`pO%_kO-#bWyuK>7PE2+9Rd;s!u@m#60O$^!i=HtT|-txyxA$53BDEefql}_!-6A3 z6;haS(DRee92z_}!Czz)Z;6)&~i|NvL46G!}8g@X*9}{@%#PZTq(9n1&xjzmWWl= z;$-ku*Km{1$VK{kxU0{WsJ|+ub+t^St!wA#(M;D&%il7%UALMhF4tcD)CuH7a)k`A zhNHHgMZ(T;EDmkS}$QkYBaYtEY9(dymuiaOpQ1AME8`wKT8Ozf1- zZ?f>2I26kGB(EDXy!16k4Q|b>KwcYHU(0}z2l#WhfUm$%W zd6C!=aiy*8z3m5kd|aqp54HnrG}{Z!t#;r0UYVwciU!Sp@R1o5S&S{P+jjc?q6Bhn zs}~upJ6*aZ9`No9SqI7{`tzM0cj=U4`rpzq^C3h4w|NPs3kH+CDxY^$TR3IVQI(#M z<;dYU`Zj}x#}(1T|I~D+X*Yj@8k%#=WgHP_o%w8V#@_DtJyArcXPDY!nWF9SL z4eDDwZ;|)^zq(_Rh@1XQ~mD|*r7T71!H)zp%q2r2Q+D+y)J+ll_ zBro&cPiDR$Fk4#I4($3c&B~qAz}J$Hj9V6epB}=xV<#G2E?2(olO2P}xK1ukqp9K( zThn}9kDaf2I?ecHEHUlvwN*erQPr8n&4yS7XIecMv4)#2)D8Mu$L8eg=g6v@RqD?! zkFA!BO8)Oo35pi)8)=N3`A|9~4B|xbOidJ2FGr?=un1yIqfp#d2Cam&{#hdW_@=rp zo|8d41b-g>iOOT0NHMVtp60I6J993*BliCuOXFe$Dn*g z-mL63trF$=Qk0I+o`&9?mp(+iXPy;Lv9HuYOX1XnIc3QS?_A>c5P-DxB5d*Gw9tYW zz;0`1-@(l)SD(L0!<7OR~sOWxMGqk(|}90N(A9W?jA< z`h`}lo|~Q@W(p@W6OrV)Q&d@(kBR-#G0_~HF2ggQDz!jZ3?-K%*)p?so4sp_eHe|N z%S>D~P*po~f{87n7fMyC7nho*n-(+|B)_|Di#Bz}ps#@| z@II7(pafDavxG$ztD6+n;+Jm=%{Z!+@Fv&wGZd3076+}kyn1LI46Pzfp4(5ZI1m-9 zTAf^*h~jpg>1}a7>{dCTm#XN5iBW$}TkxjOGV(q)Kq2e8gIa#yOp!Rt4gYOni89eV zOzhh6j`Lc{5!nL0AQ+X<#G78%lr~xiu?z9ic_a*a3lIjUmf#mGpAb^-ZRyX+Ebw2) zF5D=*yigv$#uZex2vn<+BVK+oXfjUi3yHdZ7|@R5bU;#`6hr}S3Ut{lXRy~n6eRZa z%d2O;a`kl3lta=nl$>Krw%%IN*fD*PNO1kpTPOqziJxzj92ESP-AzHh${uEAn34BD z=g}=>3o-u!R;|?zP(E9`@$~G0Dfw>>=~sIgFs}c$(Z~TJ1QMmd$Qa34Hz3$8v ztlX6nK`$nF%-aS|u?Q%7g$zPXF#R(d2ht+zwj7cZ6Ko6Oc_N&dl)gTMkYXhbHsmDs^1fY?!TA2TV)T~_^nzd5>!W5uQt-KO{ug_U^ z^BITy61ha5jmJ_m9T~of*v!`m2c*QOi2i}qaU1MhlCp$IbS8mO5wot-@hLa znIfaG+WeEYCD#e8V^U*)d+ObjQ&k2UUD?%lkG}j~Oek1%0mP8IULHPmkud5Jn{A>- zqL8^N8-)mUn`5Z#8Ei=QOtfM08qD}^$dBQ4L3*_5Vd7j{>wl^x^Mw(E>ow5(=5L=3 zs(@2nQ)P7Q@OzR(q`}hB;l$~^T6L?TPAUx3&wY8H`pXYJAVB&5Z4X0KMPAhj(QYuX zYFq^g#R-ufQOC=9K_bDb^d;QtbWyjkzavv;?R8i9F1-ouqTr+ZO70lP;f*R~$W-hS_gFn&@QT zS(^{x^T`fcFQ}f)nF3w27u}-Lx|;xOIeY1lHV{TMg29=UO$3UGAkHk^$YmO&Lma$w zZPYu3`u+@EHGOY+N6)nOo$M215hxSK%xOIr}~Wn&4*EKIq*GW^z3}XVkYd zlwUdwLo1)uUietX8@@P1?4jY71uIC%%y(L9^a76MvP=0nZYQ50<#NgkcS-I>TcbMMd z1ey4~6NWBGy!eEmYscJf;%w=O~l+(W8y@Y^)1sI&^udvM1&N8WQGYaT@-O zR$v|gboY=A@px2t3}K`B@Jl`>z7vE!v23!BS~Bx}L|KrQTe>Vg8F^XrxKl&xXOYqG z8_||b!$lp>-hKRE(0ftx{A!n#OlR}v zEtAu=gAqC>{$F4nG*?Hi!eOI*TZ`sqOVXynW_#Wma0RlT+>ws+Db$#2>lZQX@gRK% zMSbZ5CxAno#fCi8k0x_g+N;?KZYBJaH5nlh1@TGEmOeAz=*y$y0;5EHc6#V}$343dWYyelmOW)Lytu zi*Xg`cx|%2s=ssN>7`@spV!~a$!!R9zB*W}Qu6fbDWw1BhXgR181x-flF@P3145#J zLl-)vi*d>4m+rqt&?w3D>ei2T*&sU)hOEb36RT-o4!8Nw1R0*4%iGwVfmt3#-!x5g>!f<9b~UV_)}_K+y@s=M)9V@)Zp6Jzy#A9MdM?JobMcBsfm&`} zrcHCcVdoNXzc~?jVo@#q5mXh0k%#6v?T0hb%05QYef`&5UcLyXR2pI>+d?%JJ$?Pn zcPYTk;1P?<>6Hs=1$4lW>ej9m`x2H!0P$G@a-J`TR$Jf7>m+unTqY{)*`oNifHeZh4S3bWVF!Rz1M6cQ&CWdB6Up7bd0 ztnO`z(;kh(?;UNmKbQpAc<0-@yO~}OaqC(W)OdM9PSk`yb++w28%y#)P#DEs0VG5W zLqfzy!NDw_#Jo4sf{&@+Z+$^GH!;k6ezTA+VRtlUC8!*)4KKJayfzPLurTQO#EMiwG9w69UbBhw`~VF&%T@RD=in^xlq5#g9w!I@%wV zf#cfYW4GklBxkGB=u@$AzSp?v**k(Yr}U${{OOz^=^_g+;S!rTdQXNYz_>ct%Jl`9{vEwMmhP zrHpEiDRSO;z;mxAHQ}A4W>Vo^@ux0-p}O)j@6U0+37T^wT_}EO>qNbBYmeP$a6FO3 zq_&~r$pB0fg7}sXe7alYb3@&7`6-{W_>4`Jr#e%CG%^9H<4YZ{tDRZ#Og*>e zolAa%@>wkZXwH=W1AZu&*(0 zos(rK)<=kC=u7aN&7$Y##I7<=`!va{*-Vr+KNpkP1)_P1JHq|n(Ux{x`#HEKK8T~M z`B}wCnXj7rqf8sMG~a?73~ScC`J_9yEpvcqeQ%Y;D-${Rzrf{8nd=vlqN*q@;=Di1 zKhzz%ZPRn#G@-m<1QR_{RMRD$Q99XD(awIjbNREa`nPAf9Pd;L9=Y*2b5qJEZP0lO z(?63VtGBeVT9>jqn3Pd~i%P|hFG%&6y-{MP%Pow>He3XAhqrG$0U$X7LMv&bn46jc zTW$cKNk8RsIeAS6t8&flbH+}gtxP;nO`w^bLxqhS)|J%M zT_-nly8fGzu4l7jG)MKS-`KE}yr^C#c(?zZ2T)Q}0l{W) z#YiOtsvr;fD;$wb4Fg&Zc7j&BoqX8I!OBhOVpr+_RP0-_{XX@5|K9Y%WE1K~Di3}; zc<|u!q1T^~-^hXBBbQXY=`e9A+Nh)zZdsu(Tp-qT1U>;47rur#&dcKm6{}9AeG{lJ z{Us_#Tp*zN`h?&3RpGqAkw=)=3wGlB^zZ$@@}eWcOh_uIkC$TZTtaoj4CB&ZQ*o*+S1(FA-6&1<|m`Wh!e zplSQb#Pjwh8ZPsoYAXQ6r|<;T!la9Cf+B6Cp`^&e{;d5yV)Wy$uVaAQ=k1OJoLaR@ z<%b9nM6S^NUmJesIRxerz%3L#gXu-AG-N-)%8A~{R25N*JC{d5ssHyw`p$q~+Bq@F z0)1pYIOq2^KS)3y`RP1AHjK$*z6b{}9#I&kp(#V|@yYver_}a*&-rEuKne@_DgIqU z&X5DFI>uS_AQhN}hF>8)L=!iA1vBvxfh``D+Au2VQI!yB5{Qh41SwiFBQMrD`1x+e z)^S8@dB^B8;#Pm}Mi#%fWlsjazP`Rq#_I9S^Y1G`X3q@p0z3}S9ErV6NVM&FvQIQv zg?A;2@lmw_Gz|v^EVNubPQZ^~)jn?6DL$HI{Io)OF+#DT^`cYH7{uOOT$->`Q^ zhyh9?bTq|hh194$R zW(YjE3+hM4f5o=Y*A9ZJo(QqvIruC|h^FR1>H+gq8->VGv-vbP7twHQ#&?{n;b~_s zA=)gfyZiIY8ysY@OvR9T<$jD80KW4d%i&A}8~jaVX+)BR`YXiS=uZ^a*5YLgK~G&) zZsVq&%~U6TDmybpQ1d*(QB5De8SwzBXx)=Jm!|r;WzeR&e{E-r@{XKf%%}Iqj_j|= zE|fj#g$Pgtl!dJEg0BG>&f)-C`iak#;uyG-&U)~;o9xXUSHgz#>J&Fs678_(&V08i zBIo=O|MznRS@|tLu%(|8ku45+`T<M~Q@a}e)z1cj&j+(i73Z$e+=0#m=fBm`BkPb?6U z9DC@aKw%+|ksg4mjh$w`{$OPjE<6vgbGWfuw@3`mI{d7MG6Ew|=c-dJiw?+ebl*Nv z`iDA?*vYKIfymqx`&MhXfa}Om;H`FdMM@5SzHa%A-a&V-dh0gIRJk52<7`vB)>h@@BR4Ww1^4uW}S!O zUF_gpW@+tz<&hKUC5_|4Lr-21Y(JWK!2xGNu!|V9c-PM)hqv^x#+vk;=l{s!B0u$> znt=N;?{DSnm0mhA1nf$T6mze3ztSZB73{_P_7Z}fT`0nK#Nq+7m;e^YaaSBDDV(&MA|!3Bx@|!;+?eV&B8D3 zo*(9Z_=Mp6p92MN^ON1{>ORX7LLLBePZ=r~5~FxYDhEv+zP+_Q{_P3eO?cx@rhknH z#@rEy{87E04PJ=Fqn}g5rRo5ynR1wT8BK8pF5yLhQf2jj1b5l#Lqs-&3%`s=Q2q94 za3d#E+>tA$7s8#`dB5-F{w2?_eZqymd3jS)ry1ev`^^_A`Y~qybNsz9Gl-)-MsNsz zf(R}}Zeror5Rjnk77!;AAsI`gvEN7h^K}+roFOEz@V(y1qJYj%%%1?k6r6<2LXn~@ z&6&SHeu5BY(U`5Iw>Wq3oA||mm72p2i%&N9QE-NObusG!4x_8qZJE_OWXSZn??Wg( z{4oyU6XAKl?JKio-VC#v8v9Y=VXWIz}~HUI#{t<4YOVEI5+gMsAGf9U@K)bW2b zoOe5&m8KwOqY#8RAtK#>A?A!x@Nzf|=27=h&eT>-xj4w9Q~d1b?j-u3r|vWI^&>(4 zZ2ZB)B1G^K1ASJI83WrXi5kXn&#ZbC` zRAeA7sHQ$4;hc+?@)T#)89jsAmHE@qI9l>TrLl`SIC>u9c9@mNRo0rr)yYQ{*^fC3j^b06vBmoWW>?3 zRx7cCcm7IyK2rO`vI_voS?XixYlq<+It2(y9g@QgnnK-I__TZoKY}|Z6toH_qLB`P z%GWN zQ>@(e(7%PyGZrY|420KX9ZFgOseR)4^Eo!9zqd9Vdr&vI`di&(6{+OBtDG$JCv?32 z6^0h>NBnF-me$W73HGr-Z~>56e}UJ3MPd(lJHn~|U_ZeHKKCMg-Pa;>Gh%X8qWv)C9{Ra!s#{5Dx;9n(R za43x|URPTj;kWJ~?pRN@Fw>b3{-;}Q_J4Q1H>L597&qg|k9IoSX9*4vMvW}Gp9D-sv1WrsaO9;0> zQrWy2BPn|KOIy~_K_Ci@VP7(HV^#!7swy8^4ksx_Y4fsy)>#}cL0gVzuLJ1P@pJMPnX9-h#e)_qWquO z$O{7r*}ncNCnBP^-!N!70oDzDpU{b4Krj(iiskV}x_4iX=?(=l!_%i5yS@3pFEj+h8$6LxC_}uESaXbFGv;r zb9c9}{g0133};^4s~MEUF|EigEZ=g3Vmb*N;V@7+I$?s*)rF$Blz0DA88|>l&PoqQ zouUnCB^j8_(4mgP=at(G3N8bCHXhO;{~^;qN~M3c+VL_t2{MZjh!IK=T}4_-It=LO z{Iz4V@KwJkP!syQghmh~9N)?M6TV@Hkn2Yc-q8J3YZrxu8gid^C$7VN-nkzt*nEEF zi-VE`l9E`B6KMT47G&#RgFy?N1-s;dj1{X8Rgb2Cyu1kLMDc;tXXMl3n*>O(?QHvA zkzVMx4Bnspl!Ws)M*!+>2T(F_7z9|*5vSoYzxzlDsy}}Z4Zj~8IM9DZQ-iJJjh;~x zvr!lBr?fDavvYp1qzf$h4YTQo|GpUdG|G+xuZW-ieN2!)O@2S2OYDegr2TeE(!CTf z;c~8dQ^KhAuhKg#{B(39OpR4GG&FQ%WYx)BsbofhZ!kTI0To_wfG~Q9u1;qh+K*=8 zUz-x`{=2Gw46_>91l|ja4>4rmasCJd{y8kyjzaQsw^E3UP#US{yAu|TBOYfT`USLR zvB{QDA)siZJvuuqjF0~{drTiJ@=e~fjf4Ld#;xSx($=eWEgH0e?}tI6SY%8Pps%kB zF;pVF>VM9s_XNqGP`6HiU*t_tIKgRYv@k43svNmT-I-7Q%z8y8M1!VdR}c}3fB!HC zqVe2)HKQ*GU-?q`ioVQ$j0&9N>kD4{3cG(ca~C#q`3$W#ieMZJVUw9mR-z|N z$E#}wI&1CD-b)ZjorHJ(N*tFzCxe6>9LoGi*nw0zz*R=7GZjPJ!Wz+M&h_c-)=_f@BWDcw^9C z7lN(#K{_~t)m|;UAop@Y%uYXA(i!-+iHL?(2qZxxz)ZwJPz*+O>%R{1 z6TP>ptRPGg_<94GbU>Jc^lRJ&n$xL>EhN4IxDjXI`kAPtg~9rSZIyogy(%}rwJR0+ zvHWKz;P^Td+Th~zt>c(PLG)SP#iq>WN^C0&1qWON{F8ot|5?HPe|&%1yOdRDXwF^O ze;C$}3f3=%_(|&j_)YlQr~0V;jXoQ)=QUl|``6ajqRCWt63?;Ch0yNC#H{aoq0)I+LF( zOwi+pir^K;0hlXk4r5n~j(U9hsY;xSbnQWC;ep1=?!F8FXcI_O)%99qw_z5krF=NE zt?0-dnPtEl#Gm^0=`jA|7w$NOLL`5f_Sf>0Jz;=CDsj|*K z^Lm5jzSrDbtjS8>yk#w@bEgEUj);?AK1*&E8BYnp+t*m$2d3 z!Fyk&59!3JXYl>U%UvXHYUY!W|FzP-;k5QeF=+K0CC%0&%qH@4A(w@`m7BM3h9J}E zUTngYB_jkdbkxJn(=C(UEaztVQVU}uaGM8yErmZ2MyQWg9{Vih*oxX_i%x(o_9I*h zQBbe2_Gp;3v#sBp!bPcw3Os-9e@4*!ulp-|br}#HN1IM9Gs7rzse}4DQ9sVJ!8M}&7R=i&B zlc5?pxe)u`1@ohuEkwmIy(7v{BmlLOu>8m%m_vRXQJ8GfK6xzyet1#K8eD^++;Q&<5C^`lc7RemI<`V$cZ1K^Q;R-n-*kK&5a8(>B>caT1 zkG=jCbqlsrfJo*yu}&n+2l(#rJs4amCN}13y7CPtw>7@iUy%R`E7j^J$JSU9odTr! zGS3F3$LBWeZoQr#2#iJufuU1gwul%+C-6`FyZoV^BKr$AbEH=&pZpvmThIl%3+6Ce zQX$=qGatPC36o{R-JfyOg^!+5%MFv5fz+a<<27&IFW;T-!5_*VW~?-szasUMayd}# z9&5D?)D5~P6;zfsLGa+XBwOkNqNJfjAml_*`Okn0#OHk=%-#4JWYlkrjaJ~C17;V; z;~DpzTU|l8m_xn}6j=n|Q;$BJCpDuYef)@e__-`);7zK)UW6g(w;}Ag<%o2mjxydF zl!m0&IzSH@eA)$^q7S|8b?aj_k$D`$$b@y4SK7bi0~v;X(!Jvx20zcr!hLR~`TM0` zKVEksY@L=TF*n&8qDA_1Jiked3jlCxvrq|Wep(JK^yb2KH(!lGt&m=lnXWCGeLeM< zXB$EQ=55^_Tdy}i2ThqULTYTP3RF6-KDF$FSGYuv4LGZ$rgD#MjlE1&wTLG;m{5l# z4A{TQGm~9Iz@g?vpj$`WDnStkXm;^X_AB>nNp_tGjEv6`#dV%=fI*wGdvQNjfq!#5 z0Bs{7f%MB@#2Vv{J1BWvad`ZDTG4MW;ay5NM1tMYw;>W(&0bA(FlT4$>o)Ta@T5~#A5qs$>-#vB+6V2x8-sXgF=J{grO#4 zWfm-3rBi~F8$R9F+aOzwOj+%wJx?N~`RqDwpjB$EsKs+jQ*M|cPpv)YgJ|s$u@U}u zlM?(Lcl|Ylm2;aSu5ya@^>H{vU(QgrLg%6XBuKW%q*24#&rFfBFzBJ4Hs#rt4{}hw zu<0?Sy8WRX?6&6~470V=KNkt5AegV1Rv$xP;dWL+^>$d$YZ$56V&Rd~gkDYMD5s)f z&)P+(W7g7meSL3bKgDQd)+y^a`=JiL=04G`RhYY4y5s?FP|y6q#_Lm}`B4GSd6cj@ zZ(s`R=)gRv_H<7&EQ4pfW16@C*W>6R>p&v~yfttt?V~p{GQK6IxcsMl1%)-mr!m(u zm@r%VFF4ed!L)5k=A(rNWEzn!Hd71Rxd_0uIzMir94`G7cg;vnuqI1uhb!>N+IOn( ziL$!Vo9e?Wy&xge1>g#(WOD6T2s_g;u%fjidZ0{xI%Z3*^u};NE--N zL&tFG2&Ecp7-12D_4^z?-$#B)lj4NCEAwVzN_DS z8$>uxlAN}pYAD@#KYA|5)-^xtD=_Gab8>~}-XY`ZPpiMTT{<1#e8$f3`Ub!=ogAQZ zEmnLGo2h5o*djx(A^H$zZepL<+8q(ZQcC@3JeX~+i`Sn(;U(0*conZjFI7ODTz2w~9VVV&Tr@TByAt}R+%JYa_c z(;4clAk__YzL-_i^>~KR`v*ilPA6V(&?@ncMUnn|VfT16C6o6)6>~2et3t%}nomAt zovQIL?#oAf3K?0)4zpIx!E zS_wImt=O;WE0-8<@v+D_{U5U4IxMR8`yQ4UMNmNn3{=JdX`}@OMwF1Qp+luxN<s_A7Nz7G~nHGk*3ClyPN|X&<+nwLh`|`Wu{m zLHOiv>wQuY9RpnXYb$k7TQ0Apm^@-4>=Af4OQevs2_l$|r%kg%e`(5J02Kwp`d z?7w(OvU6L~W0lMv>saLDlha*GCg}edrFKsEY1>gcAuY`hLkz09G`F((Zq1iJ@g3B; zlEXxk+IF=1Py(7mN0stmffz%c4lPST&3|*ntd2SmIte6E+{=~=?F?ev&X?THFF;x(4Q}BctH@%B; z_Fz~xkt~V%%mhvCCd>P3Z}X)S-02-;sJY22dr+xFhJbZq+umI3s#fi}?e->h=cd(z zfBR2Ibr#3V=6qT=m;CXCmJvNlI?JcK$aLl0B+;B&hKc>9Ug-tduhZ|ecQcr?cc?pW zJhgI9Vt#|-EP0GF#S8Y|d~j0g*_h8x;8mt9n|a>C$ylEuL_^DLP?iZ_#uBL~l_uUo zEwpn@Mw>f%|Ay;r-^iFWizC*}ZM3zUX7OgOYdf^Mn-qs1dOm0sPeNlb3dRn@4D zxs({^Ha}ES-Vc?JkI#PFV@kbuvMK7d+mttM@_`YNoZqJ;H!R({*E&A=vHYNZlVnpn zt^Af*nD<(;yE8UwyyCC{NRv~ceSiOhVIilkH_(|N=jSfU7+cMgkBJRwDaM|^KJAdX zF})q&lR4k8_4Xi4{PYa`6b1d-n9UR3isH8GUe@dJw`F&IpWkK=ob!Ofu15CLx<3nK zypnY=6A!4Nc6CNu+T)~1e_C$QrJ4i{)Pn;j^=1-QHpDW=>p8Ove7dG1^d_`YXNyOl zO@L@b!LZi&bAODaVA}%Xm~+h6ywd%;C?$ZoW8vi8ky zDu3?2;#P^)l~+D3^6NDg?Wa{OIiqEQn^BMOA8k#~qG{6R_sBoLydamg&T*GXlCr@q zI_!8BRI*($!6&x!uIjZXhdCr{-Xe>ryzZXc$}_CmU*r%=L-hA}OYHuR-gRWx^q3S% z-F|dwWcPB_z0!&VQ>RgytCNUj%}kg5CezR7k>1*LXyxKPY7Z8Fr| zV5%mnTB(YI-k9X_YWf3X`au)1>#0h0hT&tUCVABe{0f7z8!yxJu5Y|V&FgZZ7dH}r z%9H6=B;ypw0{bMlf6*o+IqLPL;RU)2=rt9j0-9(O>Cw}o+moAzMYdXYzkW7j+M*&s zOw>h1N*#^HML5i}VNa!zUq|{MyyV*c_ENP#&pcuf6?G%Y6}E8xXgGag&??PIYQ6rf z^ikz|l}`V;Rx+>bcHhSAMw|O^B%oHSoNtR&tH)%9qF&h8oTdI_IL9DYxfYF2>l|b zCp~=#e(k#Y2Q6zZ*GTG98nS+#ow%Drz4vD4WigBkNk2cac|qp#{BZKs2M1QZ+fPSV ziiDQggZNy&!r_2SRrKf{)4osFPlwvvYX+Pyx_@maHQ||cZlgL=y$ySU@^ww5QoYm7 z7shFBu%C zC#Uw9dQZK@nL~PtWv-e}Ym$z1$c{m!wbE+Wqp+%`8HPjb`(}D_6SgdK9%r`uX0-9Z zw8m*(F}+Q+zI}Zj^migg8;;<(!Bbx;P;t}ouPh4Ri1XJhSDCwgA1T&7;M^k4?JYt7 zFzpt9kEXl!R9p~F@|(dkl2fJ$MgKI7?Tj&7+=p6jZj%;#B*FO;B^A9Gi*V0!Y5+fZ z9*$Sx0-8{>+)(+E8AYupoQA1INmdKztgfm!4XPG)Kn3rfx7y&5=746Vg_E(iYYW&d z=0iR^Ui$7yt@048Nw#LSliz{i>s1;nEb0Vb+q5#%8-J_8P9l3m%4Xb9LoWH%S=VUc z^lonz9;$`cPdKQSuI}?vUTsTzNxiEKj#bRaO&Z)=08ZL+@f{vD{UZJ%aA}lt+ar^Op&fyBZs*16V_hBI%mWu&2vr)-8shUi} zw&88&>)sljIDB70k!E~yc@lkC8j6B{mMmGdDbOu&F8-%t!#Z`-)ryuvE5eskmsMwm z^meCtbruZ!4&(RM9-oH$D{08VjXYg)PKr!7$3M4cL;Xi093Ks#hC-2Z8Z)Mi>hr9_ zvi}YxG&R`{d|?>-SdE1-PrjT+;x`@p?(5XtH`(yU6R&OkD( zv`#QsZ|@B*odBW8+UTC}c>#GfhL^3IlbV$ah2R1AvZc05s1hUn*-%>E zYa>|%Cpqk=CZLy8%bLBN;i~LwFigZrciP{(Q;~c@uG4ld&t7{WUJwKo=Q>0Hm`QFE4RhQ6qyoU$zjE{r&7(aJZaWV*l$GI)|V>WuGmZ8 z9-eIkMDOqnG1v)ah&#LE{qCz$!P-@(631j+-PU$%jcyRK63W|ZgXVEsb2NF(Rs8=XTM_!mKEiHGyi$qaIX!6*kN4f$g&oMp^cK#sR&_P3!}z7o=rvnx0K_u& z?vzAJq+5$EmklJ}R`xOii_cCvT4DpZl;iuC>dRBgls)3DjQQOhg1P~%inHuh3MPhr)YqX!^y}BXlZS&CioecYtlv z>`kDuVX%JeG?X0vV-u~T{J-{$R0R+uEoB~JC@2?DW`$IBRJF%1MBGaZyJ~%XoHfe! zmdEW6WP6Tc+gs@@6EOo6{5wnP(f9BK6)0NtcQyp|KI{aFKQ4c9TwEgNIc9(oHlem1 zn-WHAQn$nQ!n2TDxRxtq>XTKYAT6PzacZxL9q6ZQ-mcLu9-gtYu)za_cZqx0$+~!Hx z5F$wOVnWGXiGTh4f}*P7-zLAX8AL;QHP1Rs?+~ujU2Ivw3y3T~c5mRl)zEzI3u9ud z{xzp@#+az#?>Q9F758dSKlto#1u-aLB+GI3$$<}dA^d;<(neihX>*V6ivDLv$tC$J z?{0Zw_lFCR-oZX+-G{5}8#he5c1xA2<4T;?>0@NNCt07!{u{R6pAr=?J72qm+{isk zWon^#`?C+gC$=he{jP<*p@a#0LrhK~8ENDZKDrxLX8TzEc+ewz*BGMLomdpO_txG` z`sdaB-zTcmm}MO*E*|MPWpZx@T^6Pl*c?`G?*d{^+6K%5D)p4Y_6dG}7i!A%+K)V5 ztZ0QvkE+!F=Y41BZg-l5YNlRmJ!uadw-{gM8xIW4uVcQX-^Vmkmfo4Q)&hy8{`6m? zHBlhGR>}AM^xzee11*ZYb8{hDiBBdNvxOQ^Z^%h$fQj(Qx<&jfeZ;VX3sOiY;EWLh zDn_swGod5x){xk#docEepTyTj0-7M4Nf31T0(6Hz&BxqA87%Ac7{5P!>4w-d3^{7E zy!NB!i-S0p+j$973!rO!Q|!(UOVG&OlMl)s(!Z$YruWh>vZ6<^qz#K9=gNLM`M#Bt z(v!@Gm!F(}D7clJ(lovfzmDOXhxr~th$$=EkYJxl1O*TLJw|4ke;wQ9H-p+754|a} zleIlP08!14RGR9u*HOAhztS5kV6=wos>>>dE<=X$p8@r=Mj2qfEYw@G5HFLr(P-w; z!qQk;eEIPF{r$ED#u36VcOcMhGUT;txCk;TLQInYm77DDQgoxGMRLa$co|k80XFol zRQ)0x`vr)f*#tvp2ZV0{0RXPvGOJa3Lr^|)WwyUxyb~c_f_=_eR-~7vWfxnRjmX5A z_Z8Y$RBWy23jk^1(u5~>hFgV)rKcWafBe-wi(9M1Q9v^60p_JhQc&-=jmWd^UZ98B z6%q7r{Gs|AO2?>9-w)$NxoH+QuH|_M$711qc6wS#WYDzKW%}jn5J+=`xP#l&2!^=@ zcnQ`XO;#z<=7^XmM0#DA8dGQUTO=l+n}t4F7ZWSzL9l{*E^Vvn%d?Xk``L`1|94WRD`$F)hK@&h?dc;>sl`V$~tlbn{8R-Nxq zxpl`Ge*E2}TaGef7;nJ=bn0_{a;9=c!Av?`#J#*;^Jo{e@_(;}z8}fh_Xu4#$ZoagRIs zzKxTrBZ)cEOm*K&5wPO~Tq`Swu;PY3Tg!KPhk%D=gB&4udd-e(SO|H^TnV@FW*e&z z_TId^2$HZ-TA6wgO~U<+S`SN-9}8%QCbia<|G@Jj##v_EIvo7L6>gw|I2PkE8Y~it zBd zYK}sKJfJP3=Aj-}gZA-3227=si7Q!zsOA^$FV#(d5gfgMk`YI6iE5+ebQ__otb|u8 z5~3mp#QU>@2qG(kZpO}2@elfJ=#4l+oKL@I#<9y?1}z@v(+OGHs`&9xp3j;&Yrx1p zx8RjbAX(ZS>gXT5eTAOFt58(0p7NuXxB3;W2NPpMjU7Vb2saPd^djx}s>G$(;jyR8IpF<;(x=sq5Thyf^0$XTB1r-KM zJkhukQki}@_1<`u{iahHa#j*JB#!^RGk{S9@x6w1rVnec*f5x|&$>^p#5U}&1@O{J zz-6jcRb1=BJAn53tyzl{^K>xDxQXf`#42L0ir}zKuRHVcDfg8N}Tw zH*DZb`NLx0Gx7oUzD)QLvEBd>wWUhmK4EN$mCr??S=Z#PAxn}$H#J26Fdx=ky|qd8 z`O1frS@CC1F^q>;YvO<^T)PULpvGE?vd+FLtY*{?w;wF+Ezc`>&o{h#rJ6iXs#A?K zvq0T`=K|`6UQk+c(o?bC_Sw~Om0r&5_qRU116g(ElJVdw_RPeV<59vNwF&B9kmznp^km8XQ5~V=h}M^vJ+bUl>O>bp{;sTHo6~fiKvrKBlhn=aI|M@s$*%N z_!E+Q0@DTeU01$EONPb;Z^}bwVc5gd9&5`&i|vcQ1`T){RUMofCsgR1ymY7WQZYbG z;~(=NeiU|2If6f_TAUhXTB;hVr`LS+@=ZeJqXQ>Zm;2$mi{5Zb^6Cm&LliH|TcEO; zL-WPar>cjK3#0oHneMBQ@HwN6n%y_LR}@F3tV4?Q`fS zs|H<}Zk=H6nlI^fr9Q?(XhitCPyai+rmM8#^i~)~O2UwZ4~XpshuM`T2d^V^D9+}A z-Rn0uemtqDN#U&QbF1{fer9(Rg*1g{Hgb%$U=8FqL5^OHRPN3WH4RdM1b`H_PFh#TiXI|L+%y= zrnPh%EP;+Q2{v50PbVxMl%4t8@I-wW(ZR)rsdjGIA#=oFQZ&}ktr3sE~AtK0_reaCY5{^KFe&R4L7UPf^9Hi7CVt}I(B57?f4 zzrJ5n5+}_1tpNHvCcNCe=dt?{>RK_EsT+Vn#F)1b7F{1t00q#3Lf+?16#=ui_6)J@ zD~b8Tex#L=dwmiZp0&}8u?wdKE>o%_TR$=_V;H09o>b3K39yP(mJ@kiSEhddPxD7C zVQf8CgXv09!ZM-Qtdj9(os_0exZj2EU#3SBmA>ldNY1&JX7x#YKLyrPv?#EOpD2e& zT{^k%0)&kQT&v&HpiI|)!li2eIw#EfQ_y|^xcqJJfN{+(Q~@bre~wa&0vQzeGImPKPXjN3sdlq6uNE<2Ht+F1a^fF#Ar6p|E(DQY7aV@-%HZ-y1NA zxulAt+J|+#W4%`RV&Ud^BAa>~;Voep%|!P!akOJy!LnThPJJS6~Sp$j30#r7HSD73rcz zA9<$toMXC9bu4zN%WzBejX%HHCq=_;3eco9n&Owsb{Di(8_vt=~8ds6`D8kgn} zV`QWi|Eo(tuuC~wtam)L@8J&Evjq*@TU(>nU+aPD`qyu&&4bMuW)YivUiSmFw6scP?@rjtvCrtwb(8+FTJ zm=?ds5*K%h3S&0%H#~w*eX=9z0|xlDl%~fbEQ2D%;FTRp>=e{zb0#8fj&IQ^MvHaE z=#>EBFq~Z@Ib3AelK}jp^NpFsjQ>1A_;i8N^gSijISpuh#G*{L4LS$$W1<`?dR=BZ z>I`68nrD}<@ShZOxj?b!fZ!`uC4AN4Vial9O_ktb8-eD#gfr0dun5x=@hEU1&J)0^ zfgIzz0ybS-gfce=0sDcAP@{uN0DObi)lrK7jt|+f`Ca67Fh&X!@7um}fNR}@9E7Lb z#|{$8J=_Q#9oLq1LbE)fKFOaU@XMen_O)I6`Bi486(H$jFc@{==kMv7kZFqx!;&Z) z{+(3JS-0f#A@x)`pKuWg>;f5lFm{o)L6ICVcA84(1K4FhV4u5!ISi?)lpqs)%XynxiFlNBa5rOjksWiO_%|}tsLh#N z@QiXqeFC3(?)x_yWRweF^#3wP;}oGorp-*{S*joGnzLte@67f^fIWsJGrpY3r56A1 zF9?D`IvPyUI6vS1H3*iyAnx?N z)j7K_!A!EtI`lmQhyOLp?gZsFe7W4#zyV>S^h3Dkq}vdq z3j=J%=Xj7j_wY}OJSXzG-}~7_gj(!A<{;V1snO+sCjbT#;`h?wIu#-((W?3|WPSIX zijGpNiZgz?9L4qMT}WQ?GTJAUd$3zdj$fW9j|i zN700^aC-z!f$Y-1?&!jrZ1~6}@I?@odXl4-z-88zQw=}I1R&w;??B%|L+b;s$I(z} z!Y3`VkHfhDP-l}Ui@o55Qv4K#~Do* zN0pwyNa>mLkB+up52e_>FDJeS^26*fGRrz&jH!c2jTj2Jtd9FOpFNoB2hZ%ME0H!q zmUoeZG2!NDj_C$HaGwvVoK7lK5q)G52RU{1l;gX4a+0Y#+mG)CD7SPs&%! zoiHfOp!zC6`?s!1D*}@zuve&H!!goE#}H^^5torU9%)O^a7Ag#znXQjOV{IMQ7;? zJ)&rJKSwSEGn-C!rpWS*ud%o=$vuXzIWEF-8RU5WJm#kehp*Ya^<$p?$T4@>U3Xrr z(?r*Y;wW(O{vM#eV3R!=e$#rEvL4tToU)H>Zm~m@oGT?z`JZcp##zC1D5^*Xs1$zy zEcS-%1&DKPsN{Cx)6%TGKh`L$LWh=hs99f}{`+Q_L@9WRUYX-+{r}Dkaf+mST;k4k za(~(gt(AKPU5hjq=r^$%EG;C?`|Q|E0IvnqIPw}5UB!0K;A;@03W)ekb)nPYS~8IF z{HOUC4rH$Qf`yJqI`K>7xh^F%Gz+lLb9MH$oWABW;J_~V;obI$}-~~+}m8sUIgnMpKAT-#q^g7?~Aczeo1ErxU=<KmqY3pV7*0_31KH34$%sGKCX$$qgx--@P$R@}2;YeK&-%9>vFLdkcIx2k z)t{JPl0QIhL9;-VZQi4{qXh#C2(I(cp`2MBqvhZjqy2)!1bMA#ZDodd@klNgq@2Oc zDi=yivLbyk+^Cm~I0QBq-lc}5iR(h(bT&4>AR{Z1C^?3^+6V;&UYAt^0m~j}%lt53 zn>F^gvv)Z`*b*uCkx`BmWa7Uk>kVP=p53PQ7eG?v4G{`*Ho|V#+^_alLID$&I$dvX zv50*>Z7lphYqOqb-`W2hcRf@v9*Bq22%&nLErhe`49Gw~!=>NK*ZbY;t!TIlaD(}c zlD||#<@!>$0dZ!ZWL(k18hGt&t(qAQPd%YWBb3Mz`_y{tsn&S+rUF|>Bzr>d*0jTb zajL)KohLk{shK14)*3GwKr++{#=PwF4+~jLSVs}J$=02yMGf(=+(#D0fA$9Kl5=wC z>tqp9M^AcAgpt{U&olvXh<8=tec*&2Sp@nD zzO3cJJg71Y6l?)RvK;|=^ad2XdO%6@2X#D;VQEjrltkaEJX2S?Pt_~5D=Z-ghxsI> zpA7O0)_wX-ScmDzD*?MZxm?7)-aq`K$55jZuHAz(cKdgmQim2~wsNFr+?r3&IJdK$ z?Gs^>UH)za&)#bl;8V!#v)P8E9jsgp!c%JAp5*9SaJ7d`{4Vf(VC00RvrZ~F^+x8P zRFpSd0VO+aJ9~k0XO86PYzQ??A~9wA_rGNHb&pH}_hGU(-a!j7ISCkG3YqMTr|sac zEFb0lj|utt`UjLL^{oO^zGkJbFUWa>iW1w6oro}2eOrb82v04)e>l|(wvahe{q0U2 zgzGJ@@>Z5Z6+9$ZYqe4cj$jX+atbS>HRS5$d;R3>?E;X(xk;#dOyVueGwS*Up{?d( zBvR|(wfU=N!k6MeYHtYJMLqClX1Ad7t1{EBKs%s_%m%!%`6)piLH`Dv{>u5)5 z>KJ`&J@hb`#36Bsoc(v6gCKQ;eR>1=8 zT^jH2F{)~VP+4S|vI1YH_Mma5&c&p|XAOnAa&CTVtbK9TW}(#b`ZRdis{`eld`V~y zTVQ;y>TWe}AU^qHvC29@}#}ayEZQYdA+_3XrBq^;I|&C+HV&*m)Or^V5TYlUKYrPkVZCyKkbnlM6%~$a;5kS zc2e2nj^6Oofl}*8bjuE67GfR|S>2P~kZ2MG(T2;bYS@%52nnprdoM?BZ^M^*f66v2 z78G?ur3?ZWT0M0ERDdVu3V{<9SrxFSzmii`y;|==EzR6PprO>gI^R8pMF<#?(FK#@MHif8SawIac;V``;S0l`3QS!i%)a8IA zN6Y@0UAV8}YS*QBBEi$@fS{YV^vyTvoO^5Q-7gg<-z3+3F7z~J&wo4*Iln|oQ*h%7 z&vW2WoYe=!msAtHpkjwvM9at?Q$1yOxNgF++J-{f(c=}#_1xIoaBt!V9zE2v?@iav z9#~xVh&3Keq-MoFD`Ctyq(QZW1imV=H>{4O3>TjVI;;t5Nc8&v$J9P!v%;>dP$7Qh4ZU_Yow!KO#7>*XlA6Z zVv8o~jSX^z3@S7WaYuA63|aj~T@w$W}oi~Ektx8>pWv%X z8+xeKHZiEP8XQK82l;5jlC3W5UlLX(8^CtG=$5WWX-ecM^j8pNxKj>SgBfjA_FE0Q z;|3FYQ!>D|43xSU=xI;bR%fs>qvi3ZftVj=Jgo3w+`SCpX9FnGZ8mcj7vkGU8_QEN zc1Qp;a89%$7&c@b)eQ`9z-{|lqEzdN?+*a(TI|NWw~3RJ;w);N>UeVv!p&Xwm4e;R z5n?}r?v{8H8%}^g_DzV3wTxA`L1mIYjgvN=o1kl&QGH0kE-`y+z`v=e{s_)WMHpL< zcFP{7y1*lUT2OWN(h9tWNwh@E`cZOO7SR4$s}9_p(@qz~k4aFPhNk|Cs6{vg;7iU{ zW{8&XJ2{>D8;?b1084%DG@2lR)muoWlU6#f;|;O9CYiY~$(bkABAYpBeZICppXBSi zJyZxq>*|oCFz&G}mX}0)Ed9Pgh^hZ(LgwR5HH0GditGoUPDo|8-lXVMT!uSlh^tW@ zw+a{a`6ccxmN5J`4I$$k2AbM}4$V;8s{LCuuIFZa70-K!xmD5vAHjIPgztx)y;GIy zmWQP?#k(utGvLx}wW6rC@`$J3kz9lz3eZ7*ovQZFp&X(Vk7vb-lxW#uk~fOwPj2Zl zm2NQD%!&5hFbXxc#s~F5*7}0EaaZ? zh&1m(-ZE1eEZoPo+VdMO2HkyOdd*#UYks%B6rM9^PKm3UxInLf5(y_V?DJ)CWT%St z0&is@CY@MkfG^hq`v@6nb5;E?hsg8(pu%R)d35}+Pkb9CuV|#0&y0P!u^5{`Er5+g z=>z&2#Z4>zKPs8Y=EyWa!y-s(Qtv4DsucIUOT!Vf#H+gyYr#p!O&IrAiEJ8V~WB0l>-cvm;B-;>3KP6`2 zP%?cH7%ptQRPT`qpW* zYbh2%v27n?sq8zlHLfs35=YsV-&>RO?-1eQcN}VUCMb#6X>G|uqqJtC$2Ry5{}h?j zUJieT*3!+`PABg);fvxb4fy8*>>?NSE8b(eofb6X0_a5(t@Z-$7N z_<&t5Qy)@dz5BksK%6tkzh~7^yK7ZqFTAmz!9>&#ZAOz-sit#WRltc300nxLC*m({MQz+d4j|A z8Lb1eGNn-w!ab0|_+6*XINAn@0 zsb~JY*DG)GJiRT`+p&>U5RI7aE6h)M&bFL#FN5{{z<(@@GxQHVFh~w@6hc&>woFS} zA?NI%k6BY-VDN`1OaiL{*Rmpmw1G>TbQ8xLf3LRoE3@KYOBKA$Po81d7Md_F2AWdu z{_hF4)JsTiW1jL$O$>6;PLygWVUnW|z$Y0@7u16k4L-Bft@5qp+v?|ik>UswV8|b6 zA^^xbU;(7{#b0EU^030S`W|wUx^(CYa>oO;nuW_yZ)cn%U^ne4TcpxWxQIt)UKeEZB+gv zEymlKOcx0Nf_Wu%c#W(#?n=N9GSv3K9*3!UQ8(CC<3pjXw9nQkG;z}V8fP1hfJLbJ z7{B~;JwEwfhUe9+Ykz?VaC5)x{Va;Mc_Z(x(zR_#?XC%M?GWKN@)T>J>H<|V!l8O# z()$P9Yj`B-@g2YNM%uKS{_LWba;vtL2z?0qxsJ3LYdv!!u*Lc$Iq!BzLQY@)AcfLS zdil^qi^ZPII1w`4BnNbCdfKi|6QS`jbJAm{br(bqcE>T9Xr4@Ye6i?A7jTYd^FCfU zFE5-td09vqf~t;@!TVMNXL9$cNL(dx$IvYBx8-O#ta2u3M&5BBg_064JcaEATWbaDNAW;XAq&g;C`YFP_X#^bfeOg}gQsns(Y1A_V;xE!WyMF*pWdfkbmJM`t z?e7G#;k_|9dFY^~vW?Sj>17?KiN`S{Q9@sgBm8k{n2tf`1khfZPA!3)W)v`V(DUrL zw$+E{6Qv=F#4Qlf>Nq9WM@F%`Cr<}L7lq%z{?DEodwHL~)$VT;2#K&D;jpDw#Q?+f zv4laH@1hhT;1N{E9J+orP7i*{8b$Q1CdZ%p-d~h0Zg?#|JWPv&jUZvFCty_9R>9yF zL`&K_#0H?lVfWV79JGvsH>|-?qfpxpdSbetNs~0c4tCN>+EuR4Z`RH;wWNeT}OUP;lIE2ztx~e`3>62 zm`$v`=8$@-;j^HC97%)t&qF^-*eyP=Lq8PSOj*s?vhMwWO)6;YvsE}fSXOjQ#QsF5 z$@K`#Ik&&#az8Byu`U9=(wk`%j3MhB z&rEer8B{8_<=M1oyNRxlYQHSCvP)@YmojP6*o;oEyz zGr1LB8k&X}g^)vPZ$kdRJ_8LM8GliEg8IoS-n8%7iWxqX+5dvYii3BL z(UFW2m8lA}$iun$Apya{V@jSb%WXCh3k%d6xC&`|!BgB@drREe<-mUy2>_m)+K<1} zJp?RDcXQ&Lt2itYx0w$1qSd3FCTUUTyYK&-3d{twgnx&67w!ghgHpvvz4TPZDVzRx znIJD5atxxu$n0JF@9eR_GxCREBjzID>TE}1f(a2{0~V{@?gJ+*K`ANZ*%f|j(zyez z>#IQf@WnX6qc1PHJ(?;>Kji@m2aS-Ze;!m_nD8}+_?%r1k@n;xY^6Yk(R-BNp!bZi zB@bOyx{Q6i1a5x3uj;jwUb9q%@cf92lN#cT@-Lo{@cO*BiPp;A@F@(NF@XH zyAFgVy&^YgF|cQ|r2^zDRvNr@lC#HYS^%O0&ogqU+yha=%3amz6{rd%ojBY%c*(gY zMlb2O5*SqKA*v&m`;T5gi$q@V)8XE`xhqp8R^ra}B>WeM#U=3r&Fx=5{4PQ_svWha z4wH}Xy-y_Cb#`*~#q8Hz-c>*pvS8F*cOJqv9i9A(ASi2r>c# z03uBQH7OPQy5t`jADKQnCcg`nH)@gzE?`z<`U;Rm9R2feq*Yx+FcoA9~KNow8I(j!p>MT&DYp7jTZk7I)D-n zB5$z2wsV)2oQj_D|K9LPgk2FmA@w#9b@OKNKzo~~g52JQk8)1jq6FhUa zMS7RtCcMRaZ!O;Q3H@XCT^#Q;+p!PX>E)f#T2J$I?#k(CjVr)W{SQmP09dt3^UmAh zrjVj(F*7L2Ok3Fks(vcLr<7p;Eva1lL^%c&e<`h zVxN@q2vch|xMVX&vRQY*3Zlb>PJYHxeO7}9AM2{IC2Lt4^GW4$+`j5r(7Jnvt7@NL zZ4&8Zs3JFZ=luaBJ`YzD#@KQ%3)2s6U)|B?Y+MQWj4!DJ|2;q8DCd0g=n37!BzW+l zRo#)N2OkIS${0=34DCD^B}*D-_J#dFDvd#xK;Ky=vUCcMdOWV)sXov4WamWNRgwds z{SVhb7lEWNd=K>J3%q5!E4GoDAjhV0yj@GA*I}ZbK7xTAtkC8hG+5D1C2z`-LY^YU^(k{MO*KuD0Nr z+Dm>D#m|g8_%zVVtldrgithSE$U%}mwNk-Wmq}ezq_jSZoA%{8`gH1=e3*LIM78`k zLr8kLcb-)-{6mHF^*5^PPf5D0OrMi3^$&BeAM`c(A_9?rzf6Q zj?K%;v%bDb5~!hzhw;5%JaF9aA=C`UG3Y6a-u*f9Frvik5Q?h)JotSiPI#BpK>p7;2lRmsF(V7|GKP)D|Qz;M23}MRWK1a2rMZ7`i&IfrKHppT`UX z`O8#fA%$e5d@=9fFwYa;c`DIM&inqS|4EE!Wa7jK z>6&c0i;?`UBXV(kZ*1iSzXNE{7A-L>yvmB03Eni#&ZAL3U%%1kNyVU#hUB^wkzbP_ zo$>!6ko!O~F^#&`KSlG9j_I6N)`o8yYx*ToS`teg{SKByZuD`nAk1~B^kmAF#wFTq z0HfY%dhnZ*&EKU#MtKNXow!GDqo~FX%1J|}_F=BHF>!~GU8i*u#@u;G+Wm{}cIDxp z9#)qp0*ugfGU#7q5zO*AiTsTn&UWttsa#8thjL40nhdy7pzqbzi`@w zP<{Iq2SzTeBO+m#q}BHiQ!OgoDZbq&Ho9WAVLrsEJCnE|Oe-4}A znQbx~w*K@0+W7E+FHJ4m%)=VbRvLg<<*s2Sw1+HJDQU(Pxw}7OeQ{h_0#_?Z9!L%L zy`=igH$ymP00l_;X9@J#6X`WJ9|UH&F>(k_Mw-RHMQMPMag^O^bU#GiN&Q(24gD@8 zG)#_ijXbE_e4TW$h2D#lVe|$X1Mcm90oaANnJ26%=`0`m?p(Sjy2rM|m6pHAUZ4Nm z{C;=IyOy6}rVmm$d;FaZ1n;I>IWoK3<%KNNR>FMP8VF;u?dC>1KPp?-x1S6*qZpxsNe#jy#I#Quf_B zt9MC(^a{hAMQ!d3#{^6s7d?EL$*-OK<|;GcB-pX3r#QuR4PKn|lb64gpYTbJRAd472Sg*_(t11z}Ll&l&Y$E|Ri~e*5a|hPGd)k?XIgbyuqwK0y z%i%H_1Ya&4aYoj(C+E4#rQ+_8Yrg1getC)H5Nu^5+gUYwEOlIn=JF9RH$t_ZcM76S ztXQ(olUJis&y4OTfuqqx^6eet>^4>DuuV}j%4xb(2rnd)9ZS(l9u2%j-$uO_1rlS& zGKJhoopuhgot^CS=bp$%Y@AW8z;J5`c9}k6=`83KF_TBLW(ucgs zz2&~BH>@?$iq}8GM^@% zzW8DiD6NUkI<6STj8i6Ct_emoF;Vnn_}Z8J8cU>b_c!v4L<;~tc#_-fBsTxw2s zjNKi(_~C&78}w`U`RLRC@Sa31-|?`tXuaKxhy6xc!b`EUdGbD%Sd{7Z#Aat$UNwl4 zqE$u6b{<5PZ_IpY4j?&j9x9@Td4JNsy7r|hSl|rKK{P4I=zDDDW5{gXQ`r?=UwcBJ z@hQ!kVb(3WU<1T);qU_+Y( z{GzW6-Itj~zTKiuzxS@;o==}h8jgtz^xgLH-ulSAuihn|Ib^ye>tM{UGf8S60&no_ za`x%gp$WV-H<`!?mo0xL8`@@R=sJvQbMSXyeh5LXf?b-U%)*w0*E*u0o6=j3p0Bs|nf3|bwt453P;eK@Gp$w zLF~8*(d7lL)9<}WI^s4+aeAZ>>MQ|u#NY<~37JkE^JAf0tJ43RHVAxrt3vJ#SA}?r z1yzR(T1TjNDyfD6Woo~ZTTE%X-N80M1c|L%h~86Qqt1)6RB9VU8ABUk;+=5(e2{fN zSp-v_e>{kY2|CqWl(+$fT7*FWsBE?m2p6{yz+YEH*Zdg5I3)R9SMqVql@R?ZjplMn zow+Ub2hq7?4Czapn$=jmSdLMrabY;Vl`LYX!Lubs+@|e;>grFwvkv7N;r{fgcDUti1-XYP01si6axe&Fg@ zUN7&fHJz8T2-6K(?%u$$u;OEp2D`=jHr( z3jU%UowN9w`$zZHLau2{{vhy6njq!EcE=m?1ET;p7g#MvVcxCz;+O1xaLDkg8a-77K+J$a?u3xJ)+kfFs?bY7NyI zCx8xBHv7tk$-X##e|p8vwny0jUyp&L&*m>#XP~Rx_pTf`q#%iQ7HJDd=uI2iv$-pP zMhD$-aZai)1xTQQ>;2DFQ1=$OmK4HfS3F0C>fb`r3Jwm=k?!WCTFR%{bdO5mGBcA>3f`nf?aS9l$?_ zej^D+Ase+&K-YHFMdPA7@H!?dDn1`l2#599Vw+R7oBM>28zQipUte_g`Q`SY+r&ub zLq@;~5vJqrDtM~Bg*QVqwuC@q>)-kK`_orSDU@ljkx^PaLpqwUx(6H+`ZwYLQDM@WYOCRvj6qMA;EJU{o<0Z@PbAw(okcOvJ<@*ydu z!kg*{(A5ZsiA8L-s!B`0$#Ze16es*gc?O5oVV}zVQ3e`x7w`PgNx-GHdwm2os|r7< zi*9(cqp~NB;;!!NSSsPISo;Vs7B&Ysp(!{a5)jGjSgaSKmx$CfvrOOV@O%yIoPND@ z_JQL_SqD+)WbwwEZPG`CB9D~wT2t3(eof(!NZ3;S!vzpPC0SEzR|2$dP>FTb`hEyY zo_Bla+c&UG|9Tj|KUuTWaiE>!ubo}J&H*T|yj-VLR((zOXZ5=idzkPi2-{}VZwL5g zBu}(UnB!&C7t;y!d4`VF3{4a9Z+si)pD>Rg*#pI+3a-Y3#!3xa&%{@BnBG{Wy$#bS zrIQU+o{L2EI+iYdU6p=tJe8em9jZ*5auPZ=%LhJQtglBYS7gqmSy<^N>Lros=5Bl+ zyFRF`VDVgRhHc{n${C=-(ye^vAjYfdtEWt7p6HwRrj9qn8=oP`!umfL9V3rS?c9;I zi?G6F>0cHT&KX{O+qB8>Y|TR>?T{@bHw)?Ixx;qtV_ybEl`G>bwe711paeFOys(I{ zPe$q;#wks`RY&J%lcEbxtj>F(Aa4^+_si zX{M$^xW0cNPswWwhzUhxeIU^qo!&)rT#z4jYm0Wz>cjsA+h8lp1z=J^O=#o!-uIfQ zh<+PuP-wivj7Jdkn0g%$FVQdY{Q=l^j$imNLeW>g_?2=ISddYWU76myTEDl}z<9y# zsSi*f5UOxdkA@=FR`0;f11J0GB=QC%Q~B*`D{U=k^-6m@N8qQDq*T3AL^z7a=1zXe z1>HUwkFvD1dA*lYkt+eto%evKp|^XQW9sq#AxX1NT8XU|wiDRuu!#aNva|i;!h~+C7m#WHHkx%-BQ$$!V|d3t z_cQ;n%n!UU)8)Ij?TN`g*|6{2f+f1swRt_Hl5Ff>-K&gL8eRhi7(bH9FG+K)~(YCqcXsg>lP~O05cueYuKXYulBo4;jLahuJL`1)zI2SaUiF^IN_dA<=F{R;K90r-~r9W+Z za&E44C@-Hi4%Bz|-zmelvTk`Ng);98bTj}0>g>z5k&DZ2mFo?(we+?#t&}@UYKGb3 zy)NoW%s6hiyh;cXu6+}rol0juRbsO>9wVl^2+A?_UMgQB(wiYIx+q0YnwI+4Y3-!m z+SpvW!EsW(l;4Mk`f1fWmNuojj>d6mptk`U8_Sk|*yPJa_$18-yv!QKAH6O-}za?Mw z#9vrkfkCg&M$t?2C%@aAfiq~O96iYsmn_eU6(lxcW72k@6k&|`UUk2h>7VgqN?i1~ z60g>!O0lX%B>l38_WKk$@9bg{wFI_d+C>f(t|yO&JFw40=>bJ*pDn=8!c-k~@%Oqr zT#EfG=9D`^a#vh52%d-pc_a5;tg&k}zP4j5i-JmUlILf~aN%qH({9+a5`bN=EcRt9 zDu|tj3Q+UuZmq*n|6g-g{tspM_cK{XMcG2jbeAyJ6z+-)QOTNpOJpfT*_W|~7Lm2F zWlIL5WUUYrZadkNEp5o2J%s0T>HB?drsofM{NUyFaxLdN*E#3W&G2BO=E@$V(WDT<`uw zwTn$n{*ynod11u2Gn9irN<>`;H#8OU)KF3kqv_lNG63B-0syRCXxd6%n-{^4re=xF zh_sbyqh$*gwQ`nBBLRp+7dz<;`T#=}tlDQ2AZsXk%jb4bD5axJx4h+?>;tl=TEhu# z{-G=BX@Q{hXkF;pBsA5rNV;sCiD!kv0Z#ZehknsRk2~0kf@ht9m*Ua^ugUw0_wm7f zqes+0_!6z9xz`zxp1rr)gyK89Rx7t_aT5Jmzj5w3DuRHRVIR2{Kk}{hlON-|pRMN) z7IwOUO4If7Y!LIxL`j77-aNHi`)j7NBYxFB!s59_(Lu`4B9NvYUHfb2a^%{B62iMe z+urxWoWCGsYy{M8e4qwkP_fv{17%+L5~&xDEu7IFTDHWUQ*1LC4%T2Y<$etZc)E5C zdadtVi?V^TJu${f0E2Wi2nd+>u2VX>ylMrcVevHpUnr-jEceeN$mjXU`)3ZH7rLwE z9KBY@;XRsAL7J25z!wN1sPm^`_H=(qWx`8F^+f3qu&k0)y_bX*@4N#bI7-^IRB-{)H*d&Sd^f7anzNEBVK<zB48IPp@QZ_bk@4*rGkR6t1>382*z^07ggZy_f zo5}!4M{w~&0RLdN?80+{LNN%_U-!2pvX{Qyqa+y4Fh;|!_f{~k_AlpNkq}?OW!Gq4 z%7_2N7`3C8cE?_mxlkM6CcOM`l@YP&;OtsKcA(^<+_Zr3%@BN2%=rWE|Ma;J zCxk!rLLw%AIwlE(Y}9wVj*N0QJ#v{wIiu*Bb$9^Kh2gZChVH z6(}tqIfLN_zF#*0@C}v60Do);2AL_!DvR)Wy;+duBhr+ZZ+2e zCrAM&f$@>`(`K8FCP_$!96=4Mrv|WM?Un%H4|fgRV4wXC`~H0`IA<#T$EvwTkRdg~ zn75^y1K?vEjFFGvJ-}g^Tg85y{A)((C}DjmU%%OR!;`n>pwAn`AEL4QT9WNhb5c_M zL7`G5j>}HrttCWzRVZ7}*zXBbP;J~!IYTa};a>hHJ^p}E_DKW>TVndFL@Iq^%Hac2 zRQmtC?K^-BfPeGzZGOJE?>q#166W+w?cpZG1YT#6J?^vbV~hPSIV1=;#!@ie1w!@1;BFX@UUn5spcpGYJbaJ_(KBVtivT zE^!`aYVRu9Wx&g|gnAls(c_4pt~Q&_DK`_~s2m4~f1K4oSt$a%YlMi$W(~X+;y^{= zXxBj*jHW^Y!O(iV*c*)dUf%RJ1WdXzBB20LytOxE$EWXrxQz~(p7{{~S0JP_u`TNDY!xV%XS1Be0^L1eeIu?K-k0_6DuD+1C7J7CC zDX0{5OaT;3BKoq6{zqZBwZ6o62Nkw!%SM`-n)zdR2#GD56K%;a0W=o_XtC0&RYa@G z@ymVQH~^FPPVu`HfrF$iO}wg;lgejp1S9Ap163h|0L{T=el5g4!C+1oP_(nnO_$E^ zx7dD49FV{-1dFKScNyOD>RMzq0rMDlq3m|C3eW2qut)#}pXK9k!p+OhBve{&YrjBc3$D2pMbu-x^mNY43E z&>-mZzWE=qhRoG`f(9b6w9qW9{9B1K;v9_`nkZa4r-1-+yG4~`V{d2YG)?3Zn-gwT zFfob?{ zE#*=m+B6g-kX?%(1GUx4J6W(1pMH;V%c6zkoljwaYcRQk~! zxV|zC8U7%u<mNqTLvsPZz_J&qtL6u3-f znj)$c4>PAoj?LYh=JJo&L0a=ueYitWHt56sXN-k0S>JZjx4UwL(X2cfww^kvJ$4S}1C9wtF#_{L(_ULYVN}!+Lh53e_8)x_B9a}iwO(pz$P&G(3kLL3 zh)ur=Tg&3epLEaI)k{aVR*o7oj8 zoi&^}noXtup{&GL*?T#E7ws*TbY~Km%3aCFP+oC&AL9&L!mm{g4hwd#2c<6lk!`Tk zLx^cXu40;Jf+m;RK zxlgSTYTAXMjB=XeX8=R(ogJK4Yf@H5162DRk%Bzl&$f7kxDdNm_pn?yvyX>x3D^b` zC1kp8M5Rxyqr=;-$LF1PkCoN)UT&ek-+R!S1Cd&EIlc9+Y1Eo7-Tx7Z`l&-{-zC!` zX#NX7TNqMWb*c0e_em0REly=DzP&oH=D)*x3NlwoCh57bRfi6$*u>Ae1w~~U>vmGG zlH6?tu_RNJ*nU1yr|;@3C;QcSeXyc4>(8c&N{d+cSzBe=EJ@8vYY#L%KH08gy&u$) zg$Tm$uQDO8*lW69ONHpq(BXvfS6y_9U%Ud55mMUaKczE~IwWHDyz{ggPDem-atjXt zx*WHJMBoTCc?5_N&n<&Aogeh3j={td9W~1lf{4%(=)E-Jzj&h76i83Gkf0AltR1iD z+Vl|-VV_**6)0(E zuP#FrdJRc9w3b|er#O_|sZr|q?qqruKLJheeETW(Ye&KT(jmRYmb|m#t}|)77+X@P z(&7x!#l3bV-I{y-+00KlJ3$n)AhEhUpU-Chs6f7!ZmXTU?FalVY03nXK7fT!0OPpgP$XSDM=!z5MAy_A!oueg zWbxJG(R$q^ZU?sZi^TCcx~*|1rU?amET$Pjg2LSM>Fy4D4Q;7`*E~I|9bYso{KtGc z4B0!8d+CvofrDb8(#bbQEOZFpZHaFGa+&ns@J4>*(FJxJePZP4(78>zGe}p0mP-nNru2_GMvOTB zqA_wNdeqadPA7?Y{ELu~`L&5&0oTIk+t{))7B?@WdyJFt2 z=aX+x5p)SERa*eDNMFfg)$MUZq*@pk2?y;GuTqg}G^C1lY?7|s==n=1Hac^zv~|X^ zHRx6OCg}v*WL%C%@Zh7Jk9TZU=77SoyB`Ua_eo?)Fu(EF3Nl!QjkO7)HDIB3cW7eeIOPkb!yehLfV->Hkqn29n*`;+c8@6+p&0q?)Ov{Zu(2 z9ds8CpN^sPpm+(sz9Q<8zRHs3B4WmZ)Iq?pspj6aIlhtk0vOzyJuH_)Uy3)zxaz#` zXztHOnk`}{NI$;i$j}E;4{fwT9tWogH)@?F*&|qT6T)%hZTkI0cbtI7_|R-@KAqs^ zp(6u`hbln+hODJf&PQLI6ty*1nAL^yi=3p|FUMNvp4g)VpWk>at+r`P`geY^&o7S7 z+#`eB5rNHfAo|&~Vc)jZ7rYbvN>K{A5Q#fN#i>-^HWwsHxCm0(*hgO-DLb)47ZU-U zXi~Yhta?Q4K@#qk6;DIRSIP5p^jnAIHYx^r_Ar{WVg!Sk3JXQ(8NntAvrYT-NaHRP zOwp&=V}D*Z`0G)$BT*XtH|Ajzt=?`(Oi?#R@P)i?`u>0IKDIfkqH0}mypB{=WQ^ka5M+@_( zG9+r%$?j2%J-L=**Mlalmd%RM z8x6a9IIPyUapV!{XuC7I;X3^V-_mL~CdxMBFiE&4ARFc{w!qu4(2z70aB+dFVc~T7 zcgj@o2aU$=ut(fcmsAMPqpvjZvppC$ zB-PW`f0;$I1pmgzQ?$xzPpv0zNX;^ZB(}hBGcKSe`d-f`@ejep9>9XnH0JcS$mnSg zNzA5`1eXsoas-Vi_7^)hNQb3Gwf4?ZQ?@(rC}7pERx=8f9}&!24GoezCLX(z5>s|g zR0n@^k|H#NA-B!~rd!iTnF)b!(e_qlJW;}|pl*YrI~tJl?T?L3W_l2SWB=Ib{X|P| z2-}E#<25Ry!^i4a9z)2*?n|XyP2lpE08`zGd)=WJ<01ckQApsWXB$)1+_l@eTyLVl zES|FU_3Xf9h$p>ad=O~it*y_FZA9A^OdaVjyBctHu+-3qV!r`y&!Q!t7dd9Dxm4@D{S{YMM$Riw z%^k4G8n)hi3Y_~X6NS>hWg&37ai}KVHEw>JxbZ9Q6pw8-i{q!umj}*F?1=YI6zOJK zGvieGeV_lmp&;B)$%st;8Gl{JopkK!eueDLl|szo)OmS#@V{)oUOn}?x_W$*aw~UMh8t4pOC>sR-?RU~ty16f}{p{?%edqQ;6>n&}8P5;XxH0LF8kZ&Z z-&8(#K>5<)8a>|gYEq}?5kd&q*Sx+Pb;VG2C9Gk6Roz@{+k#TnN4Soe}6bF)cw%Eed%%eWX+?;Lv`oI zGFJcXJ893!D>sY$&$0aV-Ux%I!Nr;katTWRKBb$QiT^&D;~%=IUZh2Mtj}Km_vsuD zT{-qI769KWpMLrrB)7X>WBSCu*zmag)8KIPe;>^OzLI@hmgyW`QbGU2w0}+KMcQ@h zf49Ni%!9O0e*CX4_kUfv_C`FWiGIJP`h`*j|RJ$K-QsY?4un`U$p+b^+Gihm|>?l@Ri`S456 zcZdA-^eekgHIKl}?&_@{4Yvw^L}b5#!OKqMtKQ70o5I(Q_GI=U9mbZK&aA8%WirC} zXKtUGGF2IPqhClEJRF)-A~%Dp`1AOE`>VjF>Nv2w3NN&u28*UuKZLnEC}`?s1hET- zi;dn1UMP}dK=`fnuIrkQ@Sf1gW@(cuf0#0Fc(tZlEQIiTozgGMD;vzEX}{VX>mpd= z>kK0YR9HhR=hRT+hoEq2ni;)$j#+ zr=~%(c5qg+3?`?_f}(g$rPinYvUf2}7bx*M85+sT!^HLXW|ogWd_2^*|7oYu-%I*g zExA|$V~>+tz+ZmA0NpOnuR1Fex)hbuAB;$Eb0-=$=WhMH*DpKGUyIfJR0gc3LAz@; zZC$WN%~C6CY=7-`A7Mr?1MZnC)oQ?s3v-9D)#vb4Nwx%!!TFBIZF=MNcT=8-#RL~W z382Zn@%LKz6rKd1kwz@O_{(8CC&1dC>w!7@*?+1;PR5h}=~8_oex>&wf6RjLb9 z!)a#qx{UYIV<*yVBI9ceA7ei^dF8w2SKq#Q^0l4Evo9qxd_9N@$~TPPPs|TPJT<*T zs-IV(N)_@0^18lV(h5f1Ep*8f+wy$ebLlmr_tsBCLhyiEm9p2AtYrCB9eP{iv-X2l z-D;6vE-Ubq-Z=UiYRz>bBqX!~74dlfK9ByOp6XP)*bNy^o>}uN5`0kQ*dgMhS^HU& zsReo)m55qnGzPa&qVYPxPvs665!Bi&yk)pnYlVJ3Tp=#%+g6DadwxKm-6b)`xY%jO zu2K>^LNI5Xl- zx@#N#93Az0R=+>oj`yC!;oBRZhXk7X(3th5PGo4>?VBdAU%d+FC_|f%2%F#>^(8jk z$ET~QtEjv#Ja?zRv2e`&&# znY1LP>YA}7fT)c*w-GaItdwG=X*lb!Ds6UVQv25r--CreyZj)o+w_edLxTxnrMIT8 zqY{f*y|P8+@VE1cZGDB>r>i{zuzKIKdtZf#PY>}lQ7+>*4y5NN3aVZl9(QeP$IO^t z337zq#CWhDQYOZY2-`)KdHc0`ZHfjBVpXgz+H`OVA_vx1`iq~%D-LZbO=lu zBzk2RUmq7=En3qlg5Ve8P`&9s^Gzn+S6gNnsVc*tP6A`}nvaY*ZI*0qAy*%NZA_i8 zza2X+qfvBpv(lJ{< zm8i0m^5NpMw*6JsSxWB2U~TgWcG+U=v9c#Rc_N3!F3ITLf57`*L)eF<|h>zbvb|U!4Nj@MRqvrCb$2(9va2tpe7~R zemP=%m*w=TZxabIVK6 zhyg`^=xv-C3nv{L^1_G9$mDI9`IFuykJy3`&5U{f+MsmZv8$$gvD)Y3iE|LTxRiG(e{Z7~8S?sm zX#pMy7ZdV6`X=~~*60v&qaW_KmYU%k7qccRz;#^OF7)X2(*z{h#JntbT9haxWnUD? zuf=&J*DR7Xv%YqVXFJCB%m_k;-;IrI8w)RG`@ohwYd;>)VNFhdE7z3+H@{7fy4+)J zc%#<~8e<<=(3?q4;rj6!c!tAonb9r@XYb363g`|{j!p3jsw-!q>?AkEEgc5bA`R2g zVmC2*8PQ2Smcy#*)u_;oqV^Hk`kWX?3)f8HG17q7a4D*_5P{~fb6-F=J>^duereLW zN)nhAnRK36wO`?`jm=mQ!91SgzSW{2IxlM^1=l(?WmR{}&SaVWy?mu)Fs@H(fm)wTDGJ1E=MT%1-jaG5 z!`sg|74j52AAySf!u)9QvapwQ`+T;gaS@R}cUz-oaVyB(t7U0B61nZ!Sztp~naBsr z^K80awn#QNZ7F7GO;W7_JMI|)oM8)&Ho5tGFKrcdWY9hZW15=zs{-TMFOkq^wZ@g7 z9TQ{@zzKCSh33nr8mBDJN&afmpQ?Zzz0mST;|-NF+07zYcEKkx5b@Q@ZE&ttx~)>2 zLW;CrpVb*Rr*or`m4#*X}xxaJsY>ceg)5glYyrWbxGMUoost$3O z`0VBWqBM(KO+6T;Ve|2eioEfTMhy}3eDQgQ_s;0bOBQm)ygFMR8!Ab|rTI0LD8e*2 zBkxM?ABOsqyY1Qc+}Hyq08?N8fvI2*4Ulp|B8NXOiccp%i;Qi* zN~K879x%-Ch9GJ^8#1(d=B^5_$JDk8R}R+LmQP3l>^1aynhjy%Azf*_T?lcJ{CZu+ zb0~AlBb;Qlot*K;SWsdBZJTJlIVA+Kkgefl@30y`o+R9@dV z?V=Gew0p@T%jDykJFcw6TB8BDXm2&drhlo>+@Vt{Y-G+c>1!6^K|6=uDaQc?OeWD~ zRjTM7&dzg$f^q&^Kq*ECkL^6}tB19l4eA4Y7aY-ek2&_V9$AftPlc84I zg|2qN)VOU%R0K={b7bOsi7`Uliof7>8$>Fl;0r`FEc(lPO_7QO?bmM#w8u_`T188( z^}n2w`bcV~a1xU&SQHX!2Ig`?%wRis!_eI8(Uvs>8X!|o`326k34v86R6@^n6YEZ2 zqZesDZ)Ht?CwSXbtq{DO;^EzF<&w|Nv{6bZME|dEDDL+UDwFqT9(u(i>D)-NO!XJ1 z277W5@m6ZM5w2_?bGfsxuMve(&F~P-8OCE73b`k1LtX95(v>ffSl-6SKzjNMm5#1d z>pDP$_>=E;);u$SE~E|LGT}j+20e|NIu$ziH6h>QHfy3=seTX&b(frn7vY$@$U0X^ zPkdll52J%pOFG9RE|iG)SIS|*&}lUf{XV@y^2&3guNZex#$76(!edasJDV->Odmuj zqIdY(AHuy0uOUxOO@Aw2ZY=H#lvU{}@9Z%TS zgHGJ7{9gzb;&hj6SDzj?>g9HwZ`z_y_MvjtiAqkNoQ^r>@V$feRQ}8nkV}jucRt?D zC7{Uy3YxGCEiBHNeaj5t;dFg0mO0If*wxlmxnEm-pf|aXfpb6*=XJ@TUicJOX7-Ir z4yzi%Mb(>84@19iJx(f8)$@|ob!jK}mWzVXAL0$?vTSTg3Qikgb`!mL(Z>I=HJrD? zQ$n?O5x;{X3JNg1Lb+F3JdQ%e0N^p9Ud(d-JE|T6 zQeRj4U_UZP#wLL!Dv_^RRZt8R7j z6SS5V1sVf4MmRo=l(sJLn~pd!#}OICA?zfhtQk^{$8iuXiZ%D51z#ng1a5IYB>DXn zFFrY(2H~Px*7FKJfDM9LIGayJsw927XdW|N*0!nG`$Xgh$UK&W_=m=^w}ry1LuMQdsazp$+2JHrBC|QiRKi=MlAW7KcsoMd_SF z;|{ffQ8HXm)El$1cF)E0O+)DBi~2VkeJ~3R5^cg&%v+EaIrQjeKRBWcC>z?-gUK(~ zP`|vVN?xSZUC#}_wVP|c*~!y8m7=%)PKE8`4>k)!Y@}waEIqd_6*bOgn?dIWB|Mod z00;xWvRK{x>1r2-;(zZiLo4EP%G)jYTS2NZ&Z=+x&g>I>(bPt6*M+8mr6dvW%Wc8k zGH1Hzo{Fw@_xq0ox-ehAq;|;IGBHtP%(`i$h!+APpu42s2n9BR!J@*>2inGVKpEv7QX z+YhU1*5WeFVA-`Enx!3ELz@-kHapcC0;Mepbugcx|MCA~+C6w>q}d1byLqW8wQ6}` z*SzJsA5OCgQ8%cGz-4-=@>n8CB-FN__tocDWTw%P88yPg5Q`t>asmjSc7P=xFZElT z76h~Apd!Ux9mJFLAO$T~iUg;u>yNLAL^ld*b6KuFlu*Vwz3HWakr%oOkqwQ3YF)4; zBsD*lf5zY&+^v7J`vit0FddVrUYCk%s6724@9>;gU(!jU6JaUP_K-NG&dV|9<0k>L zB$-^*Bi4x|yCC!hXI9AY?dpdc*Moz#qZq&Q9K5#Y{eAxD`d)vQSbZm{h!h_iS7h!# zA5AQAXqK_=PFjc)nSCptz%nD{>^u2cFFyi+#+an95K%GXhk==+Lz~vy0~Lic0l2oL zg@xXe0Otw~nxV`rA6Y+-#8BRs3HW58hLt_5R4c1cfPeCRj{82`uQginb+u>Vm9pg! z@w}yXQ>s~iP6Fcb;+J=N=)XXtE!g|G;#r=HBjQcgZ`ui)xO9F2*~)&M`ow8vvOnjt z#ma7GXI%9Tfu?tRQaQfS=3Om>8y250WVZ4gL4h!g?44f4<0gLizKncV5;_3QC!>oG zY~j$}x}|r>pEUCvYE=OWy%?odsY(#oXuFi*eN1`gJ6y_mIXwNc%(US59=!hW_V+8e zkUGa}+=9_5=>mHW{kRKoeGerbi=O#AxBbOve`M_0!VSRCg|2k#H<)hS)J!;WZKf$^ zihd%`lL-)P4W&AaI@x*4u@&SLk+rQSkIE;^-y6!7Ep6EzP}L{%m<%4_{nip%K0zOu ztkZ!wmw}u;1YK0JY=`uCkgxv==)PlRUeQ=bcNF4;HINJq<3$=ISXeVoaJX2GeO($l zPu6WerZ4xLW$^CHG@W-=-##^FxL>Dcy}&v2QQ1m-_R`hEYEQ&?9_Xj%2XH z^USYy!xQED+LnH4QqN14o`+FeM(Udl=4hCx)b`IAIc?zg7m}&I468p z*SpS3r*VA{SA$$=DjC%X|BHIdzn8zN=z5{7quIGu*;RD(*J^fyud=$IXBATX2PY9p zbnoaj4+x*i7_o?qq4Zq|a+$N8gxR?b+nvdI*cU6r88w_)`=UCj?$}y#hNdDm1j&we zF=Kddtk=Io6-{R+77W$ba3m~L&DD-8Vu!o&H_0H;)9lq#&JwvvBWFU_tM^3Mz(tT& zpu86+4U@dVSQY=X2m#hKxCb6UthgGbdwg_G(WKvx@7~owyiLMZi1qr0n56@$4YRpj z{~$qMdNrhuV-o3-wH1=0J02M6^djx6`;m%0@b>u@V2_P%zi~OgOR*Ll5EaPnDX;k= zv2;OZ`mdTq+m^yx8Qov9sPf_uFwE znWVS9Rv2g?M|)%|3;)%kiHeGs+QuJ1q=az)I&WSN4WROCu8U3m02%y z-;&;=L%`+=kT)6+Y-mu)GudT_Thz!Fd(1K@ci010ROfz=bq^qe{7rIf0D#G|F15qn zY~nY3|2lR%FL%+PO3^}G|1Px);pF%EI9^Cb)DZv(Fv}+7$6fR{F0&5r#pYTBGM$Y>Z@Y857Sik7Asz1+uaR+RX$Hm%j{|x%xf%u!4odD4p z#|@Dasd?ud=Jopn5xRi+z|hOE|EVz1YA3f<5LFh;E}r=+;+h-LYQt}eh06g*^3q55 zhUA~oISK%n6G-FtewXq8{gu1Ba|T#T!LF74k0t*3Q}S6*7KakWL3e(9@Y$w;;OJT

1 zdTb5j0vUN`G<$~LKV}%N1t#bybw%{(?$h}a<#W?qFq3d0Rlw;dB@EX5@-FmR@dvq~ zYsC!<*cmVw%n0XHS`!wvQg}AWr!ScPuo`&AK zH6`O3^4J#6)Gd~B=`1+*^~OfFx-}BWHv*JjiFb$INc}l8$FE%m#%+9=5Vz-OOc`J0 zg+VULZ30K4yF62hHh|v`780Ag;2tmZZ9u3f>CEMqenmn2%v`e$lhadwW@!q_n+Auz z4N>jQu}r>^zd=_m1)r29-rY>c_TwY*vKcIdso!%xYlJou>(_=#Ypcxp^i< zcoQe#v*v0w+ELDA{wX7M?}s>n%F9;P&rdUk_1!#wo;v`qF5;3CnzNA2<2210m10SU25Var!6y5S%n1ZEm9nMg`^GGX`k%@aC@p+u)B&be00)pUN z_D{D1+E-uxIa{AK!PXb>3%I>&HTiN{(K+{0=gJk9q6)wOw=K2*Qb&M)fbp15e!UZEOFhRqexClpjVV`L)n8q&tX>Y*gq#Hy5C+_j!NR{S9TE4};4 zSYzyMUr(jKJgX2|MW?f4EyMeffd?)J(f=t zculOI7B79R0KFnrpzyR&btY-D8->1itT*`)15jcdjWF60O$;(m(XMv0U5I zSbYLuM(E1KuSX|lvbRvTx6c8DMpcPEHyteCHfhx~QZsT1J``NM+!Un(An)OsL{=)H zIOno?n0QZWwWqR&#VVtT6F)p9JNuc9h-{?TsO-W$I8=se?)d+1N=5BVz-S`k+S)pX z^1Bpj#B1@uTdt;T3wLn#0VM+tIlv*bi%OH|fn030tid(j|_^B14Q_w;QWnezWO$ zhhQ2Jm$5aE6Ag)!qC(RFnyC&S-!%5is5_x#V{79wmo?v5{+l&l zijf1XxeomL1?j0LvpuOdh+~+^*y*;_U5bHCF6zBf!J!xaf1E?}jz*(`gM;;Nu)U9p zN#_$>Ig8Sp>;RY?)sed48zM7cZ4>#9NR>RJ;HH`yl8nPZ+Imn2evZpBp|@t@%izTr zye&YlIg~|~Bw{A;+=t{=qx5gPR>6PGi5V+kSQrQ)&xY>gBL{F!qib2BGS5DzUilrT zmc2ivC;I9dqAW@y{d(!2A1QEahkZA;?UT9S?JPCddD6vRXO z$JHH=BvTBC`YSzYDcT#Fd!j^CG z4#tvU&3R}u3&L>&`R4N<=Y zyUPMui^TnEVW2*Od4Hf0;tKL>Z-lE!X-@WJMuSdii|VxxR4U_)W-`(2;*^% z&^f;@r38o){j^(dkyXGo7C=M0kDv&amLBU1r}nDnz|((L2LNE+_wAuQ0C4T_OapYM z0@1@Ri|R(s#}fl`HaEwTD^VC&5)>ef0EF{}EZ;<_BFtdt;xn4` zrceBBT}~I`1^Ye4S>$LKci2B9tMe|ul97rPM4|2fr^%Q z`({5!=w&aWcz@ZWN-W7BNeojs+q3JoSSD4wxIg$L|1Um)R?mk%>iYR6${XVXY=6Mf z(efLCOsB88K;dNBjSzTSe};iY&vekYKzBIJt?z_ta{6pAq79)5-iN`SZYwO->)j;_ zSI0qpNo3H10ZPn`<^uSq$KVzKX5Q<}uk+%py=>uw-4rUA=7YaT$JF1XV-es?PD)HR ziLhglNJl4zwEv4C@26WL$%*$A7Cq^07u$iH91r2CiRP+g{|1$a83Qv{X%wEI*dzpbO1=7%rfuI*RY6oV{@a5f z0*-${M#;;n!nO@NZn~pNN%|^o!8>f{(Zcw_%ofhOnpoAR*$(ze)BG^bbh*|pY6vyh zS_t$IEw5eg6bdj0*C29R-KU-u-Ldq1fm>Cs`h&jWL9*s9ycZ{YjvpX}fn$dtrlq*g^qdn5P8F4*s^I)ng+0(*3!?P~C%3^~%0R2FvOfbz zW^aDC{1a4z0ny+aAIl+UjnCSm((8qM$bl<&Zw7UfR$ zy&)!t0;!~K;r@)Oz4v@_0MC<p#*FOMR-6FXFz(a`+EZaLC3uC2bL;-durhy($~Lpg1;cPPw>u|UPP$;aR_@8*!lZ8qXV?idebzE zi~onGD}sOn$W&~pFrbO_jtTo2PV_w4bHfq`$QWd<{|XW<=q{XZW3 zm$|rh6iClF5&<1^#8Zy|H0Yq zS?T{R`TslRe?r|~KhggGJLU2(8E1NP<2sXYc~$M}=ETKe>N&WTm6iPD&{09->T5HI zH7al7k>a+xp`l5}Rxxxl$tqQA+ep_VuiQ4h$7OC;bq)^nrJZD|uxLtscX!@>eNc4s zsQB^RFGiE^af=Um>ntl+PP0DSa~$D2f{Dy9O|Cspdl&NKh|+=xE3D|uMYY(+r|2K| zzAMv@tZSbUSm=-CVOf$VEg09<_UDcaJgN-}^J%%);Vyy|-R`;&YTb%&laz2cd#{25EZkutKWU!*^j2;Z&Ef;ayHNoh0npAi;* zY7wfnj(M$o&7k>HW2O|H%3;-@ld@&Mz1U4q7+`($AZs^q@@eKyE>eQKPco_cAse{z z&Gd52KN;R{zNVMs@LpoiE)~F&@?+h)40oddZOBtCdza}1*A*+&tLheo62jGs$AuVD zZ?f&VXrG@TY@Y52$lm+KeyvX&k;@*aN%w2CD*PSyyR>$n^`Q^=VJ6QfvwK>-aGy`D zF(QJlEZ6KGuna{QhBNOc3m@CF)t_MlbZ~TOaRjvY> z^y@SctCGps-SHns@3?wtm*TU#<_#>`mv6v1z5kMVnJa?|vgu_Aw^C%$Y0TL_QO*v0 z7~Hx46eO zyaeGU_lg2kY1aVBIR~O|8R%lhJUPw6e3$w<9rw%`4+b9LG&C!=YngEQPcjfwK@6k3 z?hn;r^RU8G3I{nXD)(wDOt--(J|8o+XSe*0*S16whP{LgRu*k`YL%moyUatf@Zs`W zD~)}+F}G#Q(UoRlE6pf-+wff;X8(aeKlvEHG?2@v=3ZbIL=D$GC;x>1PO+LRNhCw zl+AM$&>4D8UTSR#jjxFVwHp6Z9PPezKFJ5qpFf|b>qrBgxqjaYA{sI0@LIFP%M;OS(U)@zv z0ckEHFnt|KaEQz8d;EzBv-tVy{s6n3+JFtgybzb)biOh0kh7Y*prSHsY{;zmPdey~ z=%wW5AdaS}H60PtHi-`95ub$pFohHh(}$4nic&@^(fXF4r9^+LU|WtO+?JmzNASF6 zDB0+eO-GepmLhh=vva2xp=X*wb#aT`t0j_1mD^qpvnrdh6?bakT!ND3!dFJ-9S3Dm zVdpj`T3QJUa7u>t);Ps+aAc+Lir%kun{gfT%C(!58EScYi~W=6&9{dIf4jHp!!JYu z`37Vt!oQLj2S4O?oS=;g?(TUFNFn{r5q2P*)9;hj#}5$0PG^ivbZ)Kd$_OT14HGTr zqQ3w^=IhrJ>B8XQ+*^Z3pX5?Q75<>o602#g*00xtOB90SS(>jl04dicAgH}hpvyexY7OdTn4iV(Mz;Y^ z{_UNFl6LS&gqnm~5867O|1<1%B_KUjpl$_=tdG>VrM__GLe`U9Il_nQ6^|_L=fv^t9mJnM+NBh-LM5S(~ zE-VYH9^Q8-H%&dxc!yUSH{+M}karOz6+903G57S~XD-Ns+r~*C%Ag98P0x?#s$$j% zc`K+2QZT=6+Yz0)65Pc$Uzptnd)0b^;p5TfnEi3#jn7`BrAza@NaI<3EQ1N%&}qo- zug(+>ltS&%qxPpR6$Lx*h?txfv4yU)OTvH;^Y2+c#=3wAokMgW(5y>WBk3v`qT2P; z)@a?3Clf*K<49wHtF;K1Ws@%kkVNi87pURYwp0w?JuyYBzO~eZL5n1X`}107P0-+N zGaejj9R?c#dQTDjL_w|Fr@Y-hF{NMSX0W$B2hL~T-qF*klCt#2B(9X625o4I#~DK- zTf2Z$(j$lJ>qhPjyYQ_jWiKJOXQs7O9$5VB2l1RX*vYleHnj-ns=Hg>>U)_s@MA^_ z3Tl81kV@OabPABi>C)$Hw=5MUi&&Vj6^9!%E!;ZK&Eq*O)ih9J?9Bc}o}RAP*&HDg z$S!Sm$dc7}#sdXPqpFX4tbnJ8c)Vc1&su)a^MwE;;1yURK}enhO~^OC&=OQhr>nP3 zH~N-trj^UM#aPJG8s|nkV(Jw+to_l+6Bf#IRti-|Il?bc=NF4w0?x%f#}&tFf|t_0 zZ&5yLJLOK}N>lSXdYI=s@-BClb{L;d_CcA`J&&wZa~s$p7Ybq~7Dstw26dIadbghX z-l!FkqQ)XmaqtG4ygX=}k6el)yM96XkX@DKy2RY7hS%TgCsnq)eGKX-WpC;@I&eL? zUFy`FSC`>VLSEb9N5MpYnPSutF{ZaAd7dsBO^qJa(5oRVW#VEmqk1K*uEJ)Mdj7fG zpp{N}Do`vmDQ2+-dLl$qjBmgZJ^fANud+`Oom|cNL9-|GCG;5u%zhp)ratfdnI%l$ z?c9LT4RxQWHV)8C0VkCsS{ z(_0F!TNP~rU6-QyS+W!rMP@9Y!ZcP*ey;{1{zFBDQ5wCE?Ne$gWmELO11huE|95+n=D1o*FcNQmQ8r)v0fnSC2g; zqK+a{^3)@z=wjBR#$CVKO%ET*AuV0&4_O&~aG6(EpVGdD9wk+o+0C8OCymK`&FYwa z7wRPkLt04>*N%%c(g(*vZPHgGG^F#=vqs50+h{dVtX;8)M7el7NEt>)@pj!dtY5q> z(-EnzCp&&Wp{2yb=$&)*PiQ6^^f+1w-lX{R-I-auDi=A2b#f%j?Xl5XV zOng6fr97M^$khh7X^oaW$q>D=B=LSi)veX*r)ZPv=)L%{5BAuP9F{NHFu|^`f<-63 z4E;{>FEIhwyI)Va>S$wh^oVhpD|XSn(XZi{D0a+7$vWX6mNXxNv7W*2r|T_^NqV(7 zFfUpKoRU=x5CsYh+j(KlhhJ_;0*NLY6+Mlr2t;ksv%tB0t>7ssPoy5G-vb-(bbubt zbR0h4U{0CEI}$XE67=nMsG7LdMTwRVQHutPc2idJ0r-2D`hvBy=Ntyfnq_KsMZN62 z@NZe$vbGiemxCIJpPeU>77|JDuC%OOEcuV1I znd^1i)Eio5Y@@+|79`o^w?8%9>Lu5^5|gz#A%$ z`fZs@nlnI=nGAMZVWSOO-ab8W8Qwv2Zw`y)M^Ok+h_>{sdmf3~ezGarGz^!zp=0?( z4isFR)d5fWYS^!kL zjF%t`JKKtVX=h~DF3@wX8psu&^Q>J;TA5%muFc@dyWYwN=#ZlQ{4{Mm5J8&f@+W@- z^?e|B@IMjSP&UIQqhtWb$IC2g2eI5{7xKIrN^-L;|A{c_)$qC}u0bhNI^n6Db+oN+^^N6}aju-LkRUxMWsy;k>5r9p!@7+uc{(+ayjt>D{T3 zu(0))2Nn)UqOXCL0o4YmX03l~=^|_;4zxE!rF#>;V>#zz^BY@A_1i@>63pgi`KJz6 z#29BIV|j_wVf8Y`%RO?(jy-u&shzElg`aF&B`Nu`n2=P*#;k)7d`=)Ny}OD@^X|L@ zgBMv)H*9S`OD9k^w@LF{mH;a@FrM3@PdFjBQxcXlJ{uIQyR#q1Cevx8NlF^AB z)gXEz(T>kV=iT$Rz3GiN052mJyqLbGWSF|$7vbBA$jy7 zjrD+K^o-X`Yo?5)%~af_e^EQ7hlA!xOYUCnn48@enxKrjbHsrg_iOh zsE>YGJQy}%HFHqP!;8~Pl_ ztgM~u0a{)=BgGNJpzp^#vr4o!Den!EI&Vh@ks4H4eVY_p5gJwswE}B~AHXAxFrV=W zy-S{sK(dV&opGuBA|_q8d8d9(uuJyW#+li9XBf7kkaM^a8K!6K{`J8F8BFt*=z$S$ ztW$k#norz4#@(d$_%#lY`hBH^B9rG4Yy(){VjB2}u_qR}32sdIR;d2YR=IF$Fhj88 zd0DVFTx)aJvw75OCo;Z#j#R_Uy!+A4QBEd*O&(7G zb?}|m3f0bHQ>_3o%Y?voJsFe3Gx!o>_(ea@ng|LL6awqndtvgR_veI^PS;5LK>c7cwnL8AAXE2uhsvv#zsnSu|DYS<)eDO*_| zT3fVq?#A`AyQu>BR&}+|Rvq`9K?4pQk-qpCynKa-R z<#O|9x4m4Wo=Pn7wG*|X%4Q^{E(RfU%GyZUpc)pbD}ZCvMqOcMnmaeOOyu7oXGyrDJwDurF)AUCbD zwOJ&-6piSRmMawy{DH7(4%B-am1ews1-GVCT3nk0dYKlst~M986qja{Bewe`-Y<&} zYAub4s@jZvIVvy~+;ZDIhyICUTvk|lMTFok+PT$uV)%hAz`W#n75x`!15Zsk zNBBK8b4A({%-$oCIa__*3|y~_Y9!pq5qUifgfrV0TjWZ&xV})HXfCa$*QbvwdUucw z!tUpDK?K_+rk4=3Rd4L{V)7>{GFwwMMt>(>JE4OmbUfT&*cVHQvfzx^df*B_n|s-qgHpumsmv z(99?>S|30ze$~C5}dx7Rl6u;Rw(0+up&ZY$2BxMl+uqDsy0h2dO*%FgxuBvLW znQhlxGymKlT4Szt*W^Siu?ube@@f~UlWPa!uO?Q8Kg&~?TRI29U!0&+BW#+WVHaL+ z`BD4G1KU#Hd$(6(JZHZNC@f%Xg8L7)%$V->vp0xh>}-i{ktPuq$0Ja!QM5irPv3mK0=v_@oc7gHB98N5p}#v6{7GLkqAV6I?*N1{n7xI4ypM-)ZI zY-E|IgFfll=>)S)-QHmBd-D&cnmZaja*9~yoz7-0WynB=#VOqSEEeV({nD@(gg1ku2>XvB;P9-UQtzYftA5)>8Fr61z&+hFb)l;8`U< z)>U4OH2w~*&=8EPn>VP^iI?1f=$NO1=hUpw_fcoc>gf-iGPS2{EHk-wRj88YgkpiXt_qfSypo7;I8z(t=U#=oZL6hMz=8- zPy;T}`HJ#$$iQ3hJAvjuX>C_Hd}|C#RNP)2LDJ@ZA`K!1BLPXctVn573?E3+b*HtFt4&coIUyoRY?9n8;9#|_4EBn7AM?knq1#4L#uWVvgJo2p=A_jz$qLXwHuS_eXHv>3R|gG7VXtUAyE3 zYttQ~KYKrhcV=%(oV%O1(u{1~;*rEOb5O6%D;H3G`M&{PBhtk`RwR5FD=9D{PY2*073!Jo)zlaISr?hpcW z(|q~i1pOTK8+WgWKoi7?N5mmL(;z5E`PIvI=?-cS^#|r{0bA+!a?O%B;h}A{HHPmV z77CdkpI?%yaR)|SxXj9}Mq+N8>6Ke+^>DU$O~QE<$bbXlWuG}*PNluJ(jue^>S+OL zaed{PRL3k>kUqi1Z<8y23oq{81i8pL1&qf68A^=H-F8HKrXU-PcG`--Z65}{4Or`D z`G$|z5TPz?%asskz5y|*V7jztJXgQiHd#K_BC>!c7u~CAy?ZT=0A7O=8G2T7 zlXwhD9xL_5wo?w<()v*-;1WfjnG#JJqQlb9ksl;0 zoGNq#BKGvrz9d0Bj`Q*RAeQ6b>8D0mPrq3*|Db?bl&ImsOP#V=EOy#*EnF$O%2Oy5 z5G<-a+R;D}iXt!vl&s}nS!n6*_$#iIDpa%@OQ!xg7$?=W0T) z<+{$=p!(%o2F&MXi$ra-?Ha}IEg;;i6eus#NS-ErtG$yD5Gzz%1lQpo6*xmz2x2by z3qa|0fnUz^8;+B4Qw(xywBzm$Dy{bQC~8bFc$ZG2!VRJ80g&g|i@?mwO3TwHGon6p z+lAW^mUS)4(?@e~HcXl?VvR5Ko_6TKNm zAt3+liQ`+#4PzpW@rkR#&+^EKyM5r)NS|9POJs=y+PDrkkieTWd$P`3JLKN0ZKDh- z_^F(J>>Z|C`;V#aeLi*2iV9x8Z~kd|Pew+mFi3(CX^j+ngPhOzM(PODLhmOLz|B0R zuI(Kf_Eeb^jB*=0lCa%Bv8ve79r$!$c$DdFuYLO3?bF3uM^ndRfSK@6&! zUuFEMBK8}=QnTwSP_nF9(W(dt+A-~t1QVXPImV8rrm%4-F2`nBrBIgisjnCbMzknx ziu@w;PR#TUSlQ}820Z-4y3|&q#-93}IxnrZ0e5(y?JKB6Cmm_?#C^Ef`Y6S6b4nwM zIopGK;62RdW8jh_7)dk51=4rhzS0>3R3?H3pljWQmFTZ@oCk2Kb}h!c)uT3_9Emb2 zz@eZz=jgOL&Hli{WZ7ynmgC3S^ZFejrzgqpJsUUzkD0!6U#=>8O3`@-3??!xm>^lO z24Q1smSt3fpw6R^xMz9D-pUSTYVWzy!Gh#@_Y9o-aRJ}9M??04zPGcw9L~dF6)#kb ze-d2p0nu~fIcs?H6xGcomG+719=R}56G6oinXiw_q|E{{ZhK|Vu4y>IzT>I8PCSxt z)0&hu7TjPJOQ$FMBKK7=4ov!p^5cBG2bzdPp5+-Tj5qlq@Y=79JxPBG(rYz*E1oT2 zu*v%&f~DS(eOQ{wflxiG?wz_ao|Pz2F=x-eY}uWeAzp54aSMi9vk6>XD+6-vzU6k_ zWd|)pdG35TmB1J&Zs!#|n`6ql^H~!=Vul>}DZD7h3&1Rz7Qc2E@q82HtUdvoY0e(C zhELFLrz(k8CObiKpPv{Pj}}D_foWi%P3U2_ajoc5<6AI?4B6CFx!%Ve6(mB5tat8< z&w|hWuDSMP^#Ju>8w z(<3R*-dXA0AYcXEGW&;=WkEv3)aqtBe6i-8>z6;DikzfMW(j`r@fCL$NyUAOr$jP3CqDb25z(GtHHvd!(%g z-l@9t2RUbW0ZBn(ofDTPmdOe;+Axd#Rwgr$1Cx?+KsW$#wG469jiw_@{rUk}T!UFf z$oj{vAS|7V3RP#aJt1Wg6Y<+|1u0enDuH(eRQJ;P7j+cdHrn!c`1}0If)G2&pcjAs z?qn<9m1Hl4l21OHm;EpEZ>&!>|GaEBvSZv)&T;(HbhK*Z*!%Ocr>DMbNFeoI>{U#v zW00bB#^)*Qok$n<%6@;8G&n;nBm8Q-=0Rmgx21kVhI?!LD^mgW!Qbv5>+R6RcMQ!8 z`m}!hZUv$B`#>ZO?$itxI3llmrb z-=;z8kckSMJ%HKWQrQ7!CmUtR?z60~p3(XN?lk?Liz27;wFq2&v0?xMa123$5Y(=u%l-1VWhEJS;0kZ9tH1c80c3+ z13<6Glk&nPiAW7UN%u9h?|oyNq;w;3LnFnAs`r%+@dvP&NtY7xHV^nBB-~+a)Wyj7 zQo3oR_Z7uDwX<(7w%O|@C%v4eHUq-^N;byJt6d=!jh|xcV7%nEaX!Oefmip{m#d_MYvInALA$u#pUn@7-1E;Yv?;R$&4770 z3IbM9^VAsP7(UUG{f!u`i-ua+qwiKR;Svq7<@F{IV(tUp=$^Mfm;x6!BIkrj`!ZUx z)wv}aza*}jqa~}6%jJbK)z0CxkQuf^Yk*;G@9#5trQ>$(mX)D8YJ~4{MDQBB+ndTO zihH7FO>gZXV0G9jdz&L3PLn=@b`%yq;uSVM^gk& zV_d4o>2omY&B)5CNaedkn2f)1k0xi9ets=p zUE)Y)%4ab{D%Hcdvp$pZ9(49|pDL=XZ8W3A4a9KNS!=q44k zT50Z^{B4+%=?a3ZSLPJ{W`AyX~Ejw z4On5H^dK%8_6$KvA5b~Z^aTP6Pj3=Wy3}90TH4+v@u6?gQQyT$eeI5ph}m8gY#yr` z@h2NrmWG@jsgDt$s@=vMz&}N0=|Cy>?qKxh?5mjvvFCGNmR(1aB&U)+(PM(%9qj5O zLRU>I-{LF04?*ytwf&6_~fHtRo#tInhr;qF<&M}X}dZzXQ7$4^iB(pUkAM9OP zHKg@VV_UEsB|Vle;c~%F4=ZPxRQ9(Ur|ibvH(xP5E#EFu7L+wY3}AvNP;Li2r~EUR z(ZNXy`hvzxc*Y(FOiz1zfUc$}{pK!sSc!ptD&BE2gNN`}3q@Q%qut}I+FkF_hMz&E z(o0Zy;C{=da`A9|?r5m)na{{-=}IH96i8_CbzwDCH9EtG7pQanpD!35#R!{qmT)5w zljRk;c!3KQ+0T_>XDU8!kELLt@Z;j?9#GYj@FfN_->|1KaJ+gZh`Y038q+A*2*&Fi zG;kByYt`qAnPRY7XHJqWW$-Ky2M1@nM^M&daSrLve6 z)H2~Qs7gp=VY09^s4mHGy|J*k=;xt|IYJ$Davb|ZSXlUu|KkVK20?Ofgwz$tuIR2@ z)L<*=(^%5lEei|=Igwo-w)6Zo?ckoY6V06SaF($kP`Ox-*R(_@GU@XZvD}_UVXeS+ ziH=?{fohKo*TbHvhX3AEHr-qX_YShzJ;P)6V+4t~@>1!y8nT*KCH(fC1G&%K7?|7c zNAig}DND^H`9;I8c$Lky!c2x$UEK~gS=3%~z-(>#er_!%X|VU_UsCelnbio95FPL& zSJp9pA|nT8!eW9NeW%EVkR*w#pj7Jnz!QIA!#JC_gZJ-08acGdCZ8B-TST_pB^=1z zXsRQNfjJK8m2|)af8-A@4vv@ZA)Iqg2lwP1h8#Eu2y_|zHkrCg=Ris_OeTzYfjTMo z*^%4ZpYH~O*8Q@lFQ1lw<+EkvUtuJlRu2!0vyi_s_YI6S8gJEh!&|#D0yPU#ax+bC z2c=IcU}PbEJQ$SR*ESR7@x5z={^$ji0;aU@*{b0$sSK42g4sVRU#(~#a^e83g$gpm z_U&YSN1!&$Wx95@5?#~4U$SPpaiJRVsmxvncedfj=3x8>4huyRv!Lp2yOPyMuyU8T zUrj)0szk5U{KOQ@mWlhYODWe+wdDP6dgR&8(JVCo@# z6WdX_CGJ~oFb&^ZjZP^n|LCy{&38LquM?fxtQ~iL>E0{c@wyDY2Q#}oR4}U<7PtGj z$X)%yG!P280%kPA)_=3FvoqkfP9>T~uBUA*UGLd3tFPX5*7$B8;naT*E^#QSTtWK5 zw}xWk-Ma+EeiN|3N9~`FfpR%3*rJAMPQ(p0+muUyxna0-!tjIEGft=R zS`u7&`4|d24tkAzB@*F-3HRvHe0WN49`54PIKFiG*jiMxnH92X{bf88!yZLZ?cyZ2 z>I-8B++EYgdtm4>AycklOKP#`lLN}V46E=C^sqLoFL6T$0(!c=gm|?;5SYj)|tce$8T&;h9wJ08^{1 zsEey;HSSZ^-DjdXxlvVBvkl-gE)*T(K2XdOK zn|{*{)a*{go;oac<_IDX$ucn?FL^Y#SwF2v0%K{G-rra}S>!@aQ^Bl=N&rhqT_O=O z1qqy7?@7;OvF&g4?Y^0f<%Q4V#;Cy1nKUugOtH~8SV{p|PGd~nl&`Xg*BT4FuTNrU zf@Z)>!FRm|*4c`f4~l+_OY4bMMCCMA9e*(8*Eg&9c;*@DT+?RD&Y>|3!r`r4m=7ckYwQ`%I;MQ2l(iCrnxv!@F`mrjeZk~FkltnB#AXque`kq~ z6VW82h>@U)Z;pQHE5W&HU1JVu+iXC_{)oBD{Pk0UAu~bAB+Z} zK?^Y?kYXqc6HQ}F2n>8QRd}B0MtyF>@6T6z z4!35VGJ9uZC8t?=uTF+9mzJvOLlh!Zsb%m+|4(rVqwNcy$pcB#XYY*JdZiUBf-G+ zD@oZ+woe9Mw+5$Woeo14#@?=8%6*2sCpxxNb}9s4k^NU)K}4Ri^ASDoSqZ(UuVNbE z>E7Zv*}9wBvI@;I*K~#0qcWe}9O;iZ;1e{AGsd5hdAV}Y5tG3z?Dr9F$HV$&lX7N_ z3g0;ECZJa$WW)0iui>NhiXCPi1F~`t9l)WLSL(){MXSc0n`#x(tS3fqQSH=k z{CdOaOGKU$@6V)7>cGPpxvop95`}OS_LdD5B4MQ~946cT`gt8;L_#ORL_^T8l*N1BqD+~#N zd!=Ull4nPK>#h#v4FxHDc3P#;lit&ll`;%vC&k~vzn%C)7_f~sI3%xhii@->-LiN` zxr2o7>@$B+u7*ACvgR}c%eH{a2Di7K)^)F*9aj0w^hS0c&z3fiJKcH=6Pcg6%X;<8 z&a05LZU?+6$Em=D&32U( zN_4t)dnJw?-M7Ay9&jX-SM`c4ylcD8>(Y8!J8Jn-6^rsL+Qq+(!gEOTSy-NIfju^y z;j<9(G5^pPUkF_W`jK)jO>i=*ii~%7sH{%n=x5m#gXyed-oB>LlzHVd8>SDZl}Afu zTh^bAxKq?6kBVB`g*pje2hEpt7ZOSEQ8%9^94+-Ehkdp(MXswLm8}xbXK%_)S8Sv= zKzzCe^HD@}@wG$HMw49$L_eU&x*h=3%tacA*>d6(6O(=ig zPUclrT5qeFe_LqbwFSN+kzahoKXyO>O0RBO$YG;MuY^GxnK#C={G8nR9lhA^kC;8c z=yEwjOe{*+I5*7SIQABe-^B|$eA?p;AIw4woovMhttl*5c5zju$(wi%>z1j;B|KP{ zXV7hmU>a`Mb&bz1pH`zQPTF*sVC$TRk2zG-bnC(~@^7;|Y!HvnQ?$nM{P*xj;5c0e z=r{h6G$c+|>y5i+CU7IN24Xe_)kMokZVHY(z*OGea!G@iKSxHfSy^lEw_eA)W>Eo&aKmyVI_88TXw?05Cgru}z%7QPUvR}1tCFQ$7D zu{tq5Qy@DGf8q0wmQomDd6zyHu%j5FM3KfLUWc5@spV+l=}$I{o%v)lfrug>eGxebTAl^6;yMzGan+Ve4Ambl^hBWvX{Bc2$h0?u_M5PLJ}VQ*?kKB3ji!nnqY<0%erHsC*7F#oCdM{sqK`WjHUX^v)-SPuVPL07Bu;XQZ=6KDnUYM!h`rS=4 zzxA4hxtHox(7J7Z=f>rN+Mw3Mu06&;5%bzfhB$>1+uozatZCMw-KuYp-GaizLk z3^4A($xfe3K3@NEgvg{_VTMR=+16|aP&lLQKL*;9>E&apHEYV(!F48zoWeU@KfC@Q zN}k_0Aj%g<5u7Ft4@jVYJ(TS)E~8=a(`n=>q+*Tl4ywCYr&!(CSt+eZWz{aY+5BUB zFPw-u739BbOb9D{32k&i|H{<+t|?KH;a5vV62Mdl*x6{>EVw;RB?@Rk&e;k(b7?s$ zs1YvB5m-!h;BqL;k)K@9kI>M~v(LN~&!^s4{g1wt^nkvU%7#x+^eupt&?WpJ4k~EV zYSB*4+WQsBEr29dW78y9KTmj$l8YjCa4maZJv(%yY9rqh znT_I2DH zlm2DFAYeH^xx3zVHcG%n3o%T0h0cy3aT)XPUI5ASm;nVcX*p4%tlD?DPOR}@+~L^>R9|>4@39Mi$Y>D zP>LBSAL{4$-{R2d?4I-3T{%Bah%X^9MheX$Z<74~KIU<+cZj@PPU%O3p-XHGqs z4rki}W#>BYMT5J@qtlT%*4cmD4E#9;ZbywhG!8ED{l zSBeWFu_OT^z5lR`iz3n$LKbC)48Y{wf-PIPxwhX7Y%+#VR?W`toSiI6_Lw2INqJp= zeYwjZxs%fOdhdr(A4l^pR8F}&D`4MX2iA%h{;}7U?%r$Ha=Px4h9`N_Zww44Yhc?7 zw7tNq)1~tNeb;@`69)9&=}-$|4Ax?;ci;Td@xc!x7pJq)~iU*|zTChgEm&Q9u5P?hY2Oh2MV=a;aNQbls9kJ=1ag z@%$_OH8;cy>cA0|lsk-GwJMUQyVhV|esF{29)q^e6>)y|oB3EWB3I}Hgzci-s|OnZ7= z#8!ix)c8@z(OyN6)3g!LyggeT)RK94l%--tgzl#~x2gQr-dop>T9dnV12eg2%5T#t zc__=Z{g(BpRr0#+F_F5Mx!1T;UHPoCHhMfCu6PW}phd&@3V56|hF|;wJTx(6Bl99T zYws(|B>p})o<5sWdCl|bZDl8$bU4j6yp@EqBuraY zo$ZOX)$Y=OfRfHvQpG*PC#5-}B$_KSdf~ain~pL79)uHdX{T!krOjFLQVENC>xAEC zv)()1&_cK|Fn!l!HjoCG4``d~p^p`Nh>RqXTa`!<_Y^B=yh7@d7QyxE!Bn71$2saI z+^mc9lPa?&AGP7?op{Qwn|X~|afa+7jfG!Ta|z0+Nb_2ci0FO1lt>px)rdgQ@2Auw zeQF}hd3t%prphC)Zl>AXW$1ay<@67t){uzYk&uLfq9WFi99d{?j7TR}mHsH$ss|hy zM%M(KjxhyAoG>;+>rDYIt)T)U-aQ0}1-J+rCE)vxn7w$kgT1l}%)uE(tXxnO6_k8`fW+KHdZ!uE1D!WGMME3)HJ; zhGSTs34td1g=UcYd3NR{$6!Tjd+Vpzjo5gXa{K3u~^IGq#bs* zAK^ulOx$#Kg7^HdUzj~KGyn^`|D))FKZ0C~Q<-M2+Xqpl37 zcfv&)Eh}Euu#Ht9!SW6Uz7)=!=HBE&M@{XeHfXT{ElTZNpHuFy|c>lG4k7of`AH9-gDitv|NCtqyc8Rjuh2Vw&) zsRDL2dCfmV(xg4M=e|D;HI_`MMw;ZWt8Wbghu(RA!d-p57hJ~XYxl68QO{TtXz@;E z&hm#M*5!LvZjSD*RrQU{7G(O`0|OpJNF2P!pVr-?O zE0KA!GPE{Ug6sd7t^i=1Q)otAWSq(Y%_yOTW)ps1?`b*18dy%mBGQuATDk9%cJ&$7tKaFfiy zBAUM&SXfSGB~w7Nt-U^N-5Uj1yna)M*q~|BYy9ij8^O9Ud-k19_KIt8|BB}QJ3!q< zSvB;Etj@6|(k1MBHoD@Y&WF#E4)o59DDb?nf-clQ@14uq>_o|7An=XM~21q%SP`<#^M z5*D5(J*T~J`U{Xw|5rr|6cY};`Uu*sjX&X>gMG_^D>GVBUc-fDo8bWbUGAAn@cft<=2;Iq~#PYmA3$M1(eh9$MX2^%}N_P@r=1Lx(f zX7508L29S}$yUb#fRZ&K>)|xNjfNg%_$PTzS>%jOrakJG#pM?YhU(P3Y^aaGuFk<>-p9G`2*{JY#6i* zwG=&e6s72o826zfP3s2_vI#7#NWwQVh$i^2?qjqEi3{t(##o>>J zjHcg`@UIs>JK0&6yn;Fa2#mc37iinPs)sVm@M+MQAIF>Bky?bshOMYzU;GAN0?_eyKET2P{v6Tjw%up?AbIq9sm!?jgqP53jMKerqcL{@nUFYXD`{^n_%YvVXHH0ioDeMXtR-x$hhph=k*vKFR4N>Pr|B=z{XEsk^UU z-0}Y;AU=8!Yfbkwh9M5#Wu4&WFzRf~@S~Zm3Xjp!34?LeXkM|(+`Rk~|37Qv0B@QJBFm5Z zfCisYijUQuPU)l5iY%Ab0@ejP72N<7u|K-%fI0?tm=s?su{j6LV&a1$jQGZ&Z3XVL6X!Aw=0E6ZycauB|?nl~7 zY4{|a-(?NoVJ=<&hp7N5`7p!yP||}2!Bm1h9K-Bf1J z|3q89;sb~2IdAjDVmufb5dJrD@8oc@q?*2ILVygsxR3#ImPhEB(H~N#*++G_At|?Ek-+D!@`Wm9CGD(B(EnA`Kit}z4qy1_GcAiLN1~P zGazb!J1u|zA`tu)G#Nz_Z8nDI516;(6f|RJle8tJG_-`3$mO;u&^>RzCA~4wZ7d^= zqO25+5V+H)2FOzs^^5MH*VzpgY34R^<$A~GuhXfNcE7n^D;h5nxils6`@yw~PqTZ$ zGp(+fw4+d6${a$RAq3J2dO`GZQA-Ujl1kOd^J}h@vbn5&0!%aLcF9d0o`Wt|&|rFG zUNJ@!^~Qk)b;~!>To}_Cbp8cHNI;y^5S`ha4n=2kqThlxZo=$)nV|xq)$amek)8vp z^~RyB5*yFxJW=fSeczZWP0Wk?g?zx9TQ%mks16X7!_(DTyOV>!Us zOeT3@8T~&jISNpwCy5#SU){f~qhW!;QPJ1lpc(SM^I=YVj?aKy6^npxr}b3-KOOV! zB{+4ahaEXeXN=*8$;Gm550G}0aO{$-=ZS>p#bl&i<)U^HE$DukV?%z5S|2S0{Le4N zm##TCP&B}0`Wfl#n#QZ^+VD7KBPt@#Q&~NZuTf_it0c)fyW2;4`ho*!)B*GOK=YkY zsKKU6)A(U(zTeWlz{6P_IQUqc>J?)Ps*3Vi42_BThl+Muco!luhqTMgTB=c=o|G(( zOft;jrW%E3(0|Jje%7=sl$-~Lks?XQ=%ea$GG467}sh(41lj;>F>&Kt;g+)X^_&I>@1A{8m{ z-=}QWP}I5)9+KOcP63~S*IK1iS_b-Qtw}an?T?_5J&?Fld;$?}YNE&{b;*x=!g1MtODFK@kZqD!!DOId^q<%ORr^^^k!i_EoMUP@4)ySHtDU^fjaZo$|(Sork}(Ga+M~ z6*le#JSUWUeSq$tdET1q;hT){yx=uP(VY-HmTG9Y5{e$7YT1+9zB%%3TNHG5LM?HO ziaE-oOROAO=C~+fJ_4Wg#By??_(B6er2Y$!bs4G_V17>~_6DT&g|k1c5rS6G5%0HK z`50>>P-$~qJ)<~$c&N81M!v;Y^+nX)d9?k`KH>wpc0~)`9CUVpj#Z8gCOWn7pA(%4 zd`>8I0aG(&pm85UI8mQ5FyS-L0Y15D#!3>9MO*vo*ON?jL=FvVJI}!;MC#2CMsf^2X^)Q9>ms?VatpTuo?b$I%*%9xpy1c;x$`-_AnWR$LTf_4&=Y`qHaH5m`o8MQoOTG|KBA-9^ri9 ztYG%#GY(>`xfajIS_~hiZ>$cKu#!3d0};TZWx4vdi2ia@b`IoM5{yXPP}4@Pd;i%T ze?z>ieUU3U%6^P;7qAxrE@Q~x1iyeY&Jf$`TLZa!sT^T>d)qc+10E4v!wr%^Vr#F) zpri~~*ML#iaY$dG5bawk5}4_5s|t(*{aRQA?1xxn-ff!@hF)6FQO?j<5%9nA`F<1% zl(T;T_HC*^V!@n8PZKw8q3-v-Yk zN!c^V+r?6eH_qs+h@OC)bXxT0^14B`-wfp1gZmNX0(-}vt zt7Sdxcu%@n&PibfUV-za1j@)Dlc8aYs}$CLn(h+iO2-=Lk~F<@lXD>7M(<}p&!Z&;=d2^uhEyU%!Xxi+@Oh2Rc&Kkb zgh{l9@% z`+Sjz;*288g3bQ-8h) z2hKZT?Ib=hrXlizEu(vSoYxVOVfe}2Kado*O?Y@ehaq7Udc{4Cea zRb!y!wkcXq6H*Jw8OSYB;G-cbAjL?PwrG!f z{{q<1_hK5~5CYQb^gSRw=NC%AogODbWanIFgrP|rJik}t=~<5HPFK9p2dsPd^~iQw z4F3y6>W9$=2ebwS-}fU<+&hTN)5fW zD1|sdg_-_WIIM^OJqZT;mV%B8Di3IE9w?aurT;Y<{g2}NJaJe4d>a|CE0K8);kg*L zKz<3>(ETcILG=1sD)nR^-QnTEAFo!P{FvUEDz>isOsXmWP>n~Hqb!2?J<%WPtf&Dt z+@P}dKVR`W8}oapW>U3`;lD*Q=+C;|Vw znTOXQZnW9%R)@c5+D)c&Gb~SOB8@*a)W^&Hfzj+=fTrvlQr&;owL5cb=i7o*W>Ha1ZI1jo- zy(f?hB({U5Su#I7!f#-;RbUOtMm zU;0fKJaDAnC}ZoyNHM?X``*Sc_~1-z;gjKf0Xo*-vtS{`Em(o*oNIww;o?8eS>-}1 z-np^o^Z1#-EMOqTfH#>eS_}A)ZQ3|X))pewaf6T2QU3nYrGKC3f5b(lFmV_Rtf#r2 zgt25}sl6tAL6Mw16x0`|{-=i+s*pXdYG1gd ziIWFHNwn9mrrE1}42P@fY%RWve8Ln_-A)wz=8|Ie^b*v0`tIH9H*(KWh84WZzwBJd zTO1ks;2dGu+@{GUMEK$NF`{bNRrH|m%`yW;3QELw+Qz+7@yinkG93XcvriuPT>1 znS}X0AHUFjKgOSn6rS<+Eea9!PFk>rib=m#-@NE`Fcaf!7x6u}UWui_nQr#( zV*J&COTc33HvN?l*&azn!7R{_rhg`!TUx&PmvX-)F$PqfcEg(t_Jo%UhDgOtGSnL8 zfu&?8OAw}fmG+J4CXuXRBI(j)j5GRvu7jc$eb$W0c(P#kKEDWL+pobG`#o^mPHH87wO+qPK@zXUaHeu2m4DlM<8(iw^5( z*EljqRBJhZ86m^BP3~%(ezTk&bHh6Z%x-=q;KF+8?@2YRkRY>9Rr^;cII$1OA0B>A z2$EijRCRsorFqx!7x)KYn#*_VkJkFE=z7@JwW2C`(CfxNs&^!GJTe7?psPUcb$)=) z=^UoOfACZ=ylF3TuIaBa;+ym?g$_996dB&TX(jhefyOy}12{)(*AIw68tWQhiW$+{ zH5soq#D0`K_k@|$>8ef}q%WEu-eCWWTS4H6r&Y7(nKLOi3};qLEpuW`J`(5aTwzik z;hWKdQ?_bCGoep>3qe9UTLA+hrw*_#q3~}K{XCsz_g7!h#07uc3_A1U1@)4+o#RW? z3z0d#SqdK@8pT>7AwWX7piq-1=znqH50~Ho#9<1SAvp&@D#!$uV7ZfQA~LNg_iLF% z-#A`Axf&$NN z)e@*%PPW{MiCn-*ossl#Y)-ODd-!4c9VcCB^^ZJ=5*W8VG!@~^ZE z(}Jg^G&5&KVpk@P&q|7G$8o3wcXO_FZZC+3V<+gH zD9|bF!?PI`)0!WxEZ9nFajT^#9DaHl=S+Mg#)(dl6*Z2Y&Yw$$dQm`Da%ccq$C>X{JPDRQzw+=cFO%kEC5OKB_y1=d?-R@ za{(Y zl6S6v&!&KWU0pYm177k_RPY&Q8g{6!a56basPKxUE;U3hX{ra&C;k|$kd2Pm49QVQ zhN`NeF8Zu{TsLvpe|5dH4UNVy}S4gRJ@AfL~pZAT1}-GlZa=L-&ZVRXUGAj+=?Za_XO`{a`;((o{!hcZfHRT^*=i@$-kOpPUPe3gw*@s9TWNk$7 z?E&f`kT*b6R>hIo>8W(AgU5J%zKmhF7m(rs!OmAy)a)bpdDpgT;mJ;23n{T`$!FLNj79cA>4MlJJRz`v>RJB# zG4(2`(EDTwdy+p|f4G+wwYE-T=dyb3N+4Wf&TauI#AgB;g6H&!E|OM;kP{ZI&`N97 zYiC#y~Al?V@nv@ zA#p^C2@*!v1F^^_ziU}semsGBJqNpVwXHe{tdR8JG?qC-?KEJ*E>z~F!1!4d$T(rg zf{!0de4<0XQ4-n!qY8vT%CdMtj3%NwHL$DAp2}nHZVi2bmQR5rV2wl1(r6Si2Cj>b;jf>J|~hLV{q}ND&-D+AC=@YL-f-x z^XMn`A;DMQScgmQ$ZBFKVZdo!Gint`A^kJ6hyLbpR-)}Zsqh|hCte$w!{nTn>>Rw9!; zL7yq;h`|E_zckq39(U`}|0I-7V$qHiQgGL?-yJC*x?{%k`BT5LqV-YiqNBEM4a+l! z=R1~y%zId#mEThYxBwH-KTbKYTfBfP`Ovo$FRf>4MN3<*wjPJq+WXovwe_?0q<%#DS_KtLSZUq>aWK8@Kq{c{GX<2#aa zm(JR2@zsuap~I4}h<7Ih5&U6!ZysZag1;|7?p(5XOAzdg3@SY^(QY&kJyS5Oy}U#XG?NI}t)LIB9Ry|}^1%w#KaB~a?uK!IXj~cXA*FDy-B0A>FD5*=cFz*0ox}$EU^ukG9w3|CbAw zlXSoEf`pxCU09H^>a(`|C+01v)*X_GO;foWTAJ92O`ZRsLZ&di_0=P7b2++DlIM+X zl(z-h7ArGx^)^PuIzb3)$2Lho8y{IWrcIH7=nn}A*^TCVdr1cRTsVCO*nU7XJ6sPX z*t+h?BvpQ6-Xx9Z6D}8s2$$LUVp*SF%%w5SK1U_ zpnKZu?@o|KEcITso~wT%PP?JN69q%%x_$AYw-qF2ho4Ei zk-aff{yVBWpqO&cDOvP4Z`M&%3MeISszr9GAbVOo%H*HTK`JxJzxz3R_0)gUWR9YX z5b$&6f%iffUYFFL<<^ukCDA3^nMH;%AOL(o;0R)SMNkc0gz+Jv#1$k{hA9{#nbH#$ z!6z6?c;`>M;dMiTnZ}|I>?S3cA>Opr}L4kkI-1nEq7{6;O0(#Q@x4)ajPJ&v^ z9wV3L;TlsCHVU_IwAKYF)_0OkeT#iS>yR%hvjWABTuB~C;_^0dnmmpG*f;2V~Jl# zkck^I(iRFS?LtDPu&arbhLuR5-)R%}7hLR-Zqm0`K#s~Evrh{Ns?9XvQ$O3xt>lnl z;EeQteOf@G$X^1M8dw7@R&wsEsSf40vjXA8DWFZsksA!99mBoEpO@FHI8z>OJ^8-Vnzp9$f?XrlG+=Br7hN(V&|< zM6qH&nrR~YA6r|~CfHkc%95FE1b!iqe_aDJ9hZ}4W2?-9Mk zI(}p+LJMOJl)NvvXB{IO4s5!C4<+<1eLl&kx2OVH+bowSaWwaGp>egGml_n}z8&r2 zYIp9z4e=e&VUPygQtvoUP;c8Lz7fG* z&V%fxUpHDWc5L4Jv3~~2zo(ZC;P6hAaVR_Hq6wo6z?S=&0oAXmpe?Q&v7TcB=G@IH$aq?v*W6M(%*xT<%RU5jbqHX3zZZ;oorm1<-QBgv zy`bfP2idt1SPN=hQ<1&K2yqa<)C1SW+lk)%pKs5Z&cfgZuyQ1!FAF%$1eD|+=-#9qaCpst$OmW+EFuHdft)*;n0xd{yO zC}Wa@fP^NF90d8vR!S6Qpc4gXxJb!c%0QEx^0oPqM_=!HWqSNv$I{su%(blvD#!1> zt?Ip_%vq!3kj^hVHtm$R22kD_`Q5S$jH}}Vh?WyZ2DP) zdi2_uq^-@WJ_)a%89s}-IBJ+{>e1%3pbuwA&z-48#%A?!53@Vv!ovaH$hL;>ZPReL;vg%V0 zRD$qC8fYOY*sG<}B$4(E#k#ek% zL}{IQ&=Dz^Y!>L#aeJOMp%;vl;5qx8a2{!(hMus$0Er6mS{!)b3Qw6e?+4=@h zR(7FSdbAk!y`#OU%Ocr ziz1S?959R27}Y^1t$YS(UNT|UB_oL0j4yxeSN?HxH8b87Spoc0-m~;&f6^o<#aQtD zQwiKJiXQl7ulKE@JTk4n{?_a5^`N}_Bgj@t)9~TCz^Sf4FqtC29aua@!47ZV%Q@Kj za?AKl)_<=N2Yo@WuX2CrkEmudOyGXQmr6d&=@fLj2OE#b6tN*zEJ=T3*k19=<;t+L z*t!gq8}zAxE}3$>@t7(_x(cu2SoThH-vL?D(b(z_(@qO>unZyBoXHQx(@zw}xEl^< z51leN)eWCY-GJPSVUlI&`P}xWc9@19<0P&N+Y&cz%cW#crf3LXRYMvuMJMImTY#2{ zqDuTsF7X}!XL(;xxP?*Xf^ve@|A(rt4vVtuzE%tnMH-Z5Xb@0okY<3P8vy|Y>5`Tf zLAs?ohAxGnO9e$q2N-%l=|<`1JNNU(@BRLJuIIYAo%`J9?6ddUYpwm}lo(N*Zp-Pq z@v%D{(n;`$c*>Ltx@iq)bVS|f`xX`?=rF`{nB@_a1Jt;EATHVxjuk2Kl%cSxiR(Hd z>bhsftLN-Mdb1CSxL5H}tC-T_Y^td<)UetVi3V@e0!e}I2Lnn_$%UVER34uvavOo) zPKD!-9~GC6AVv(oPBMp5ikA@o+&ovn_HI0iYCw*;|C>6AQBjV+_bwDj%!4Ms7aC>R zKTw(lQc>>^cpZaj>76@w#xIkYp7bUpDKs^M27<_jli}_Ax3qW$Par{H zHjo79@saQnimou68n(>X37rOjc&PUP<8n6We^47V;1F=DLv9F2ORDyp1f3FIujY$V z8oZ289^`5Kh2sh|u9F1Fc5s5Ixv~0aR^@=p(^*`CUI*4fyNG;K=<0+tEK~J@5iT-S z5~rgL?G~{~sV9&avK1Iq9Msusio@R@7!e^(S%mh4{q?ON8Cjgb)yuOx96}(`9L+8g zhi*6yyg%kVH(H|zlcaWmWW-|H_Oc%&C4*JpnQAG%@DsXsR%dL13yjBATEi?@5cZFH zOqsWBGZ>8K zuYYB4g@eX=8asp+Hpjcp*>upA6ByaY+1c!y9uO9GZCrShb{w5tSiaI?blwaTL)|`uls0m|qNm)HaFEGAxU!^BiivIpEzTj1!AQkXXC-f(tp zQg8Vid77y> zr=Xz=u^^iE8PE*7Yen+dD$kWTQq|9RuS>sVXMS zJ?7#VAMnheKS}(c_fi4e}> z<&${;1yRr`cZ%0RQ$?snCRfO5EmCS{Khn?kUMtlj3!MRJ^sYS$Az8>CuT#(AG$Bvz z@Y1!;7_@voE}gV&I)Xf|iC0^mdD99w4X7jo*NqTPZv-sFag?P;3~fRvI$eV?k>_xh z##zu(=C&Zz2E1e2V2hGkXu=^+P&n)+zweK&~|%1^BE+n z@edlZnBUqogw+B4rHjo^AG+&}dM{-$&UfIie^}~({c%E!xA_co`etd&0r5-f-K_=g z1Y5)!$V?oWy2uI_9S>@V5G-?$3tMvgjxUFPx*WwVUJ_cC9(K_xZ8t@>F>;Os)-)Nw zr(+kWR-=HGme}l)J5bFj1asH+J@zPVQ|jpLt<&s<#KKcQWeIM5^w&f+De;r2dTA!{ z>Rc*+8o5TqEv|b##gr_sYC71Ev%DTf_O#cyt~6Zh20QPIXJ`Q#;uRoZZ4lY}DLbV` z!|iYm0@#xk*NFn$hv@tg590tG=60nPy);z`I#zlOOUbV=`UY>qk)pTF3MceHMAKqxj@L}8!e#o0LW7KL$d_bW`$2B_by2W4_kz%nZMpSn3V`nE>kd$w>KK6Zo`aPAl!AMbr) zMxc2HB7~zU96s!TF!}Sz`QC74?Afjx5SP=sL{&Na`{_#)R~SlEKk?7nVW0~*`zt?o zw*#ddnHMVPUnR9q8~tavNS(ymom&+8)6_Nkg7wtMX5F00#g?p}Q_(D66oh0jm#x}~ zr8%U|z1$6`jOfxhu8$}FgWlJlaSf4Ll=^vxpsobMZUrY=UXMp94h}<9AD}DVp+KB( z)lwjUrpl0uLg{&2TmeDs7(s70ok z8hJ$^(+?+gRNw(@Kg90Qmb%2R(P&?&gMwLa@1a!uZ_b|RviU?GbwU}Pz1$ZdA~_1o zJ25j6>!J%HmJ&hmJ=XTKGr#W%)MPyE7+7n%SFjTAOB- znME;alX?MEvB7#NRB{<`n@kdfu8t|Xy2ijf`As>ViSbm|;NO*RJSQSw6so(vlvX$0 z*9ZJ4e{u0H?KGfuoVqJF8?Pii?BL}u%=`g~hXWQ;+oPk{z&0nFg$QLgB)js0{l@$v3aKPIu44BaT<^O&tA7^CSE6yOv%e{%T(kj zGF;+)p{p#jE6IkbUJStm35WJNXR$OAu9Y5AIs;(Jh93Hjl5fxis`h6XsKE3Ug z-!&ZmAoIi4KqWkQ(e{5T;Yg$*)g`19Jv6>vJ}?1U$+S~O??q9^<_o%Ke@lYOVaM?i zn;?O#VbNu*yX;sHP>D{uJ|%S5K^?yb%)A6nnP)aQ%rQy}=M#hemh>kpS0lT$xY66i z48D7^l^y0M!~*Bp`EynQdUqt0-j=xFw9J{1BGPYQz3V>L!P+FD#RMKGpl7`$!4`~5 z4cgY;+3irh@5ZR%9wfU|91L>pdH}Ap)W44@tMtrf)0oK0vM) z5u7B5IvqV?TM}thuxXARn|(vD1P}L{C>r2JH~}t1Gq{!zo=bv@XgBezLU&l-{tOj(Tsk@e?48A0r{K=2=)3zAk~6SuoMQa6>1>%imSWWh@$*3N%^P4 z26F5?0*PL1Yd#*4*D=Ijmm^|JXl_S+5D*0FDv3*QkQAo=7m={#wm`4rD zGAE@j=jSA?kHViE@JYbMxlFeq>jgESp083Z830a4LJNU`Fr&Ko_#RMt*!Ul|%uaM< zDN-2^%&PtzxpwDPDPmL06g#OyE157t=~{5jQv|W^uPry^C}UA<-NWDQk>z$n_oqOC z(P}-6p^Bi=UW05Od>KKc7bbO_V{M)X8dMH7Nutx}y#Dqw>;sv|Sz!C(l zW*%vQlojXt8Y}_74u&F&-f!FXt7b`FbE0G!tybiGB%dE;I&I10XahL%H&}gcvNlsA zIyh3Msw-#$3?l!LWk-+bpqI=6bQgQt17Ev$+&h!xT5DvY&1NDm?;W*SY1OXq=&b8K53UbXbTde< zoW)Kp&KSo|r$(Gr4SHvyQXt;~wu^5YVmqX`6d6^)|P>ABBfypB9ZxWp3S2^Y%CUba-48`Y+;B@yAnW}37upUa# zSSz?OxwpKcb*D#ut|Wq2;-qCN$9>eG(o&WPktBNrz_1E zZFMLQ4@=-=tVAn%8&CZ8rXH(G>hnEycXySB9SDe-c&^1EMPcxg*sc@crDM%Y?siMMzZ@?5hk0s2jAs$*18C!xQvIjVJe_M4Uw^Hwhayj>Xi1}Qx=1#+a0ix&n1$$T z@cnEkbY40da#vAF&E_T>9MK6IZ&}5(ReAH6o zd`xXd-Z6Diskq$G!7jh@@6JQz20o_Jr)emYhKuw+P4sQ+m*3obS6j~Ixp!J5)(Eqf zPqHyLZMUfA*Q{mb#N9^f;M8>-m(Bopa_$*E1=v)BgdW`=kBo{YrAaqu;A%lXf~3o} zB@g3*(10d@vf^Syz=g4KGa4J=a+hm!V66Q>zz4gbhq{_|-7KjZl&1%t;eyt?k@mwO z4p5oiu=M!!Nv|E;QeL+t??HPg7ymPrcTx^`!7iJ!%$5C#oc;`IeQughYH~B~rH3Y= zpSW3Yf9x~2M@>Az@tPIpkj$C-3|U^)i#;p1mZk8#mdhU1IHc-}Rt>MZO2U!jy~aWP zF7JCnHNY2^fPYK9>Pge>bL>Y#kp-gNPuB>?si_wUF{3C0 zhX(~2yzo3S#)K1*`$?xdn*Ni&jpp^3l}3eh!jM0zak2Tz7%h{xHWWfulP^`4rHglf z5#4zIkF&=B1DT8t(V6SQ)7RJ3f+{-P#XHI4tG8MG-B2Coej}{LvSf>EO4+bdf6vAh zUEoK#4tuuWK7?l-wbe{oS)53(*{&PKjCr>1p60z%8#{`*f$&#KJ+OqC%&(P2WS8OoV}1g{_Ei@ zj*wxF>r`qCiFWibn@%>fq2CHO(5+oR8|hEa4;CHY$WHVzaoDX1WJt{jsddx1MqxLQ z+Q$bC9S$bIb3|GH2Zpn=HBXls(DKyx;o9z;Xgqt2Zt(boRgS~g>xGRPNc|QV zV*qFmeAFzy@Ztw)(k|E`z3eW^%Bs46Ndc^31uN=!2G3t(n>VP2Zy3r#YIz!A<8xD^QcMUf($zz-U|hRYo}=7hIMId+)YUJd#-8dKS%2xG@T$X$7APR`1( z6SRO-2d&#(PtM8jYSfc(`k_X1kkzfH!7N*#Y(glQj-d^-M?8F$Sn~OqIA_n6g!&=( zzRFS+iDkq1yG&<8f9I|765$Mqu9Wepiu)RQ{@8>Te%4dv1wSx%EM~!jeQQMBjiY_7 znMEDD;cCW_ZzH7TYr-1X>XbRX#Gdu-UWzGS_z~=??A#X;krY%O*>8CXm2uvtlB74vDU}!UhrxzZ0`4)SM);8)PTegA|#vWqXfxe-iiAae| z7-qA(WYSH13VX>rS3u?d)@njT7TfP6bh>M3`y=r!z;Z95-*>e+di4+OVb(vkh4D83 zg-Qg6k#~;yqMNy!!6}fN+e%IhCPB(UgXxjw5E3z}(?A>~q22QaB$}V_rL~JxR^8dt z#`LolqV+vE^pW2-crW|&fjBjftl+r1KtQxo?kU(>_U^~rhJaX_B%QPG!jsIMVEJgw znu#6y*4jjEUi7L@vWlrFn+XMA+eQ3+{@AELE zTJVTx5uM=0QMY70p-~bgrtoff?IXf?{;HfC6i+`XYUpVqHvx(t*VR_K{;E+;ZJ*$7$>lM=$oG3c-Isu|}^=3oHE2Tsmp|`#!WPy(zGb5;|&yh@Vb&8X! z&sD58e-=#LO2%%i2rVil9~_c^qCTDF*t_oCA5GeT=ID<*Cw@=AdA7+(EK=wXyegbr z(E~DRp7Uru7xv=D2vS6y{ROzx=!aT^e_A`!kg0P1b`2sBe5jOFK(h#LH&Y|h_Yuf7 zS71R&Hx%QN(t`UTOZezZ&BfNLz1_` zs-Gx%rAz#{nEm*}jO}N04w~=m;G#po&GE>Y|9TG~rUTkR$bKYydf#unq94MVTmd*1 z)543AoZjET_KfF`oE}1aBWgG{Ntll)AwB%0uDrP~E&`B{uJk{U=~ut9HwR>>V5?^w z9BX;pGHl&@R5iA>Ihnh1ak{=bj#=*E{hLpERiMW|Js;<;k7SI51P>7PM;952tT+8tZK2n2tgo9h-g z^y%so-t!Zdu{5l1%gyo_j$psr;*1Jtp-hDupA|WasD?k>OyTTiVfm$Sx}Sji$mVpU zoF|YURvHs+G&-|&GK<)#IPsKkiGDiWrJAO{Hpr z8+9L_H_U;?pTXG8P|hB7sVe^d47AwR$6nPU2yzb2k6Q5M5Uxo)TVO6H2wBC7EGBB3 z^{a3uuwtmb_fELkqo?+<*>Qnyn(ZzA(Y`jeeJuzbav3U(W?iYmvmGVim z`?LF?nHC}fdhpzjZ{a`Gxndd1LC@|)Rbzi9&?EI} zGwX^50&Bma^uoV3e5Ls=@uC!9v9l)r|NW7^KebvEYmK(g+Jq@%0d1t2R0$jV&EBW5 zu85d@{#&U{RJo`L@KSp+wk4fns7x(DWfgxKSX{3VONY%t)95OLAXDdNXBxyg-!fx5 zQ`Mi8`Fzsx$|mS-WC(&BW?|4{u!pJHeh--M=7s7#0IkW-8Ve#M{`S{j(-HuBoi(+8yyW} z+tR{5fW%u&X>=9Jse${LQ@^z9Yhym`qU6~h+1;dS-@>|JfH(j@Bfuj0nG3>h z794FsWGNC>ny(2gN4x8_KZVy)y-z+E1V*IwTL2oi2PV+T(%s=`V8o{N-OXhT-~C$~ zeEWMi^Jdn41u2H>AhZJQq?sV9W!3JB+8$#|*|3XmzOwAWv()+|_jxi_f{Gm=Xz|D) zM9{&O&acEP4sH3{+7bY+owxr=WA8~-4p{y^$jg#hq0S@T6DJR*!V*;<$&9gvY_O&@ z{D-qVCV$Ak2jK_N-Q-&WQBnFMPe6{H3J@SCJcdKR!#|ybQ!4}32+jnL3}?sA5`f%} zL!RZd<&uB9NIjz9WX4=w`kHnA(hpVT>ErqDv)M{B@Ppr;=f$ky(|oJIYj)#C1dC$r z^fz{Nf6b9JDYE6QKv@NK@$`9iRb&S|o!TOI#eyLqwZe%_3m##t;0FQ^-{cly^b<{dg2~Vuepw+ShO- zNKC4t4IL;s))dlhgV@3w{hgIB$j?g&vh%+-RKFKD`vbU5snLRy-)Ua|3Z!+Qqz-R^ zlU*9-okm!f@gBB)o5A}#14O=N$wRo;YXAu`U3}QE?w)7oay#C!%$+IBgRg{Bl6gk@ zOVQdZ_UVrFuI4Lu{-iak_YQQ^_7JufN1h$9XL3b2T0nW&osf-?PEmAEJhwp1fVv(1#`56mNTU z7sugNqpQC3+X97Ho@laoWMST=diTZFy8$wog0hEF43;T*39mt3wS^bY5oxzDawi1* z%Bx*C>0qg^xWHRh;727ZM32N60VEQfOJ!I&YX>hrCr(eSB8W%jvEA*gf+(;(Ef29* z=DHqpliCkaJ{5h7k)ZkroRWH{yyb>kZ|T=UF5O3!vl&yiQFpn9iJm(m^YlB+iCxx~ zhb!b0zt-gsx5;C-g+v-^(!){L0?oiNqUaS%otaA>Ri<$l%f&Tk4K{Fos!V@i%zv()8!Ds_^pLDfyBg@uTQp=c|wO6!K-@2_C? z=@MPbhlc6rsUgde7XwZWMt*5c6jV!Zb3>^z3hDTrjK#BlBFp~t9_6Ew`$gaGgxbN)pJ8{UA{+Ha z+&kIihO&#PaitjUfdlus5hf}7)G!BhoEucyheUmZCdM0`mA;jR*8v}mL(zZnO25E@ zV{5+2ceIiIGDM5j7SU+#fu#&lH!~@G4uzdemZ;ho07I^?=sKy$#g0yYzHuj(<>-dg zUDR#IOdNNWE0*Mb^JJgmxU6s_$})TL`BFn^-sM%vDLmui{9U9K^cHGdFxf>a}N{~(U-dXsStI8+eMCjRapP8T5?(gTzEPu z;2^mBjg9UA3z(dJ-AVqHU=J(3nTAvK_XU`OLO-;I~T6H;Szx%Gq9^J3=> zKXY}WQ)IyWK+wR>Iq};YTMe{_w;5kEJ)o93t#V4~7`c`1IA6?9R&XeK?jH(EDEf=j zEtC5UEcW8gV5{flmjN(NVZQM5B}tg_{2Lv5k1S8BKHL<-(eZovF$WiBV?2QK4J`*AF0kXR!vIH> z#k*dk!PhJVj8yaYkY3ubUPZn2ZdTej$t3ekOa2$NQrXC-oLs+Ho-QM<;zEvI!k?pPI&+F3o$KKcpre$Idh|9 z{B?QnmE@Czi=!)+sn;8A@F8|OysEcGJgzlh;P*mBy4LV)Q<~~=`rQ83yxSQ5PJ)LO zCXvdWqPjQ$)`xyF@AfA(}y=; z%Ijge5%V>e}TH?H6o-L^xND$!SOrlF0=EpK!% zh`~O24@Y zYwEIT(DAv3_@#x#qhrNdn8CJ3!08)kFk!;o{j6}Ejl*smOZ>_{~+ed z*vZ_}&~Z{tB(`nHv9lP^*;65ZR>41z?>m@oQ}GD4dW$Xdxt@VVQq>=TuuHg(8d#-4 z^cy=YtN!?Zys?ST&bI@EfZ@LSduK8U54oW)@od{aDHRQhGBc?KI$1tNdpEYPzBFL> zGAKh-OX!8}1m#J{Mbh3vBfsw4Efu<)UOarMn0;%ELN7jeJ)@P|?!>cgOZORM6ht(= zf23G9Qyu5 zih=vEEBEjW?@zF(WW85iRAU0=#2TvC%ZS#ru9m+!o(}y9b7+%53=~qqB<}gwpL)#p ziJ+0&-u=!gt~xU@q;j>XH%OH9P5t&Cq~kXem@@082SN;6!7`6z1Iv#xJAewpZ!K~G zdAdW!$$WtIlH0AD>GC2c7CE$Ai7tfV0kNKo^szmWD^l z^?|p+D2C~Z0A4~r7!orwS_!uMhxh;;K&E7M{YtKXr?h2AiECnI>>r{#2rUP@3Uppw z11XU_&FrIhqt(q_JRn5?#DAw7Ie-}1F;8|BPqXu_$yLiqXaPOb<$TQ*KJzUJl#fCE z!mh%B#K5w0(&@eG`P;P=%5L49DoCOp6W3sQ+uzps1zb1iI1j`I(&uG$pt4wE&9LPQWL2}O70^1UAz_GH>OWzqL@IG{bi<;2k z%18uaJh0cJlGLrO( z+}qj2{!BuzD8sQk{d}f6=KhP)qO*ccdJDZ{buo%mya`Gp!&)9mfa*F3AoPxK_pszD z)$Tn@7tw zEx`G&chSiwmM0u$$abapxlA4iQ>Fl-&mz`LpnCCvpbPuNnUtoYQv10^9tAQ8UaZyu|NVo6p;n@>M{rK%U4`((-MxPGGguCR3juT9EI@F5c z9&fXsCNnN-hpeqev@dApK&Zfg0+PToIi`t6$(b_7CFA8(1u=c9IXyETQpIzYOl8SrZTlSF62l@c zcu71gD}=KdOp*VyIlg>(8Bs+{)kOL$LShUX9e}qN8Iii%{ot~s>lWPrCH$26y6JP- zrt8zKZkMN{a?1riS$oeM*|u0{olV42DBUj_sEY^Hqw=f8{yM9K@vDnQo|KQhjMwQ( z?AB&U?;S?lQ?@}|=c(u{3M2bRe89DOszkkxMcQrr!wYUJb|>rUV{u^RI(qyH=u)P# zwv6wKxF9F&s@pbtK|A-8H7Q4jHD3{=Xli!{BSfeiHAb!79INTE)Kn9OYU+z=!lUUtgZoY}3>mGz$izv{AQs z6s_~(@rc@95AGTzJaY^5I4gbguun$Sm@$vfAdr%d$65DSLGt3r{Pg7C9I%RWF&?W` zh_Oy$2Jz*g+=So}6IJEf_VZZq(d_>DXw0S`j}eGptAf@z8y==HJ_!*;2w0LRJpU^^ zv5~kNZowSQk5I1M2#Z4r}D36+ysQa{ksM2KgPM$Ynb7@ozFwktU z(-(QUDxi*o#&x+^Z_R%)9966|)}VIQsD@0tF+sC_N$2>*pDCjGnMIOr$fx%jrCGoB zx54=;KAxw)94FyE?*YuBO3k|(`fizm)>?^6AmG^nOu1c;M+0NSmH^@80s%*z^oGP0 zBr4mD^LP1n`}i_|w5A<%k!<8>1Lb_u2XwA|k1PTB*|1$&C72eG3|wRM-zK*y-ovC=AT;T;LwGRW=pYC7ET6jJ^bW|4%yOZ(3G9- z7ezDw9%O(i18uJE1Cb?qJ9!=$_#p}tNPj2!KN?l#jrz(8-T+nQ4&C-x0<`=Z3?Qc$#CR}it<_=$^^^+ zJdPCk_2yc|5eKo(B0wC4pnflr_E~feo&V8`S}=f4zs|;Euhh)?{l#Wl8p%`B-Aw;D&)B{(~c!rsO!0AK=CWX`jFB;%T zt&hOD@ETHkUB2)M=bxXYI}#-7mn;6j){cr?bXo`*hhWD|Y)9GbE3(NaZp#C27<4b#<|D8W{3i&Qof$?tuCrzPywCfB+{g%fZlsg}jARyN|B-Y2>$?RmK|ZTI3AP@J-$!}`$QPNQ%NUCD zHtk1Wc@3T2fHFZ~zB{(zvPG1H5#aYT(wYU1MSi;(v;2UgdlVO5JY51L7=BZ?N-d5q zmTTa>SeD%8cK1Kve>%Jy0~w69hS5cW-(g_P*f|;ue6cA|H}1LOSM^97oYtkEvV^oF zF@iOsfGT3BGMx%BVRpeJs5H>Vn5p^$dfgY6sNZBPMxbt;*x492)M0jzAz8-xJEYr> zchtL;L8EFIax`JXxr*BhvU>;8T!qNw9_uE8e;W)zJM#*TDzG)4%m7`T4a1(9Drl~z zeD9dCiKf1~*%}~=3NJi_=a{(m3skOX>gO4ibwcSSjo%)+l4aldKv7tHE{w^(eb^d( zjs{7x1kzMrJwrPSWaqLmk;CuuGvvNb>;QECjuP?DkzMX}XQl*8Rg|pH0*sqT&=~Vp zDysldFlUwiEXzQ6YVgHsvUAJf-b+s~mMRj9NjFB<=BiWw_ZVHlacBI=AHN5&mJabb zacSM+Af2YSM;J((1Cf1XX%J7lRAwJH<5Rv%T= zsY^;QxGFQ$=l!iBS`#VqcIh#k<=6Qe&O|iw@0USe2j&GrsURG5F0R61{$N$E2Wboi z#wa>N`pVURkE;G2Csq0mdEd;ntkk%rUch$b`|)l*JW{1VQI}J{YQz2)%CeuzsLi{M z@15~wV@oe?-RGA3+7-r|^L1@{m4*W-57qJ<$$<7sqXwQ;qe_#u=Gxztqx|k;ESMk7 zLfD`S&C~sDx&5`7IyI29I<5tO1^T)aZj;t=3Z7@Ff2NVteSyT_4QRygM8W!r`BOMJ zuWl!v`c|t_efy)GmF0MaYFnC-hP$kRSSaWU&cBB_$H_u}V%FWL6G_3n0fJYQieCqq z(sND0d8wli#bA#Uj1*ZR-ewQujxyoGYz&KV92 zYq+qIkWrM6DH@K<{J*z(BL#iKX>sy&|Mpq`Q<34hsRkz}aqqpb=EkCR!g~)t`2$Vj zv_J$GIqC|dO>)cN?ab}fF9z+pWeN;-I2Qz&k45&e1P{pHH2=2p!a>`s1PoGDqMhT=3(GG0p$J$_MZZ z9dn}cWJBdg=`cz96;EG)Vyd|fe4T+Md9v$T#0<=;aIR?cHto&brfg{{)n&5lGEBKr z>P&RlHzSfKd?k6M!8xKGsW?C7XqSz@d=gK7#UD>q&GhE~KL67-Cfdb?Q_MXqslzatYa|6t@NLL@@|pCcu8CGg5s87;co*YWik9*CG|ZaHqxJ&r)V znq@#ed4e+&KVkotBHKTYESAovO350vrL= zv}}kapyGh<^H;3Ov|}dufdR>ZC8gZybev8!t?(;`;nmyuW7f?7IbL8b3Yj#*45U`~ z?s`T@`GVc~K%DWNFy;c11jNva$%p%1o*xPV<1-(ioUsS9$_<7hs-Pi*b&RqhiA|%> zeBMY(-T?%4k83=G0!GMvO~(fmKn@^~75zdzRT`@@-ZZ^DNvX~F1t{xjn5iALCN}1N zPJyKV`Oa?uV<{MkwkGG)dAP|XEuBkr9c<4LFeJqkWc`r$>>1ezghqmXd(ktHquqjtFExqm0&#e$ICk2|a&- zA%URZrxi&uzmvU3(akzw__i{bj3%K>&njoNB+6`IJVfL!q56NJ9lQp6pcVnb4pU|U z^_%y%uwq-JdCz`>A!I0EbrQVwq67r8x=uk!3YdUa{t^!?^-s(T zY1RGFR>smV;teYqiN!holgI0zIx+)O!E_b`{DyZR91R*iX*Y=~?az^%ZNE6NW24!- zTk14Y5>M;gMO^QD>|)h(42`9P#<}kX?gF*VB$U?Jja6|EFX+e)ZDCu)q+gcnRc-*O zb{)8;2WA2;&%fhlOqSQF?mPJf33%-+JRTca*Dcd|6#Z0ZN{jm=jl1fNc5b73)R>76 z_hSJ+NG;@lej=j%=kjEo_Y@=;nJjmKP%eYL6Eqno7(;31_?H1)lY4hFqkUBbc!gw* zS+qX?{8n*zv4rsTxe;SS`)41(%<8E~@&;IvLC{TtjbU|3_o{7*v3-CPd7LO64s`?s z442FvY))mg-}@P`v6tRp9aIRW3KlBeJ3Nv(CxI2<>4f|@PJwfjN5=j&PN&1_F5Q#y z`vPmcC*qnxRcG*^usy?6e8$z;HfhBZr*6iaAUduQu!XECN?#RUqnx}u{qc*qI8C}* zC2^3UzV`3b2#FQP#@{!mfcmt@wc z7|gf6x7?-s4;P?)P~vnPK(2a4{*{cJDfjs-j%sk!r7rY*?e9vYd-MUunLsk{=ay4_4;ED4O_<2Q5ruWHn@50pl7+5xv_1i=Ci1%?LMU-${Wc{})Lw^tOE!Q<55S%gT`sEq zto5W@I_M^(8>S%txh8opOVqulCy7f;nTFlXL+EEh4h`1j+kLB4d7puFf!ZS^zYE&K2o`h|43B*QPLP9~O0CBJ zspn7reIT6uW-vP><|;r@cff((p5OYFxmx8f9mWpMwS=f4{EAOI+ z!nG=XS0U>IM~${%WH55kYbJkS|7Pe{vII_)tHSjyfVbD%VmPgun0FHsAuMdki!Tk?!Hy2dg6 zUFyJdrmWdkFW2GiF91TX+qG&?b2vfH7SSuw$ z#~#Kal{6CFcb3Msf`v-aR06QW{0_U$(%gJ$gBcp>`{6fby&`LF_1|$ALWc7_v;j!H zr-_~sN-nPkms@{@JKbyT?%t4=Z@Nu+e*r4$7byIRYsD`F%S@rU?o)upUt!$h5f6rL zX69aK`T;GM7cwVNvqT&}Nf(uv4dre-hGUxbUqg7RNHwFe0m(wl z({bif%ws`uaSl)T`|}tuHx!qCz7+|H;ByCMYMd3G(E30Of1po+MrPjCpI!|K4i9iP;Nhbwxe5XaueeXSJo-I$5I% z1jE&e*stuze%cE`Qbi#@D{x9@$gjGe$5h6ra|+G+x-x5weB#*NUYrS3ovF7$h=lxcg=hsAS6`MyFbjHhQ*WDf7B^j1|;y#Jfd03kNV%soZ z>JV~@61#0wek7~4eN*kE2qAk;e#Ci%NzXm;_`$v9a&3m7VK4nK1GYW+@uQ5EC%3NW zJZrVAMA1}>-R0v1{xr4(^Z%# z8x)rtn&;Eh32WOu?EGswz5O<*a{povq3EIYk2g^kW~y4--*wW!ZmcS{m+A;z_jL12 zE-h-c8!7IvKG*7hh)MJ$;MB$|543Yc7hz@s^|uDGDxK#oH3W-H;BF0lpTa)U4yG}~ zv{%oS*_xL>vU1oZu%6CD`(%0!v(i3&z*s8u-F1uTP{;j*NW9SaY3Ne@fJ2MuvAYcVL=S+da0xE9Vhi!V++qH6s z-`4-P0Mlsv*Fs}$(%XuriVa&kPS>VEF(YT`*X-WJ$A<0T62@4nIQ|VqUa+j&f&?F2 zy_c|VA6$H|sf^V)9d{oq)Y^7BL7AVN4*v&E>-6?n4L<24bNt4-QU z4C()+w-61+vtfzbANuJ7MdPTbayx_Ku4wPZHIW` zkGI-cS_hh|p6h9b9e~VMUf$LgRUog?EQa=y)ry`T!JXY%?5zap?|>m4Ra%){Gd%^* zhxW~%?3(18eN{y2Vl_4+3kfXBFs7%c`|HaU(PjCf{F~1*XjV<6Xz%YQ;gz~#Yl0yL(WKxtcDsm3D(G)IkaXF#BtS&`ysu*~@TTtS;j!C4UqN(GHO;k^@&B>+)=^PzZy2Z| zC~;6ER6t6Q6i_-Ol`iQ9Q3QtW4ne>qMY@Ec28JGbKtU8i8U`2`P-%vcZn%5SPdRw+ zUF+Vz@4A1SvsmNA_r2fVZ#?hwJ{!WMeonnIJ~!7hidLA%b%K}y(UR&l#2@BpG}S9Zkxl8>xKOAf)N4((_ym zc1eK~>l&*I~z$JITkqfY2qkG~R=8hm9A zmQBaF)Ma-+uU(!bo@cP{AGw7JDJs090SS+grzm#lG2=jz|h_kY_ zWqeR!)p^4%k@Hf|!#iQEoJP3-TR(IfcvjMjNLDV%n)o6(%z=?rR8~x0uAuNRD+_}X z-?8pWowxUdrY#~{MliHPr5P0L5Y zv~gol(S*0LYacd%{J6`emtMm6{>6S8SaKviW#ah7Kf|HKahsP2PFDzIZPhqapmpXz7a=kl2Sl=}CC6!9 z^*$$hc;qu|@%){rd6RkMwL3S~+|laoRxC)B1Pit8p0RT7VazLJk>?@>dhCu4 zcDq)_+ld8izL7q7CablQKfZQR?*aT|xmt^}?JG8(w8RJPd4&}n7bb-8^UF!d! z*_dOptwMY+9N;fq&PsX>B!ZNooX1v*NyJLV2wN%yQy(r-9Jz3_H=w4(&#QW9PS>ji z>pkmd{nEBHA-AtPT|#_;vQuD?k>g!vwEJ^9Pv@;yE-F3ed%li86Lua{)$gR|dDpDi z_s^DlK@>}b0(EY*&crL5Nw$EUx`|IVG4nvWsQbW6Gc0 zMwRSq+p6HHObv^#f!0rVC4g7O=KXqu=R=`pEe6;`+pWU-P_qY$3zuRA*Yv0r#9Eu) zGz01k?Z~2N+8*)zby;xL@xm-m+>Hh76J`5wP%Y`>V=&9C%J3;!o_^-%1VqDuj?eN1 z5_J1596eEJdBD{-;*|dbjpGn90Rm-imcdwWbjv4k-2;%9c?#WH;|7WlFp<0A$-O98?N)^q@Ij0^6U}lALr+0ZX>vyYjIaNs&s4Ga2=*6Pb zBy1*s0OSh;^ac`ZFgUFuG{6~+XA)Jzp#WlbE{?HD*d0guiKlSx=FNSn3-(Uo;D{Tb z=kWD>M1?F4w#EfFvHKQFKslIMsvn&L#-a@e+Qtn$Kq8%fN7xAEK@X-{Y7Xx>j)_@Jw{=EH{Pfn692#4aK*yYsdhFG)$1i;oVD~)l? z0_Gf5CFd;%0JRR((h&J{OKg8KVHgnK<3}Z@(;#6FwdMNvk^Nr}NkKAsxe%}!^uLv^ zf*Ih7iJ)T)weBuRrP=%&$(KY*o{#|GV5hAvdz{!qgZLJp%<5s$2)hBq0aJmQjwyPo z767z&TFel$ps)D4K293fjTfGg15HmP)8bk=+ms~pe4@qeRN(qi4wr^7Ak^1-l)N2f?RgLQGMe60T>el zF7b-tb64@3xc1Nc<*h(6&-uRA0)%yUIyFopbx^zh_~k5Q@!L*ebskv9wmyj&C|c_uB@NMON^8o3c3>h$fSJefx0+?E0CuIp zC_uQ?>c2rWCrv12`%KuM&(efKf6S8@g`6(5gGfSeTE3S8b)ZLZX+sc+Bn#DHTMToy zZ)T!GtgY>SVM*h{7*4;|4krVYl&2xy2RA}+F3ckAhN{k8y4wR*uQkZ*%jWy@M!_iG zBaqy^5-WC_?EuITALnNj9HKbuxq|uO$i*dnMMrN zm(p%qgt(a%WeI`q!zkrA%%Ls;kiLh(dAezsT}syNm5GTFy5fNSt*#)|K`R8t*gXvg zryniztnmXeVxInd2ZD{g=YJW6aLSnR7L!UNU5zAO7(1{zFB2qKLW20XxN*-mZ!np& z(R=l0s8>&wgR!-5Ab^QFt{2wfrt{jmqX3gt97Iirjk(^gRXQ>E7h1~g1fXPd zTyzqScr@58kY>&-P8Dq%Y76cr?V+w5(*kJw-&pEnRdN;96}6`;k7+F&729@rK%UH24uGa8ZF%M#Rsk z8eldNy?}}Hm0GhN=yjn1p?~?{0KnVs%Suvj)wY*0Y9C?CDw{qXzwv6K2$iKXvVB@u zm*uPfnFVKxo0ddPl-&0j{qZb(j>&=4@5qbM8xgTO`NEGr5!QnhNm11Znt(CA(P*C| z@H9NSAmGVc!YVyIf|d|NsTqFvv`kgB2Xq^l4GvTIbLv>OFvw6qwkL}Mk^;9~Q{`J>X`DtzA4mf?w<**`K8`$SM+R-P2stY65WW-rU^rdL1tHCtfoDNvxCZ%vxXiAD+qbW8uy`m`)n2*>o+7Tz2Bc|^T~SK|#fvXr z<(8X!jy&nI0DAy|OH_hT?CoGNcEj{bmhqv)^tzz?*5xrIxag zM+(1*hUs!yLkqoVypX<|sTo5h<`a-8JTnLS4NxZHT18iwfQI+g)ZQ`x_|}^GueQFl zNgX0mdi&^=SR1L*YoDcw0bP;5vVk=Y-1^HnZ$cX^OGVhRU!5XTi?3z>$Nknm8J$)W+tgo<1-zvbVjp}v8(OxZ5`As z?QJi*3>;kVX{i+q^%0i65)U{6Yqk_5sS##o?{!cqaHRA+gcba%#+5bf>9!7gwqMP;nY0E?0;LW>}Gn#5sS$4wuQ#qQRM{O|g`GFR0Cn^)CrN}Yf!+DM?a*8lX7vZ

IPH+1F=2t?+u8;{6HX9PgEUYmsV`=Kb6*;!Ly(Q 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

>l5|shQP6)Bpfhg4k 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
    KW#cWXlIlpj+v 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 literal 0 HcmV?d00001 diff --git a/excalidraw/payroll-deploy.excalidraw b/excalidraw/payroll-deploy.excalidraw new file mode 100644 index 0000000..c834b88 --- /dev/null +++ b/excalidraw/payroll-deploy.excalidraw @@ -0,0 +1,1014 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "_981mIRtxjhFwasWfPV74", + "type": "rectangle", + "x": -2946.869399616819, + "y": -1559.723967170539, + "width": 368.49115210843365, + "height": 338.8271837349398, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b19", + "roundness": { + "type": 3 + }, + "seed": 439526940, + "version": 514, + "versionNonce": 522224284, + "isDeleted": false, + "boundElements": null, + "updated": 1716538936470, + "link": null, + "locked": false + }, + { + "id": "JSeYvd4R6wSOs-kRRuMYy", + "type": "text", + "x": -2848.021288851842, + "y": -1436.8300799779333, + "width": 168.75, + "height": 86.39999999999999, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1A", + "roundness": null, + "seed": 1085847460, + "version": 511, + "versionNonce": 1411753636, + "isDeleted": false, + "boundElements": null, + "updated": 1716539306985, + "link": null, + "locked": false, + "text": "Payroll\nContract", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Payroll\nContract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "QacxEXEW2Zy6irYBk6Dlj", + "type": "text", + "x": -2528.2908259041637, + "y": -1553.738617896729, + "width": 672.65625, + "height": 67.2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1B", + "roundness": null, + "seed": 1579589412, + "version": 1033, + "versionNonce": 1214644508, + "isDeleted": false, + "boundElements": null, + "updated": 1716539341758, + "link": null, + "locked": false, + "text": "Requires adress of authorizedWallet, that\ncan execute payouts", + "fontSize": 28, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Requires adress of authorizedWallet, that\ncan execute payouts", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "cRUk1DppgTkCeA2RA6PRp", + "type": "rectangle", + "x": -2714.431278124001, + "y": -1184.7088811414887, + "width": 142.20161897590378, + "height": 118.47232680722891, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1C", + "roundness": { + "type": 3 + }, + "seed": 751864476, + "version": 931, + "versionNonce": 421834532, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "7szKNMG-Nhftw0f1eGHqt" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + } + ], + "updated": 1716539418312, + "link": null, + "locked": false + }, + { + "id": "7szKNMG-Nhftw0f1eGHqt", + "type": "text", + "x": -2707.783593636049, + "y": -1149.4727177378743, + "width": 128.90625, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1D", + "roundness": null, + "seed": 1781238044, + "version": 881, + "versionNonce": 92834204, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418313, + "link": null, + "locked": false, + "text": "Transaction\nState", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "cRUk1DppgTkCeA2RA6PRp", + "originalText": "Transaction\nState", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "B-GrdFUwex-2uubnmOnI1", + "type": "rectangle", + "x": -2945.5049521007295, + "y": -976.1374378340123, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1E", + "roundness": { + "type": 3 + }, + "seed": 1777098780, + "version": 877, + "versionNonce": 1375004, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "KV2r7mnQ1oRVMpa8RY0mz" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + } + ], + "updated": 1716539418312, + "link": null, + "locked": false + }, + { + "id": "KV2r7mnQ1oRVMpa8RY0mz", + "type": "text", + "x": -2924.811239751332, + "y": -934.3747307556991, + "width": 93.75, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1F", + "roundness": null, + "seed": 1177855644, + "version": 839, + "versionNonce": 378219172, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418312, + "link": null, + "locked": false, + "text": "1.Submit", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "B-GrdFUwex-2uubnmOnI1", + "originalText": "1.Submit", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "QsyMGBFykQvoXn8QB29cx", + "type": "rectangle", + "x": -2705.470280022004, + "y": -977.7329207932465, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1G", + "roundness": { + "type": 3 + }, + "seed": 1644243228, + "version": 989, + "versionNonce": 359523356, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "2yqrUQj5TdIvsguyhLEB9" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + } + ], + "updated": 1716539418312, + "link": null, + "locked": false + }, + { + "id": "2yqrUQj5TdIvsguyhLEB9", + "type": "text", + "x": -2690.6359426726062, + "y": -935.9702137149334, + "width": 105.46875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1H", + "roundness": null, + "seed": 416712356, + "version": 958, + "versionNonce": 680932900, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418312, + "link": null, + "locked": false, + "text": "2.Confirm", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QsyMGBFykQvoXn8QB29cx", + "originalText": "2.Confirm", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "VkDMdVlXh75qHnoxqn9Sr", + "type": "rectangle", + "x": -2438.429230550144, + "y": -978.5955708798944, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1I", + "roundness": { + "type": 3 + }, + "seed": 1471567004, + "version": 1055, + "versionNonce": 1986039068, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "o7LMIb_ysao606P8pmhLr" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + }, + { + "id": "ZxxJn-yzCtpP_bjqFNrfc", + "type": "arrow" + } + ], + "updated": 1716539418312, + "link": null, + "locked": false + }, + { + "id": "o7LMIb_ysao606P8pmhLr", + "type": "text", + "x": -2429.4542682007464, + "y": -936.8328638015812, + "width": 117.1875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1J", + "roundness": null, + "seed": 1694225188, + "version": 1027, + "versionNonce": 1815335332, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418312, + "link": null, + "locked": false, + "text": "3.Executed", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VkDMdVlXh75qHnoxqn9Sr", + "originalText": "3.Executed", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow", + "x": -2702.61620963085, + "y": -1065.1147726871234, + "width": 118.65814932641752, + "height": 86.10177009407482, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1K", + "roundness": { + "type": 2 + }, + "seed": 1480202148, + "version": 2405, + "versionNonce": 5823388, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418313, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -118.65814932641752, + 86.10177009407482 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.1564438070980894, + "gap": 1.1217816471364586 + }, + "endBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": -0.1510108021651382, + "gap": 2.8755647590361946 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow", + "x": -2629.4234385465124, + "y": -1061.9991853377257, + "width": 9.720163408487224, + "height": 83.2662645444791, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1L", + "roundness": { + "type": 2 + }, + "seed": 546446372, + "version": 2398, + "versionNonce": 898868380, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418314, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -9.720163408487224, + 83.2662645444791 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.2732353143020411, + "gap": 4.237368996534087 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.10339000105429257, + "gap": 1.0000000000000568 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow", + "x": -2584.144706119284, + "y": -1064.093500096762, + "width": 196.60959418927314, + "height": 80.5911144578314, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1M", + "roundness": { + "type": 2 + }, + "seed": 292839460, + "version": 2415, + "versionNonce": 1288706588, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418314, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 196.60959418927314, + 80.5911144578314 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": 0.41998676780631494, + "gap": 2.143054237497836 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.6363234582027609, + "gap": 4.906814759036195 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "-pPRmceOI6Vv3N7Sgrvu9", + "type": "text", + "x": -2524.7303941084865, + "y": -1427.228530629852, + "width": 607.03125, + "height": 67.2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1N", + "roundness": null, + "seed": 1881196572, + "version": 502, + "versionNonce": 1752082340, + "isDeleted": false, + "boundElements": null, + "updated": 1716539343973, + "link": null, + "locked": false, + "text": "Deployment via Main Org Wallet, \nthe private key they registered with.", + "fontSize": 28, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Deployment via Main Org Wallet, \nthe private key they registered with.", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow", + "x": -2796.213995465972, + "y": -912.0691480903913, + "width": 78.7136130136987, + "height": 1.9510276651808454, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1O", + "roundness": { + "type": 2 + }, + "seed": 1072145060, + "version": 376, + "versionNonce": 762097948, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418314, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 78.7136130136987, + -1.9510276651808454 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": 0.22243400432383306, + "gap": 14.153531935962292 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.1438930394327399, + "gap": 12.03010243026938 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow", + "x": -2550.5055194385745, + "y": -919.3788461970805, + "width": 111.07628888843055, + "height": 4.733682476056401, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1P", + "roundness": { + "type": 2 + }, + "seed": 384820516, + "version": 373, + "versionNonce": 1618900636, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418314, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 111.07628888843055, + -4.733682476056401 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": 0.14681410442341442, + "gap": 19.827335884634067 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.03887245516636853, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "QaL-uAHwyUTOHVcszS-WE", + "type": "ellipse", + "x": -3354.6197645684465, + "y": -237.02162348249328, + "width": 221.484375, + "height": 176.64276541095887, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1R", + "roundness": { + "type": 2 + }, + "seed": 1412150812, + "version": 487, + "versionNonce": 654118820, + "isDeleted": false, + "boundElements": [], + "updated": 1716539392725, + "link": null, + "locked": false + }, + { + "id": "58dH_jCFon-Rj77cgs4fP", + "type": "text", + "x": -3321.224002582145, + "y": -180.09713718112357, + "width": 164.0625, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1S", + "roundness": null, + "seed": 205125668, + "version": 388, + "versionNonce": 2072214308, + "isDeleted": false, + "boundElements": null, + "updated": 1716539392725, + "link": null, + "locked": false, + "text": "Request\nfrom chain-api", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Request\nfrom chain-api", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Ipm1nc8P_wdwFs4Kk4SxJ", + "type": "rectangle", + "x": -2096.235399575561, + "y": -831.1969954136443, + "width": 239.38356164383572, + "height": 194.70783390410952, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1U", + "roundness": { + "type": 3 + }, + "seed": 829457180, + "version": 103, + "versionNonce": 126837412, + "isDeleted": false, + "boundElements": [ + { + "id": "ZxxJn-yzCtpP_bjqFNrfc", + "type": "arrow" + } + ], + "updated": 1716539418312, + "link": null, + "locked": false + }, + { + "id": "3uVMFvenRJej4Rbog58rh", + "type": "text", + "x": -2055.3856564248763, + "y": -753.0855656191239, + "width": 164.0625, + "height": 33.6, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1V", + "roundness": null, + "seed": 481793948, + "version": 161, + "versionNonce": 470073372, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418312, + "link": null, + "locked": false, + "text": "Amoy Chain", + "fontSize": 28, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Amoy Chain", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "ZxxJn-yzCtpP_bjqFNrfc", + "type": "arrow", + "x": -2302.2918058513487, + "y": -881.2887697587223, + "width": 205.0564062757876, + "height": 71.43458550492323, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1W", + "roundness": { + "type": 2 + }, + "seed": 1499860252, + "version": 237, + "versionNonce": 391020444, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418314, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 205.0564062757876, + 71.43458550492323 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.25429214039965764, + "gap": 1 + }, + "endBinding": { + "elementId": "Ipm1nc8P_wdwFs4Kk4SxJ", + "focus": 0.24427291388445344, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "EeW5wWe3WWql2cANX4ZUu", + "type": "ellipse", + "x": -3144.5685197943967, + "y": -594.8050055541876, + "width": 338.04788961038963, + "height": 160.1207386363635, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1X", + "roundness": { + "type": 2 + }, + "seed": 1118962212, + "version": 100, + "versionNonce": 2117126180, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "NHo2W6gxO9WP0E9ybqAk8" + } + ], + "updated": 1716539407909, + "link": null, + "locked": false + }, + { + "id": "NHo2W6gxO9WP0E9ybqAk8", + "type": "text", + "x": -3057.593802543856, + "y": -526.8558662851915, + "width": 164.0625, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1XV", + "roundness": null, + "seed": 1929328796, + "version": 43, + "versionNonce": 346825636, + "isDeleted": false, + "boundElements": null, + "updated": 1716539407910, + "link": null, + "locked": false, + "text": "setSalaryInUsd", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "EeW5wWe3WWql2cANX4ZUu", + "originalText": "setSalaryInUsd", + "autoResize": true, + "lineHeight": 1.2 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/excalidraw/payroll-deploy.png b/excalidraw/payroll-deploy.png new file mode 100644 index 0000000000000000000000000000000000000000..b88942dc194fdb230db66fb4fce68072b9c30052 GIT binary patch literal 43398 zcmdpecUaR+)2<*LMLH@V9i)RIpmYT3ARrJh^d=&`cR@<%(ow1?B2q&Qy#gr#%o z5{3mH4*2Giqzm}s5{8q8ob;u_UYg}gm*_7k$VfeLH(0I19_23It*6aL)YPoJBOgcE z+ix^YO--@my1Cs))L1**UN6KAL21y`Z=|1<`dNSPS$$JySy8W6xB}(gNbg{FyYptD zLyxm1LTqo;Pnd;-7~{Xa{DbkXFgav1*j6iG$w>Z}7bzyG&R3HE`X`ypOBkV?*t5&p z|4lLm$!kQGI6Wrge|ur$$wS#Msa1x(#Do2p7m{N4zxEb`X&wA&Ul444yj4# zf08!GS4`80lIC+R{dZ?1C-BNtpj!b=kEm^)!N&85(VFOghgJI}08cY9NHs)TtCjTc zNBj%f`kfuH`LS2xM~P}?s>(&mWvNKatNR5eI5N9S1P94d^cx;^e(?Iq)W4i4EIaf4 z=-J7}Pi;PS4c_DF3Af_J&DC~!-Ex6JCgdvjq?a-Ha&a@aJ(~6Dj)k~WGe>dUzT9O^5csrkOY{oc*){{8t zGc&qNX;PBfTxkPD96|pYxnyQBg0vb_0ixcH*0ujIF6COhbY^@qLlrYir{|IwfRvuG{np!%V@~_GNk%V=VQYT;J^~uSx`HXrt zkn$knB}Lsm9yiE*S+Q`-RiRXBpPhjz9YddQ%{f2S8Tq*SW`BOV;diW- ztu;j84{y8K<#W7Nxel~RMuA?KpBVdJBN*N2cNx*2ekfy3i@^pvv`X(ze0r08^ef|h zb#KPcPiSw{w8m?_s{IsvqfF_qxW>Y_{2{LT714v+?8uFV^Yw~R6GHCp@d;)ZG1?}_ zZ(2Goe#a9tlV3H}(rOLGeGcYAY|~tZ)xB5 zb9rdYH^m~C%irX%WHOWR4*08e3Ur7MEZ>+XK8u6LoiyRnA@*ndX2cF=U#+Lu)h}m% z?8)z9&q+mDWcciLx;T#Y$PC94eoS-KYd`)$M&`TbS&8K{7ovQBG2XV}bkFH-H{U}6 zUdl1ff-;S{@6IMT^U)H%CfIUEC%^ipMhyMZ@{)J#0&xdxHtJV~_1&hR`z}YaPJLpP zB4-EloUPvLRo^EoCTu5`TYI@?Y$~U;Np!$Rk^R-uzG?~`=m0ljHlU;Kn&{@snz>-= zJHMpNkg{)_ySOWvG5rRRCX-1_-JI9XwX}6x*UE-eb6X)V;H{HI4QF~~$yFP2pUjmR zwys`(;QVaeOJuQ`(FO4%D}0h%Q#s~Iki%~M@w)ZXa@GuQN1-=ICR znaN(wwmfvXm(`NQVOZC)YWZVI;b+YA!#=-BpyZ7<8mDgLo%d9fqj1XR@#k|vRI0uY zj#o>ku&JQ0^BBCepmQ~*+$`ySXNO@ysyuwOp6bfbG5eOQQ*G3CsqqIHc%@JlEoGGHHPEsYVIl(crxXx3iXi>+6McusC1cL)g z^4y1Pp`61IWO$hFDSzJvsm}J}!F%Y%+%Jpu!hXV_4Elw$@PO6S-~M}=o2xpZpuyL} zr4-&Vev9qHFHF&hy1j8uhllFVdHosV2KEwb{Um%kSdyHN*K6#sF~c9{w`}X#JBx^g za(?56jk^AL7s9%34BJQGi5>lTKQ-OW!&=ByIq7H{Ew(5BbFceupYRf?ZU;~5{-l%I z{$|TH%PEch4bGz464RlV@p4dnI=&u(A;hmEMA{!tenzJX2ox7bU8rwpgdYJQHZ z>pn-zIj8Tc_0`+KC<;FrMN`H?$RpT37{E0?<>WFKBCS;Tny?faH%lh*ep>Fa4^`hb4eawYe`HQ4a48IS3yU->NX5EWAlh%YO z*9q=wr|WO+zB@!qr8c21JDoowh2s-Dda@_B$umX9L+Zbl!ftmClv*Yw?;UKl(@pU< zoD9mxm95=E#M~Ci{bCk>Y}|=|Z^ma|U*9E*21$0CRP!Z$x@d~1FK{u{=^MPa9FQcm zS%xCh*N#Z~>=w*2fWN3mNf-BtA2Y+*jx?VKBcu&cb zrDFDP22a{GIPp8M(3F;7F0{mYdovP|Y{5EJ)0hhdwhK6qxNoOeG96OnK75PN*sDp) zF`%8J{GfSzTOgs31igdw($BW98aQ3;WGd{({GRS*%c6}*$unZ$Ws?zX99y+FZq4S4 z@(p<_dp(DER?&H-pmO+yvP}Lr9mA=f2P^p zh_en@_q=O)T--`!I9X6Wtk;o&$0u)g%I8pWS&GdRU)?OPpdyTiCizRM>$p`^P^k(s z$^B%jotAa(VDh+jtg3eDtu<*dd?+N$5qa&5*Y7a=eec~~VN(;2`O}|1hcG7xu=oU7 zf{AkWi4R^QO$bT+C13H@A7mZxH=M5-c&(LpC%xUXs7w^+|Mo7whj@{4@p5Ob z-Ra_*$GLj*NrHq+Yj(IM1?>CWS7INOR2oM(ifnuZK2^O{xUC|l!fdPkn2dE2 z>Rvg!h=S)^nO9)h{j|3%$&(B%~`MC-K*&)tw2*nhh* zX?T7#qS)y4vwPHeNJZ$rjLdoZ@hF*T1plM$6g4H@I%memcLXO8cgwgoxgi>yRB|M_U+lmclpw?7dc-`Omj|HpXWThl@#; zbI-;$%)c>^>mR#t{PAu9Z)&u#GHoGfzkaKYdcBjgC|`MVY@kJFhRs@6W_s_{Mp08j z2d^`vd%b$4&?oGf+py`Pnn*&htn(^!$lX5CA)l>QDk8r_NEmiGS0{;jKVqv)=?qq9hJdlwbQ>zlwG`WGtBm$RHsXi1k|w;cs_KD{ zcqY^@ilu&zHu+$El-a>2+jokn^s{_^RT2*dV=^u|ePDgbIuXMEtNSjSi?TIgC$>&t zwcaopO@_~Mc9QmI|JhNFk!HqI_?OXu+ZOG)`GPwQcPa1K9*~D|o-C=w;Quni=s2cR zimYIfmQjvaa(|}Ur29NKJFAaSh|wJvgf1ITuINhndTi+8EvZCoMeGVv_!N=kKxjT< z`&-Uq@bi-E6n7T0RpnPLy^X@YjatdgN!Me~@{7j*5G5&#dQiB}UgnJFQJg7$ve^l>`GU6``+PFv+uMQ4&pU zHmFlW)5v>2rQeRQ^jf@q3WdLNDY~_xOJ$?ah295fRU2y@#ZPyJY(Z@GV{>qc*TBFb zD70wC<0`j~y}HpHIZxy06w!Ixhk)7_j5C{dcpR&V2bLvFi|2l&NDAa@e74kL4S`9z z{A?+1hecF4uWA$nQh8>^=~s^sTb%uMcf!jxi0^jFwx>L%>QSqDaJ-Usx#P|QGF?P4 zHfExfm95dCm)ePj!6p5#cvTSpQySIRFv*(io1SkInoI3$HX<>U9Z_t^*J$%Q(5AvT8Qo3 z=(%k--V(mk&WIw=rqou3MMlH#{3?LAPd{~NHR!v3e;qNuXGJH|1meg%jul3m(DK;I zd_}JuceW5Z--FL3#fW_=DEk#QmLTn*3On;qPS{th1{Eb^iO8xVN}nP(u z3pOtbPQBy0AhowF48uh)2wW67@`x(b4yy-nB@P$j!V=z{d%cDA;RJ|baJ1p62dWTS zlgOTDogbLBJ(hAOXSf_#R%ap)q$d>k$w;~6M`esnaIZl%@(J<6H^Cv~o`l>13je%4%!h{y3-XOYF5fD(H^k7L=4@p63wR1V6q&~rQwU1QidHMZBb%^HC*%y&;gvm^0 z*2X=b1K<|($S=F$PqLo`45jmY=Pf~noencr8*c^AhF@PALI=!+)jvNY8NWQ$L8)3d zG$g)?&JOBgD9l_~ys?0PbBf0y`$uK(-DeBbQ(s00y1l}_qBjD|%{ntK+0A)cBUKdH zykkMK^$uHoB$ld()ho9P1lHs=3>xpN)p12$~5@GF2jK ze7#%Ocp~OZ+Y>z}2F2N&vGLlE`LyK|k9BUK2xf?pa&{E3gTPF?0>9?{x|sd9Di~gY zcec`+r##v)tjC_WQXolX$YR|(c6RrNog>I1s9?;~gN5nkjPQ4`-9^n|lWKjG;(%RR zks*n3RyX{Eyn*abqgIM~;}^rDSILgkvLd{@r1#VH%qtlo!z3shDjjmWYbUCu20NkaamJ&S$7&2h01W9lZJioGRlZ$ug%D3kh@50RF}RU&Ej z?m8>wmA!gVlw$WtO8s}YCCH0I2!*TAeb!5d+oRah2pF6#cyoG|v?buW^(%;dV{ud$ zZ$s^b&;Asr-;%*(H{Pv@FbE6e5V8ly7OP3!;kBDHox-k>f@0We`>o12unf=W3NYM? zl@^N4vave0xLs%zX;F|%Oj#g8o6=E!WUcNH^qs-c(>T=aYK#CS7vhIkZJWWvbv^XDDO7(pk*Bp%71H)79t<%F8U?+qs*kplJ~sKdF(nJrYFxf9 z9wbHgP>IYh?dsl_nQa(nIi^oA4Y41@Ic~NUp9UV-S0&W+eTVqiw%BRiv|-fiO{QZ2 z`8iBI*7eE#aDnMOz6yK~hPMpK{BLZA@uiIYuB?1tF>Alpb=~?d<*xX^H9U<~GLd}a zsWFFE^Ssrs&-^~nq_Gy#W3~lok7vfu5jhQ1l&u-JQXIXjEPPhh69(gi++r{|c1yVP zb^PG=k-@~vYJNf$37m=9C2eTaU~A1S#%{((Ad;!We=r$tPyK7ny5N@y9DZGsIBkNxNTt3NlnlX^mK?^I-V!h@6D==31%wjLrul4?!jqxmObpHm6#DCS2t^ zBAv0U7wJB1o*gUadiUTF)GGVXbSzEk5a4w%Nk69k6%+xXV2z~Nz)!dAA=jTUUH=< zK)WB(D%6#r?4{fV26_OQ4(|?F+cd^a zhO3{^k8e-yXk$c-oSmDVhEf+?o3$-ayRHNCNOa{;hNP>K>vSFsAM%q{vS$ni?s*=Y za~Aa-i-jk!i-wJ*%P$rcu@uf~g#1wH|0$Yl+Dd_4+B4)`{Rq8*KZuqr3g?_7xF&L@P4&*)H;2~oz_mk;eYWhxWqQT!a8{M~UzuJJ+i zA*+h5ln4At*`jMnu2&NYkZtfjX}onR;=UyJ?-+E7wk-#HcTkRgL-l+CC7xST9eTgzp^87hAJ& ztI6d!w_3!Yb-PE!`-eZ@T=-)}Oaq!Cwnivt*T|RB=V_FI_r=)W9Vi&QxI_Dt*phqO z{_0lK{qLzxy`2i2-u?V(QM#TB6go!4r3B^Ts|8@Uueu*(qZMyjP+?gahfiY?F7}2o zqNiW}9KH`Jbqi#H`ZmvcXnPa1Qf!wvD4WRTI;u=}e4@}Pi6W@jEtb=CM8%4QvP6<3 zvUzaD6W_$ zO0O}$UE+|^9cL(vAD}BhXgI%sOJiz3foLu&?A=~^giN?IF&M^Ko7Ya`q@2$2!C(l6 z2#~j$QQ-Rcg^e>&ePI7)(yjAeV+RYD-^^5l(@izUZO`=YR6mPV5LNQD!28T4 zuc{T7XkEER^NFQ!)ORDAocFR$;rnDS2S)=O(Z%0jm1-tc`$qozK`nh3g4+5$V1380S;v}I6R2U~m_!wA8x4lTBJZ5OE z6%C`!Rnkvvrmgr@S5aK7g^;1svQ}!jzCk;mPBN$LTMn%}79NkZAAb>j(QI982IrR_ zgl0Zp>`|=~`c5wkFJh+QM@^{{*>#dhTujc?xzC;^sW z)R#62QaEhurGx+M$bw3V$@r)DQF@Deq7GJaj3^?vf9dqnisz=Qi9g$d%n!$W;A|Cx)XmX4Z$`> z##;QuXdtaZ7|+zD*u63TZ3pAwU8`b$DiJLxdoxKdO#URibz|0zbsEnQBL4d3SZ@Be z^gV$qlyrCwt~&R~$xTp-&-QMqCc-D_N12A{#1ps+`}>M9w-Q-)n4k~v@KX1M&9-Oj zAt)?d%0R5R9rj6w*5?tH*<#U>iEL@k8jES4+DRE#(smj`*jldK5*;<}c-Xuafe;gi z@Vl_IDeI*H2LkN6i{@!FStjH$(<4h=Xgv7pTjCnI4r{7?Gjg~6sRknv+0c*DKJl(^ z+2Qpg#`J6b8sUwZ-6Z)gM#8?jd8C01NOeEPF;$VZg#(;}22J+k0u$xU4Y~%0{JO}L z*3mD*t->psiHJLBz<^Rfd`s03z}X4s7WvJnrM#m0uscMrUYpA9^!c5YmQ*$GyQMm` zEe}1CZE&gJ)5Z#>rRMiI4(!3jNEd(9EK7*-Nh@~%J!|>j_;#=8KXu@5vFXu+43p~Q zPteX_9Q^`O7WBF?h#+}s7j=_U@1V1<{yg;PX?xqsqj6vdy%|hIt7pYexuYy_nl*La zh`K?=KzR(nq~MmoWNfi;ft2R=E^h?LHlwczoYg1$hs3c{jtY+HlbySH58N-us>F7+ zIFWum!;afD!?(c-|74kEMONb|*oIxR?aCmtnk;wA1IZ0Xl2Yg}b2;Sq)m-HZVZo8J z`IwzWQ%86?i*j`ntGJTNL$~Kby)A#Z+HVFs1;fJYV506`rxE9$yr zx}BYEWKHp7txS!1krSA1g{HAlq2AXe+QK<$x;l|>@x?-|eX{CK6$H?z?Z-T|+gLHz zpt)pZZj^V@*$Gv>CUYguV$YNs-h*v=O{uO0!48+~oeuK%bczr(nFj!H?B*Mg0?Ip? zWq-OV6XQ9~<7$H-?7jCjq$H3{gCBn%w8q`%A;SNEfQjYo&9DA{61u#)ST z$i@HSHg%vS=$iDKj}+3@MT})uf6d5j=6kR5iF)RNu&0ig1dbR0dlKAv6RGB}n}pG7 zR%L96%t(x<*zwOl*CSYwX~9tT@hU*U3`o9>kt zRE!Xtl+_7=jf}#mD4@D4VV))Ho1FQPC6F}3tvlZ*>i&{ECRQ71A5ti-qe^A3jL@sw zVtTsmSF%}Pj`oKsLr%P`h8#ROlzl&r2Wgy|>%CukCJP;Lt_$u1Wtn*kO&jrd$x+D% zN2WnGujfadNXmr;2ibTF1DC#8nfF?sslHaAl+$H*4taO=*Se<$C9=!DB($%(z_j3w zk$Fo%?G1M4Y?#<(hL;L11@m=iZ}E*TJc>Ke#_CzwrLWMgT$RWj^&0KZZV_#DOFKhq8=7Aq%~;=Q4kKNODjVvr75Pjx`p_Xr zSYy~EQnb!R0nyQD2V;l09+|1pgq3528wRR!L0)`zDIt?<%SjuQyJf}0Bz~^95z-KR z3HfeUDaJ0XfI9IW9)m91*KZFLZj;~ajJOeN3AHUFl0{N<2FVtcml1Szx=S82?M=kH z9vLW$UioEqVk({_qyX(uQXIL6oT*5E$U3z8UKzrK4L*7IvJoqRmMEq8x{+~&$1;GL zsch!Tg1Glle!U8muCalw7;y_$AK$d`$@-<2$9m%XQ)Mb1z9De7NG7ptV=qz=UiHkTpw& zwKSWAjA9NKgskKvn*EsSR{@-%bqb?Z7yLAPR^)e@7h9JBLTsYJ&Qu-f+!;P=GQE`{ zs`i7*^uvKGgzxg>ls*wMlAJc(@>}nsSs!fwDSh6ma!vE(j%>-M?rPgz!BJYTLSs2H z68!M|{Od}|$rJC3@7oHhrAE}A@~l;t9GS+zS-7Zc4r-Z(n|lmeLZ8B3i;vNQ!54~& z;jRdeb0*%jQlg&7(e^^391d3;OqB>PJ>^sbfu_i#(%A|g-o5*gwIgS~uCs2y6NytM zcw6IbcByx)9>qyJu&|mPxGNc7VOo!-J&XtKe5mc_>2Q!w@OM({tNt9WcW#YbyD4z{o7Vj+vD5Nb^0Q2} zm|TicihA9gD~{v@)Ma9(xR^?#u8@eq41AQbUn#o^lmWs&ENyzPmVZdVzCxWawkH(EOu`Rdi7+bEOS&Q z{8~+2Mzr|HErj;$$AFGI=OrjwfpE2H@0GIg`zZc4$v z68;o=ix_oaNV+y_+R~3xCihnOrBMK+O?ongDh}5t&@+b3qm1#eq%pzw;fz@mv6uMd z^6^&+$`c`%53~m%jd3jUo1)jZ8xS|Ql!XsO^|b8z5(VFL+xuru&-k7Da26+RN0b~f z5xy>IqeNA07HSBRo*sgfvf8*%o*jA6V2_P%+4|h+ZtcjP!F5!Y+*5|vNBmbf@klqG zb6Xc??atnhxW=3>?Hy72sKMnc?#R71t~SbPyXjw^flu2+r?0h%Aia*9^k_a7pY8gt zn4Gxtn3B)XlA7n-g5Z2?Wt^|x#QLnK%_BR(y#hSs>jb-k8RNdx@CvrAI*WQq>3md1 zhR9Zfeb3GJKX7+&H$Ey!WYTW$;Tjr*a?0vy@1waWk|AWT5rg$OpXH!dhU~j$|L~do zZ5fTY8%+3%t8;nkw6#My>xQ#FUr=kV16tJh2rYAAS#(|c1sV^I8Fh-6k{JES`Q>!y zf98I@fyG?t{7B>z`NaW*96azg;GWJ$QXNO*L0R;77cUoLdINm_VTDvYm!5kgUmYrW zY*+!Ss^>%A1&Wv11EiD{Vf^0>y^K2--i66XqH@wbKkMX;yX?jy23=G>VuquK;|m(w zF6B5@4COQ@)AIdKV>BLXYKEu})Rhntr~df*Nqi? z^q>0$(eoH=aP41Q967Xv_ifr*pxZ}uKu@PdJzA#!7zKLl!)SZ)T=LAi;0Z+l!A=xsBdK(9_Nh2J=;rz^NLeJx?x|~X9KaUV*`gzMWiL%HhzLqQV&q4rasQxi^Sv7YTr4DRjD@Wp# z-74JmW6YzQ9jAZ+WU~@2yCRN)F|qo*c~Hi2PYHU%V($ z+qHGl(9K`WyXk7@$iicVwM4oSznXfuv@fpPJ}apclvhX07=E zT3|K%$7IICwVVuJM}Q}kdx5}hl90D{_Llc%(_0J`bo#y$1cq$;(}10`zLa9;`qZ{6 z`>E@gIcJ~eTKUK%$Q;jsbWzmDJt1U-d7^F`ckN~~{wsL(*$J9Dg3hn1-3Lv3R<_^rdUBSoO-H$DT~t@`stZtJVxVdwkAp=v zYKNvkKIF|6u(3U@x2r#FLlbL!(n}9e;cPyEJ7`8woazJi!}Fa4Kr#~7U5&-FSQ*=z zDKq3kv!>R85<<@e!J4TC8-{Y!i@uN>at2@{-CeduLjv3$6-I0Z~T`RCeTr^egX>Dh`j}&~HViv2w(U851 zeY6L1QMU>>Jh;pHrEUGODeZR%Cn^#C`}5%Z=R|FbFxH^_&1dyrXG43WiO2UY&R0(` z>$nPu&0>Qj!fW)Fv%+~C@z{;4&(Dsnr`yFQsg*>J!Es;NR~mZ5shgk7m?073o#xod zuCkmhN`=EUJ9xp@0(tceakljQn)Pa1fJ+xm2J`t}UnHZvY?Cl+xx%{ zy4OHZ)o~s&6)7|gajPkQCie_)2u+P3CVIXr7wC^>iLF~&OcC$NAzyM=j52yspYDQ1 z5neG59HItYP`@KEF*a#vGI6f=dBaL!&E#y;tM`ZWdXtV_+zB�PdCfQWh$>uwfPI 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 literal 0 HcmV?d00001 diff --git a/excalidraw/payroll.excalidraw b/excalidraw/payroll.excalidraw new file mode 100644 index 0000000..d64140d --- /dev/null +++ b/excalidraw/payroll.excalidraw @@ -0,0 +1,1250 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "cRUk1DppgTkCeA2RA6PRp", + "type": "rectangle", + "x": -2714.431278124001, + "y": -1184.7088811414887, + "width": 142.20161897590378, + "height": 118.47232680722891, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1C", + "roundness": { + "type": 3 + }, + "seed": 751864476, + "version": 931, + "versionNonce": 421834532, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "7szKNMG-Nhftw0f1eGHqt" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + } + ], + "updated": 1716539418312, + "link": null, + "locked": false + }, + { + "id": "7szKNMG-Nhftw0f1eGHqt", + "type": "text", + "x": -2690.205468636049, + "y": -1149.4727177378743, + "width": 93.75, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1D", + "roundness": null, + "seed": 1781238044, + "version": 900, + "versionNonce": 597637540, + "isDeleted": false, + "boundElements": null, + "updated": 1716539639137, + "link": null, + "locked": false, + "text": "MultiSig\ncontract", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "cRUk1DppgTkCeA2RA6PRp", + "originalText": "MultiSig\ncontract", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "B-GrdFUwex-2uubnmOnI1", + "type": "rectangle", + "x": -2945.5049521007295, + "y": -976.1374378340123, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1E", + "roundness": { + "type": 3 + }, + "seed": 1777098780, + "version": 878, + "versionNonce": 1059996956, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "KV2r7mnQ1oRVMpa8RY0mz" + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + }, + { + "id": "kQehUAgBbf0Ji9UFy9BF_", + "type": "arrow" + } + ], + "updated": 1716539664837, + "link": null, + "locked": false + }, + { + "id": "KV2r7mnQ1oRVMpa8RY0mz", + "type": "text", + "x": -2924.811239751332, + "y": -934.3747307556991, + "width": 93.75, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1F", + "roundness": null, + "seed": 1177855644, + "version": 839, + "versionNonce": 378219172, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418312, + "link": null, + "locked": false, + "text": "1.Submit", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "B-GrdFUwex-2uubnmOnI1", + "originalText": "1.Submit", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "QsyMGBFykQvoXn8QB29cx", + "type": "rectangle", + "x": -2705.470280022004, + "y": -977.7329207932465, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1G", + "roundness": { + "type": 3 + }, + "seed": 1644243228, + "version": 989, + "versionNonce": 359523356, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "2yqrUQj5TdIvsguyhLEB9" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + } + ], + "updated": 1716539418312, + "link": null, + "locked": false + }, + { + "id": "2yqrUQj5TdIvsguyhLEB9", + "type": "text", + "x": -2690.6359426726062, + "y": -935.9702137149334, + "width": 105.46875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1H", + "roundness": null, + "seed": 416712356, + "version": 958, + "versionNonce": 680932900, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418312, + "link": null, + "locked": false, + "text": "2.Confirm", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QsyMGBFykQvoXn8QB29cx", + "originalText": "2.Confirm", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "VkDMdVlXh75qHnoxqn9Sr", + "type": "rectangle", + "x": -2438.429230550144, + "y": -978.5955708798944, + "width": 135.13742469879526, + "height": 107.52541415662643, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1I", + "roundness": { + "type": 3 + }, + "seed": 1471567004, + "version": 1062, + "versionNonce": 1262083612, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "o7LMIb_ysao606P8pmhLr" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow" + }, + { + "id": "ZxxJn-yzCtpP_bjqFNrfc", + "type": "arrow" + }, + { + "id": "qzg01fJ4NKy8SAp-UKcZb", + "type": "arrow" + } + ], + "updated": 1716539843069, + "link": null, + "locked": false + }, + { + "id": "o7LMIb_ysao606P8pmhLr", + "type": "text", + "x": -2429.4542682007464, + "y": -936.8328638015812, + "width": 117.1875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1J", + "roundness": null, + "seed": 1694225188, + "version": 1027, + "versionNonce": 1815335332, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418312, + "link": null, + "locked": false, + "text": "3.Executed", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "VkDMdVlXh75qHnoxqn9Sr", + "originalText": "3.Executed", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Fb0N5_2dmMh5QWT03E6SD", + "type": "arrow", + "x": -2702.61620963085, + "y": -1065.1147726871234, + "width": 118.65814932641752, + "height": 86.10177009407482, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1K", + "roundness": { + "type": 2 + }, + "seed": 1480202148, + "version": 2405, + "versionNonce": 5823388, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418313, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -118.65814932641752, + 86.10177009407482 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.1564438070980894, + "gap": 1.1217816471364586 + }, + "endBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": -0.1510108021651382, + "gap": 2.8755647590361946 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "MC1xTy33NWold_uvj5XyI", + "type": "arrow", + "x": -2629.4234385465124, + "y": -1061.9991853377257, + "width": 9.720163408487224, + "height": 83.2662645444791, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1L", + "roundness": { + "type": 2 + }, + "seed": 546446372, + "version": 2398, + "versionNonce": 898868380, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418314, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -9.720163408487224, + 83.2662645444791 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": -0.2732353143020411, + "gap": 4.237368996534087 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.10339000105429257, + "gap": 1.0000000000000568 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "fRoQnGYxMTrEW4JqZ3nd9", + "type": "arrow", + "x": -2584.144706119284, + "y": -1064.093500096762, + "width": 196.60959418927314, + "height": 80.5911144578314, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1M", + "roundness": { + "type": 2 + }, + "seed": 292839460, + "version": 2415, + "versionNonce": 1288706588, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418314, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 196.60959418927314, + 80.5911144578314 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cRUk1DppgTkCeA2RA6PRp", + "focus": 0.41998676780631494, + "gap": 2.143054237497836 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.6363234582027609, + "gap": 4.906814759036195 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "CQIv85ws6u80hPbxQLL10", + "type": "arrow", + "x": -2796.213995465972, + "y": -912.0691480903913, + "width": 78.7136130136987, + "height": 1.9510276651808454, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1O", + "roundness": { + "type": 2 + }, + "seed": 1072145060, + "version": 376, + "versionNonce": 762097948, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418314, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 78.7136130136987, + -1.9510276651808454 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": 0.22243400432383306, + "gap": 14.153531935962292 + }, + "endBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": -0.1438930394327399, + "gap": 12.03010243026938 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "-EKF8TXwo8VVfWFMhi7z_", + "type": "arrow", + "x": -2550.5055194385745, + "y": -919.3788461970805, + "width": 111.07628888843055, + "height": 4.733682476056401, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1P", + "roundness": { + "type": 2 + }, + "seed": 384820516, + "version": 373, + "versionNonce": 1618900636, + "isDeleted": false, + "boundElements": null, + "updated": 1716539418314, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 111.07628888843055, + -4.733682476056401 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "QsyMGBFykQvoXn8QB29cx", + "focus": 0.14681410442341442, + "gap": 19.827335884634067 + }, + "endBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.03887245516636853, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "QaL-uAHwyUTOHVcszS-WE", + "type": "ellipse", + "x": -3354.6197645684465, + "y": -237.02162348249328, + "width": 221.484375, + "height": 176.64276541095887, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1R", + "roundness": { + "type": 2 + }, + "seed": 1412150812, + "version": 488, + "versionNonce": 1392165020, + "isDeleted": false, + "boundElements": [ + { + "id": "DBi-vgSFCH4fU8G66TG3W", + "type": "arrow" + } + ], + "updated": 1716539661579, + "link": null, + "locked": false + }, + { + "id": "58dH_jCFon-Rj77cgs4fP", + "type": "text", + "x": -3321.224002582145, + "y": -180.09713718112357, + "width": 164.0625, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1S", + "roundness": null, + "seed": 205125668, + "version": 388, + "versionNonce": 2072214308, + "isDeleted": false, + "boundElements": null, + "updated": 1716539392725, + "link": null, + "locked": false, + "text": "Request\nfrom chain-api", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Request\nfrom chain-api", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "Ipm1nc8P_wdwFs4Kk4SxJ", + "type": "rectangle", + "x": -2055.2451398353014, + "y": -760.458359050008, + "width": 239.38356164383572, + "height": 194.70783390410952, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1U", + "roundness": { + "type": 3 + }, + "seed": 829457180, + "version": 244, + "versionNonce": 991965724, + "isDeleted": false, + "boundElements": [ + { + "id": "ZxxJn-yzCtpP_bjqFNrfc", + "type": "arrow" + } + ], + "updated": 1716539872222, + "link": null, + "locked": false + }, + { + "id": "3uVMFvenRJej4Rbog58rh", + "type": "text", + "x": -2019.1894307755256, + "y": -682.9455493853577, + "width": 164.0625, + "height": 33.6, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1V", + "roundness": null, + "seed": 481793948, + "version": 268, + "versionNonce": 294081060, + "isDeleted": false, + "boundElements": null, + "updated": 1716539874730, + "link": null, + "locked": false, + "text": "Amoy Chain", + "fontSize": 28, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Amoy Chain", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "ZxxJn-yzCtpP_bjqFNrfc", + "type": "arrow", + "x": -2302.2918058513487, + "y": -871.3157538795344, + "width": 246.0466660160473, + "height": 114.55398451081237, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1W", + "roundness": { + "type": 2 + }, + "seed": 1499860252, + "version": 526, + "versionNonce": 1053082020, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "o4_GzOcAfMJgIAupzpko7" + } + ], + "updated": 1716540020712, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 246.0466660160473, + 114.55398451081237 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.2534389896766181, + "gap": 1 + }, + "endBinding": { + "elementId": "Ipm1nc8P_wdwFs4Kk4SxJ", + "focus": 0.24474719997928107, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "o4_GzOcAfMJgIAupzpko7", + "type": "text", + "x": -2284.737222843325, + "y": -838.0387616241283, + "width": 210.9375, + "height": 48, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1WV", + "roundness": null, + "seed": 1561081628, + "version": 30, + "versionNonce": 1166496156, + "isDeleted": false, + "boundElements": null, + "updated": 1716540020412, + "link": null, + "locked": false, + "text": "Payout in MATIC to\nemployee", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "ZxxJn-yzCtpP_bjqFNrfc", + "originalText": "Payout in MATIC to employee", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "EeW5wWe3WWql2cANX4ZUu", + "type": "ellipse", + "x": -3222.58191265154, + "y": -644.3332117230185, + "width": 338.04788961038963, + "height": 160.1207386363635, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1X", + "roundness": { + "type": 2 + }, + "seed": 1118962212, + "version": 158, + "versionNonce": 1773821468, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "NHo2W6gxO9WP0E9ybqAk8" + }, + { + "id": "DBi-vgSFCH4fU8G66TG3W", + "type": "arrow" + }, + { + "id": "kQehUAgBbf0Ji9UFy9BF_", + "type": "arrow" + } + ], + "updated": 1716539720162, + "link": null, + "locked": false + }, + { + "id": "NHo2W6gxO9WP0E9ybqAk8", + "type": "text", + "x": -3159.044695400999, + "y": -576.3840724540225, + "width": 210.9375, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1XV", + "roundness": null, + "seed": 1929328796, + "version": 120, + "versionNonce": 2066493340, + "isDeleted": false, + "boundElements": null, + "updated": 1716539726257, + "link": null, + "locked": false, + "text": "payout to employee", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "EeW5wWe3WWql2cANX4ZUu", + "originalText": "payout to employee", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "cS2B-pYU--szz0BA2OYwn", + "type": "text", + "x": -2875.387310378818, + "y": -1321.0293967879552, + "width": 421.875, + "height": 43.199999999999996, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1Z", + "roundness": null, + "seed": 72253092, + "version": 236, + "versionNonce": 296115876, + "isDeleted": false, + "boundElements": null, + "updated": 1716539717921, + "link": null, + "locked": false, + "text": "Payroll For Employee", + "fontSize": 36, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Payroll For Employee", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "DBi-vgSFCH4fU8G66TG3W", + "type": "arrow", + "x": -3222.7868736655564, + "y": -236.41618442961249, + "width": 111.26675116307842, + "height": 242.20855989722907, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1a", + "roundness": { + "type": 2 + }, + "seed": 700563228, + "version": 65, + "versionNonce": 1538212764, + "isDeleted": false, + "boundElements": null, + "updated": 1716539720162, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 111.26675116307842, + -242.20855989722907 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "QaL-uAHwyUTOHVcszS-WE", + "focus": -0.16287451145652757, + "gap": 1 + }, + "endBinding": { + "elementId": "EeW5wWe3WWql2cANX4ZUu", + "focus": 0.10762450533511243, + "gap": 10.437837781052622 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "kQehUAgBbf0Ji9UFy9BF_", + "type": "arrow", + "x": -3045.161668691501, + "y": -654.1009713202255, + "width": 116.99411567084508, + "height": 205.2180358573478, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1b", + "roundness": { + "type": 2 + }, + "seed": 1874638364, + "version": 114, + "versionNonce": 745540764, + "isDeleted": false, + "boundElements": null, + "updated": 1716539720162, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 116.99411567084508, + -205.2180358573478 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "EeW5wWe3WWql2cANX4ZUu", + "focus": -0.24455524528160485, + "gap": 9.86686569266486 + }, + "endBinding": { + "elementId": "B-GrdFUwex-2uubnmOnI1", + "focus": 0.14542508937780488, + "gap": 9.293016499812609 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "2rlJZz2CDF-8U4UFHSYVE", + "type": "diamond", + "x": -2619.269209729477, + "y": -540.6146646450986, + "width": 267.0150162337671, + "height": 229.09354707792227, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1d", + "roundness": { + "type": 2 + }, + "seed": 591609892, + "version": 839, + "versionNonce": 1163019548, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "f8RCzDptufiv_eFGyt60P" + }, + { + "id": "qzg01fJ4NKy8SAp-UKcZb", + "type": "arrow" + } + ], + "updated": 1716539845601, + "link": null, + "locked": false + }, + { + "id": "f8RCzDptufiv_eFGyt60P", + "type": "text", + "x": -2544.1092056710354, + "y": -461.84127787561806, + "width": 117.1875, + "height": 72, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1dV", + "roundness": null, + "seed": 316340132, + "version": 207, + "versionNonce": 2105754012, + "isDeleted": false, + "boundElements": null, + "updated": 1716539845601, + "link": null, + "locked": false, + "text": "ChainLink\nAggregator\nV3", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "2rlJZz2CDF-8U4UFHSYVE", + "originalText": "ChainLink\nAggregatorV3", + "autoResize": true, + "lineHeight": 1.2 + }, + { + "id": "qzg01fJ4NKy8SAp-UKcZb", + "type": "arrow", + "x": -2444.872902911294, + "y": -877.9606144309707, + "width": 88.55619464614438, + "height": 360.40476252802694, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1f", + "roundness": { + "type": 2 + }, + "seed": 820005660, + "version": 567, + "versionNonce": 293055516, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "TvZSuRQHjCv33vyy3KQPf" + } + ], + "updated": 1716540019276, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -88.55619464614438, + 360.40476252802694 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "VkDMdVlXh75qHnoxqn9Sr", + "focus": 0.77365800559305, + "gap": 6.44367236115022 + }, + "endBinding": { + "elementId": "2rlJZz2CDF-8U4UFHSYVE", + "focus": -0.525417583484386, + "gap": 13.538670527192266 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "TvZSuRQHjCv33vyy3KQPf", + "type": "text", + "x": -2588.7603752343666, + "y": -709.7582331669573, + "width": 199.21875, + "height": 24, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1g", + "roundness": null, + "seed": 1911781404, + "version": 35, + "versionNonce": 340102308, + "isDeleted": false, + "boundElements": null, + "updated": 1716540017848, + "link": null, + "locked": false, + "text": "Get MATIC to USDT", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "qzg01fJ4NKy8SAp-UKcZb", + "originalText": "Get MATIC to USDT", + "autoResize": true, + "lineHeight": 1.2 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/excalidraw/payroll.png b/excalidraw/payroll.png new file mode 100644 index 0000000000000000000000000000000000000000..ecbcf4b19a3f77da33804c2d3be9d136509eab0e GIT binary patch literal 115076 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 W_YcI4mal<-POE61NLDhx{{H|SxQPe= literal 0 HcmV?d00001 From 2f9d9b09fc7c5ed2d62b6cc1498472da5166ca25 Mon Sep 17 00:00:00 2001 From: emochka2007 Date: Fri, 24 May 2024 12:23:00 +0300 Subject: [PATCH 17/17] descr init --- whitepaper.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 whitepaper.md diff --git a/whitepaper.md b/whitepaper.md new file mode 100644 index 0000000..6b271d4 --- /dev/null +++ b/whitepaper.md @@ -0,0 +1,58 @@ +### Chainlink Multisig Transaction Contract +- Overview: +- This contract is used to manage transactions within an organization that requires multiple confirmations. It leverages a multisig mechanism to ensure that actions within the contract are approved by multiple parties before they are executed. + +### Key Features: +- Owners Array: Initial deployment includes an array of addresses (owners[]), representing individuals linked to the organization. And the number of needed confirmations (uint <= owners.length); +- Confirmation Tracking: The contract tracks the number of confirmations required and received for each transaction. +- Transaction States: Each transaction can be in one of three states: +- Submitted: The initial state when a transaction is proposed. +- Confirmed: After the transaction receives the required number of confirmations. +- Executed: The final state after the transaction is executed. +- Deployment: Deployed using a main wallet which is considered the primary interface for administrative interactions. +### Workflow: +- Submission: A user proposes a transaction, which is recorded in the 'Submitted' state. +- Confirmation: As required confirmations are collected, the transaction transitions to the 'Confirmed' state. +- Execution: Once confirmed, the transaction can be executed by anyone, transitioning to the 'Executed' state. + +### Chainlink Payroll Contract +### Overview: +This contract manages the payroll system, allowing salaries to be set in USD and then paid out in ETH based on the current exchange rate provided via Chainlink oracles. + +### Key Features: +- Authorized Wallet: Only a specified wallet can execute payouts, set during contract deployment. +- Salary Management: Salaries are set in USD for each employee, needing confirmation through the multisig mechanism before execution. +- Currency Conversion: Utilizes Chainlink to fetch real-time ETH/USD prices to calculate the payout amount in ETH. +### Workflow: +- Set Salary: Propose salaries in USD which are confirmed and executed via multisig. +- Payout: On payroll day, the contract calculates the equivalent ETH for each employee's USD salary and transfers it. You have to deposit funds before calling this function. + +### Chainlink Licensing Contract +### Overview: +- This contract manages licensing agreements by distributing funds based on predefined shares, after fetching and storing relevant data from Chainlink data feeds. + +### Key Features: +- Data Request: Requests data, like total payout amounts, from a Chainlink data feed. +- Share and Owner Management: Stores shares and owner addresses, setting how distributions are handled. +- Multi-layer Confirmation: Deployment and critical functions require multisig confirmation. CREATE2 OPCODE is used on the multisig side. +### Workflow: +- Data Fetching: Requests data from Chainlink Custom Data Feed and stores it. +- Payout Setup: Before executing payouts, set the payroll contract address. +- Distribution: Distributes funds according to shares among the owners. + + +### Chainlink Agreement Contract +### Overview: +- Similar in functionality to the licensing contract, this contract fetches and evaluates boolean data points to determine outcomes of agreements. + +### Key Features: +- Boolean Data Handling: Manages agreement validations based on true/false responses from Chainlink data feeds. +### Workflow: +- Data Request: Fetches a boolean value determining the agreement's state. +- Outcome Execution: Executes actions based on the true/false outcome, similar to licensing contract operations. + + +These contracts collectively form a robust framework using Chainlink oracles and Ethereum blockchain technology to ensure secure, transparent, and decentralized transaction management within an organization. Each contract's deployment and operations are safeguarded by multisig processes to maintain organizational control and integrity. + +During development, we utilized the Polygon Amoy network because it simplifies handling multi calls and offers lower costs and faster transactions. This made Amoy an optimal choice for implementing these contracts. +

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

+ Nest Logo +