mirror of
https://github.com/parsnetwork/pars-vote.git
synced 2026-10-30 19:43:22 +00:00
1 line
136 KiB
JSON
1 line
136 KiB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"_asha","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"CLOCK_MODE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"asha","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ASHA"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"checkpoints","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"pos","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Checkpoints.Checkpoint208","components":[{"name":"_key","type":"uint48","internalType":"uint48"},{"name":"_value","type":"uint208","internalType":"uint208"}]}],"stateMutability":"view"},{"type":"function","name":"clock","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"delegate","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateBySig","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expiry","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegates","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPastTotalSupply","inputs":[{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPastVotes","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"lockEnd","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"numCheckpoints","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"lockMonths","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DelegateChanged","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"fromDelegate","type":"address","indexed":true,"internalType":"address"},{"name":"toDelegate","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateVotesChanged","inputs":[{"name":"delegate","type":"address","indexed":true,"internalType":"address"},{"name":"previousVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newVotes","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC20ExceededSafeSupply","inputs":[{"name":"increasedSupply","type":"uint256","internalType":"uint256"},{"name":"cap","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC5805FutureLookup","inputs":[{"name":"timepoint","type":"uint256","internalType":"uint256"},{"name":"clock","type":"uint48","internalType":"uint48"}]},{"type":"error","name":"ERC6372InconsistentClock","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]},{"type":"error","name":"VotesExpiredSignature","inputs":[{"name":"expiry","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610160604052348015610010575f5ffd5b506040516124a33803806124a383398101604081905261002f91610221565b6040518060400160405280600681526020016576654153484160d01b81525080604051806040016040528060018152602001603160f81b81525060405180604001604052806012815260200171566f746520457363726f776564204153484160701b8152506040518060400160405280600681526020016576654153484160d01b81525081600390816100c291906102e6565b5060046100cf82826102e6565b506100df915083905060056101a9565b610120526100ee8160066101a9565b61014052815160208084019190912060e052815190820120610100524660a05261017a60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c05250600b80546001600160a01b0319166001600160a01b03929092169190911790556103f8565b5f6020835110156101c4576101bd836101db565b90506101d5565b816101cf84826102e6565b5060ff90505b92915050565b5f5f829050601f8151111561020e578260405163305a27a960e01b815260040161020591906103a0565b60405180910390fd5b8051610219826103d5565b179392505050565b5f60208284031215610231575f5ffd5b81516001600160a01b0381168114610247575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061027657607f821691505b60208210810361029457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102e157805f5260205f20601f840160051c810160208510156102bf5750805b601f840160051c820191505b818110156102de575f81556001016102cb565b50505b505050565b81516001600160401b038111156102ff576102ff61024e565b6103138161030d8454610262565b8461029a565b6020601f821160018114610345575f831561032e5750848201515b5f19600385901b1c1916600184901b1784556102de565b5f84815260208120601f198516915b828110156103745787850151825560209485019460019092019101610354565b508482101561039157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610294575f1960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161205a6104495f395f610f5a01525f610f2d01525f610ceb01525f610cc301525f610c1e01525f610c4801525f610c72015261205a5ff3fe608060405234801561000f575f5ffd5b50600436106101a1575f3560e01c806370a08231116100f35780639ab24eb011610093578063d2ad9ef31161006e578063d2ad9ef3146103cb578063d505accf146103de578063dd62ed3e146103f1578063f1127ed814610429575f5ffd5b80639ab24eb014610392578063a9059cbb146103a5578063c3cda520146103b8575f5ffd5b806384b0196e116100ce57806384b0196e1461033d5780638e539e8c1461035857806391ddadf41461036b57806395d89b411461038a575f5ffd5b806370a08231146102ef5780637b0472f0146103175780637ecebe001461032a575f5ffd5b8063313ce5671161015e5780634bf5d7e9116101395780634bf5d7e914610269578063587cde1e146102715780635c19a95c146102b45780636fcfff45146102c7575f5ffd5b8063313ce5671461023f5780633644e5151461024e5780633a46b1a814610256575f5ffd5b806306fdde03146101a5578063095ea7b3146101c357806318160ddd146101e657806323792279146101f857806323b872dd146102175780632e17de781461022a575b5f5ffd5b6101ad610468565b6040516101ba9190611c36565b60405180910390f35b6101d66101d1366004611c63565b6104f8565b60405190151581526020016101ba565b6002545b6040519081526020016101ba565b6101ea610206366004611c8b565b600c6020525f908152604090205481565b6101d6610225366004611ca4565b610511565b61023d610238366004611cde565b610534565b005b604051601281526020016101ba565b6101ea610629565b6101ea610264366004611c63565b610637565b6101ad610671565b61029c61027f366004611c8b565b6001600160a01b039081165f908152600860205260409020541690565b6040516001600160a01b0390911681526020016101ba565b61023d6102c2366004611c8b565b6106e9565b6102da6102d5366004611c8b565b6106f4565b60405163ffffffff90911681526020016101ba565b6101ea6102fd366004611c8b565b6001600160a01b03165f9081526020819052604090205490565b61023d610325366004611cf5565b6106fe565b6101ea610338366004611c8b565b610828565b610345610832565b6040516101ba9796959493929190611d15565b6101ea610366366004611cde565b610874565b610373610898565b60405165ffffffffffff90911681526020016101ba565b6101ad6108a1565b6101ea6103a0366004611c8b565b6108b0565b6101d66103b3366004611c63565b6108d0565b61023d6103c6366004611dbb565b6108dd565b600b5461029c906001600160a01b031681565b61023d6103ec366004611e0f565b610999565b6101ea6103ff366004611e75565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61043c610437366004611ea6565b610acf565b60408051825165ffffffffffff1681526020928301516001600160d01b031692810192909252016101ba565b60606003805461047790611ee3565b80601f01602080910402602001604051908101604052809291908181526020018280546104a390611ee3565b80156104ee5780601f106104c5576101008083540402835291602001916104ee565b820191905f5260205f20905b8154815290600101906020018083116104d157829003601f168201915b5050505050905090565b5f33610505818585610af3565b60019150505b92915050565b5f3361051e858285610b05565b610529858585610b81565b506001949350505050565b335f908152600c60205260409020544210156105865760405162461bcd60e51b815260206004820152600c60248201526b14dd1a5b1b081b1bd8dad95960a21b60448201526064015b60405180910390fd5b6105903382610bde565b600b546001600160a01b031663a9059cbb33606e6105af856064611f2f565b6105b99190611f5a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610601573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106259190611f79565b5050565b5f610632610c12565b905090565b5f61066161064483610d3b565b6001600160a01b0385165f90815260096020526040902090610d89565b6001600160d01b03169392505050565b606061067b610e39565b65ffffffffffff1661068b610898565b65ffffffffffff16146106b1576040516301bfc1c560e61b815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b336106258183610e43565b5f61050b82610eb4565b60018110158015610710575060308111155b61074b5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206c6f636b60a01b604482015260640161057d565b600b546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561079f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c39190611f79565b505f60646107d283600a611f2f565b6107dd906064611f98565b6107e79085611f2f565b6107f19190611f5a565b90506107fd3382610ed5565b61080a8262278d00611f2f565b6108149042611f98565b335f908152600c6020526040902055505050565b5f61050b82610f09565b5f6060805f5f5f6060610843610f26565b61084b610f53565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f61088961088183610d3b565b600a90610d89565b6001600160d01b031692915050565b5f610632610e39565b60606004805461047790611ee3565b6001600160a01b0381165f90815260096020526040812061088990610f80565b5f33610505818585610b81565b8342111561090157604051632341d78760e11b81526004810185905260240161057d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f9061097a906109729060a00160405160208183030381529060405280519060200120610fb7565b858585610fe3565b9050610986818761100f565b6109908188610e43565b50505050505050565b834211156109bd5760405163313c898160e11b81526004810185905260240161057d565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a088c6001600160a01b03165f90815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610a6282610fb7565b90505f610a7182878787610fe3565b9050896001600160a01b0316816001600160a01b031614610ab8576040516325c0072360e11b81526001600160a01b0380831660048301528b16602482015260440161057d565b610ac38a8a8a610af3565b50505050505050505050565b604080518082019091525f8082526020820152610aec8383611061565b9392505050565b610b008383836001611095565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811015610b7b5781811015610b6d57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161057d565b610b7b84848484035f611095565b50505050565b6001600160a01b038316610baa57604051634b637e8f60e11b81525f600482015260240161057d565b6001600160a01b038216610bd35760405163ec442f0560e01b81525f600482015260240161057d565b610b00838383611167565b6001600160a01b038216610c0757604051634b637e8f60e11b81525f600482015260240161057d565b610625825f83611167565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610c6a57507f000000000000000000000000000000000000000000000000000000000000000046145b15610c9457507f000000000000000000000000000000000000000000000000000000000000000090565b610632604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f5f610d45610898565b90508065ffffffffffff168310610d8057604051637669fc0f60e11b81526004810184905265ffffffffffff8216602482015260440161057d565b610aec83611172565b81545f9081816005811115610de5575f610da2846111a8565b610dac9085611fab565b5f8881526020902090915081015465ffffffffffff9081169087161015610dd557809150610de3565b610de0816001611f98565b92505b505b5f610df287878585611300565b90508015610e2c57610e1687610e09600184611fab565b5f91825260209091200190565b54600160301b90046001600160d01b0316610e2e565b5f5b979650505050505050565b5f61063243611172565b6001600160a01b038281165f8181526008602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610b008183610eaf8661135f565b61137c565b6001600160a01b0381165f9081526009602052604081205461050b906114e5565b6001600160a01b038216610efe5760405163ec442f0560e01b81525f600482015260240161057d565b6106255f8383611167565b6001600160a01b0381165f9081526007602052604081205461050b565b60606106327f00000000000000000000000000000000000000000000000000000000000000006005611515565b60606106327f00000000000000000000000000000000000000000000000000000000000000006006611515565b80545f908015610faf57610f9983610e09600184611fab565b54600160301b90046001600160d01b0316610aec565b5f9392505050565b5f61050b610fc3610c12565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f5f610ff3888888886115be565b9250925092506110038282611686565b50909695505050505050565b6001600160a01b0382165f908152600760205260409020805460018101909155818114610b00576040516301d4b62360e61b81526001600160a01b03841660048201526024810182905260440161057d565b604080518082019091525f80825260208201526001600160a01b0383165f908152600960205260409020610aec908361173e565b6001600160a01b0384166110be5760405163e602df0560e01b81525f600482015260240161057d565b6001600160a01b0383166110e757604051634a1406b160e11b81525f600482015260240161057d565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015610b7b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161115991815260200190565b60405180910390a350505050565b610b008383836117ab565b5f65ffffffffffff8211156111a4576040516306dfcc6560e41b8152603060048201526024810183905260440161057d565b5090565b5f600182116111b5575090565b816001600160801b82106111ce5760809190911c9060401b5b6801000000000000000082106111e95760409190911c9060201b5b64010000000082106112005760209190911c9060101b5b6201000082106112155760109190911c9060081b5b61010082106112295760089190911c9060041b5b6010821061123c5760049190911c9060021b5b600482106112485760011b5b600302600190811c9081858161126057611260611f46565b048201901c9050600181858161127857611278611f46565b048201901c9050600181858161129057611290611f46565b048201901c905060018185816112a8576112a8611f46565b048201901c905060018185816112c0576112c0611f46565b048201901c905060018185816112d8576112d8611f46565b048201901c90506112f78185816112f1576112f1611f46565b04821190565b90039392505050565b5f5b81831015611357575f6113158484611811565b5f8781526020902090915065ffffffffffff86169082015465ffffffffffff16111561134357809250611351565b61134e816001611f98565b93505b50611302565b509392505050565b6001600160a01b0381165f9081526020819052604081205461050b565b816001600160a01b0316836001600160a01b03161415801561139d57505f81115b15610b00576001600160a01b03831615611444576001600160a01b0383165f90815260096020526040812081906113df9061182b6113da86611836565b611869565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611439929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610b00576001600160a01b0382165f908152600960205260408120819061147c906118a16113da86611836565b6001600160d01b031691506001600160d01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516114d6929190918252602082015260400190565b60405180910390a25050505050565b5f63ffffffff8211156111a4576040516306dfcc6560e41b8152602060048201526024810183905260440161057d565b606060ff831461152f57611528836118ac565b905061050b565b81805461153b90611ee3565b80601f016020809104026020016040519081016040528092919081815260200182805461156790611ee3565b80156115b25780601f10611589576101008083540402835291602001916115b2565b820191905f5260205f20905b81548152906001019060200180831161159557829003601f168201915b5050505050905061050b565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156115f757505f9150600390508261167c565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611648573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661167357505f92506001915082905061167c565b92505f91508190505b9450945094915050565b5f82600381111561169957611699611fbe565b036116a2575050565b60018260038111156116b6576116b6611fbe565b036116d45760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156116e8576116e8611fbe565b036117095760405163fce698f760e01b81526004810182905260240161057d565b600382600381111561171d5761171d611fbe565b03610625576040516335e2f38360e21b81526004810182905260240161057d565b604080518082019091525f8082526020820152825f018263ffffffff168154811061176b5761176b611fd2565b5f9182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b6117b68383836118e9565b6001600160a01b038316611806575f6117ce60025490565b90506001600160d01b038082111561180357604051630e58ae9360e11b8152600481018390526024810182905260440161057d565b50505b610b00838383611a0f565b5f61181f6002848418611f5a565b610aec90848416611f98565b5f610aec8284611fe6565b5f6001600160d01b038211156111a4576040516306dfcc6560e41b815260d060048201526024810183905260440161057d565b5f5f611894611876610898565b61188c61188288610f80565b868863ffffffff16565b879190611a84565b915091505b935093915050565b5f610aec8284612005565b60605f6118b883611a91565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b038316611913578060025f8282546119089190611f98565b909155506119839050565b6001600160a01b0383165f90815260208190526040902054818110156119655760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161057d565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661199f576002805482900390556119bd565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0291815260200190565b60405180910390a3505050565b6001600160a01b038316611a3157611a2e600a6118a16113da84611836565b50505b6001600160a01b038216611a5357611a50600a61182b6113da84611836565b50505b6001600160a01b038381165f90815260086020526040808220548584168352912054610b009291821691168361137c565b5f80611894858585611ab8565b5f60ff8216601f81111561050b57604051632cd44ac360e21b815260040160405180910390fd5b82545f9081908015611bae575f611ad487610e09600185611fab565b805490915065ffffffffffff80821691600160301b90046001600160d01b0316908816821115611b1757604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff1603611b5057825465ffffffffffff16600160301b6001600160d01b03891602178355611ba0565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160301b029216919091179101555b945085935061189992505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160301b029190931617920191909155905081611899565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610aec6020830184611c08565b80356001600160a01b0381168114611c5e575f5ffd5b919050565b5f5f60408385031215611c74575f5ffd5b611c7d83611c48565b946020939093013593505050565b5f60208284031215611c9b575f5ffd5b610aec82611c48565b5f5f5f60608486031215611cb6575f5ffd5b611cbf84611c48565b9250611ccd60208501611c48565b929592945050506040919091013590565b5f60208284031215611cee575f5ffd5b5035919050565b5f5f60408385031215611d06575f5ffd5b50508035926020909101359150565b60ff60f81b8816815260e060208201525f611d3360e0830189611c08565b8281036040840152611d458189611c08565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015611d9a578351835260209384019390920191600101611d7c565b50909b9a5050505050505050505050565b803560ff81168114611c5e575f5ffd5b5f5f5f5f5f5f60c08789031215611dd0575f5ffd5b611dd987611c48565b95506020870135945060408701359350611df560608801611dab565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a031215611e25575f5ffd5b611e2e88611c48565b9650611e3c60208901611c48565b95506040880135945060608801359350611e5860808901611dab565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215611e86575f5ffd5b611e8f83611c48565b9150611e9d60208401611c48565b90509250929050565b5f5f60408385031215611eb7575f5ffd5b611ec083611c48565b9150602083013563ffffffff81168114611ed8575f5ffd5b809150509250929050565b600181811c90821680611ef757607f821691505b602082108103611f1557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761050b5761050b611f1b565b634e487b7160e01b5f52601260045260245ffd5b5f82611f7457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f89575f5ffd5b81518015158114610aec575f5ffd5b8082018082111561050b5761050b611f1b565b8181038181111561050b5761050b611f1b565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b6001600160d01b03828116828216039081111561050b5761050b611f1b565b6001600160d01b03818116838216019081111561050b5761050b611f1b56fea2646970667358221220b3fe218618803561984f27fc3f32ffb6a143894b1f78d6d304c804c4166fdf9c64736f6c634300081c0033","sourceMap":"879:1218:42:-:0;;;1006:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1577:52:23;;;;;;;;;;;;;-1:-1:-1;;;1577:52:23;;;1616:4;3428:431:35;;;;;;;;;;;;;-1:-1:-1;;;3428:431:35;;;1582:113:21;;;;;;;;;;;;;-1:-1:-1;;;1582:113:21;;;;;;;;;;;;;;;;-1:-1:-1;;;1582:113:21;;;1656:5;1648;:13;;;;;;:::i;:::-;-1:-1:-1;1671:7:21;:17;1681:7;1671;:17;:::i;:::-;-1:-1:-1;3501:45:35;;-1:-1:-1;3501:4:35;;-1:-1:-1;3532:13:35;3501:30;:45::i;:::-;3493:53;;3567:51;:7;3601:16;3567:33;:51::i;:::-;3556:62;;3642:22;;;;;;;;;;3628:36;;3691:25;;;;;;3674:42;;3744:13;3727:30;;3792:23;4326:11;;4339:14;;4304:80;;;2079:95;4304:80;;;3209:25:43;3250:18;;;3243:34;;;;3293:18;;;3286:34;4355:13:35;3336:18:43;;;3329:34;4378:4:35;3379:19:43;;;3372:61;4268:7:35;;3181:19:43;;4304:80:35;;;;;;;;;;;;4294:91;;;;;;4287:98;;4213:179;;3792:23;3767:48;;-1:-1:-1;;3847:4:35;3825:27;;-1:-1:-1;1103:4:42::2;:18:::0;;-1:-1:-1;;;;;;1103:18:42::2;-1:-1:-1::0;;;;;1103:18:42;;;::::2;::::0;;;::::2;::::0;;879:1218;;2893:342:31;2989:11;3038:4;3022:5;3016:19;:26;3012:217;;;3065:20;3079:5;3065:13;:20::i;:::-;3058:27;;;;3012:217;3142:5;3116:46;3157:5;3142;3116:46;:::i;:::-;-1:-1:-1;1390:66:31;;-1:-1:-1;3012:217:31;2893:342;;;;:::o;1708:288::-;1773:11;1796:17;1822:3;1796:30;;1854:4;1840;:11;:18;1836:74;;;1895:3;1881:18;;-1:-1:-1;;;1881:18:31;;;;;;;;:::i;:::-;;;;;;;;1836:74;1976:11;;1959:13;1976:4;1959:13;:::i;:::-;1951:36;;1708:288;-1:-1:-1;;;1708:288:31:o;14:290:43:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:43;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:43:o;309:127::-;370:10;365:3;361:20;358:1;351:31;401:4;398:1;391:15;425:4;422:1;415:15;441:380;520:1;516:12;;;;563;;;584:61;;638:4;630:6;626:17;616:27;;584:61;691:2;683:6;680:14;660:18;657:38;654:161;;737:10;732:3;728:20;725:1;718:31;772:4;769:1;762:15;800:4;797:1;790:15;654:161;;441:380;;;:::o;952:518::-;1054:2;1049:3;1046:11;1043:421;;;1090:5;1087:1;1080:16;1134:4;1131:1;1121:18;1204:2;1192:10;1188:19;1185:1;1181:27;1175:4;1171:38;1240:4;1228:10;1225:20;1222:47;;;-1:-1:-1;1263:4:43;1222:47;1318:2;1313:3;1309:12;1306:1;1302:20;1296:4;1292:31;1282:41;;1373:81;1391:2;1384:5;1381:13;1373:81;;;1450:1;1436:16;;1417:1;1406:13;1373:81;;;1377:3;;1043:421;952:518;;;:::o;1646:1299::-;1766:10;;-1:-1:-1;;;;;1788:30:43;;1785:56;;;1821:18;;:::i;:::-;1850:97;1940:6;1900:38;1932:4;1926:11;1900:38;:::i;:::-;1894:4;1850:97;:::i;:::-;1996:4;2027:2;2016:14;;2044:1;2039:649;;;;2732:1;2749:6;2746:89;;;-1:-1:-1;2801:19:43;;;2795:26;2746:89;-1:-1:-1;;1603:1:43;1599:11;;;1595:24;1591:29;1581:40;1627:1;1623:11;;;1578:57;2848:81;;2009:930;;2039:649;899:1;892:14;;;936:4;923:18;;-1:-1:-1;;2075:20:43;;;2193:222;2207:7;2204:1;2201:14;2193:222;;;2289:19;;;2283:26;2268:42;;2396:4;2381:20;;;;2349:1;2337:14;;;;2223:12;2193:222;;;2197:3;2443:6;2434:7;2431:19;2428:201;;;2504:19;;;2498:26;-1:-1:-1;;2587:1:43;2583:14;;;2599:3;2579:24;2575:37;2571:42;2556:58;2541:74;;2428:201;-1:-1:-1;;;;2675:1:43;2659:14;;;2655:22;2642:36;;-1:-1:-1;1646:1299:43:o;3444:418::-;3593:2;3582:9;3575:21;3556:4;3625:6;3619:13;3668:6;3663:2;3652:9;3648:18;3641:34;3727:6;3722:2;3714:6;3710:15;3705:2;3694:9;3690:18;3684:50;3783:1;3778:2;3769:6;3758:9;3754:22;3750:31;3743:42;3853:2;3846;3842:7;3837:2;3829:6;3825:15;3821:29;3810:9;3806:45;3802:54;3794:62;;;3444:418;;;;:::o;3867:297::-;3985:12;;4032:4;4021:16;;;4015:23;;3985:12;4050:16;;4047:111;;;-1:-1:-1;;4124:4:43;4120:17;;;;4117:1;4113:25;4109:38;4098:50;;3867:297;-1:-1:-1;3867:297:43:o;:::-;879:1218:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b50600436106101a1575f3560e01c806370a08231116100f35780639ab24eb011610093578063d2ad9ef31161006e578063d2ad9ef3146103cb578063d505accf146103de578063dd62ed3e146103f1578063f1127ed814610429575f5ffd5b80639ab24eb014610392578063a9059cbb146103a5578063c3cda520146103b8575f5ffd5b806384b0196e116100ce57806384b0196e1461033d5780638e539e8c1461035857806391ddadf41461036b57806395d89b411461038a575f5ffd5b806370a08231146102ef5780637b0472f0146103175780637ecebe001461032a575f5ffd5b8063313ce5671161015e5780634bf5d7e9116101395780634bf5d7e914610269578063587cde1e146102715780635c19a95c146102b45780636fcfff45146102c7575f5ffd5b8063313ce5671461023f5780633644e5151461024e5780633a46b1a814610256575f5ffd5b806306fdde03146101a5578063095ea7b3146101c357806318160ddd146101e657806323792279146101f857806323b872dd146102175780632e17de781461022a575b5f5ffd5b6101ad610468565b6040516101ba9190611c36565b60405180910390f35b6101d66101d1366004611c63565b6104f8565b60405190151581526020016101ba565b6002545b6040519081526020016101ba565b6101ea610206366004611c8b565b600c6020525f908152604090205481565b6101d6610225366004611ca4565b610511565b61023d610238366004611cde565b610534565b005b604051601281526020016101ba565b6101ea610629565b6101ea610264366004611c63565b610637565b6101ad610671565b61029c61027f366004611c8b565b6001600160a01b039081165f908152600860205260409020541690565b6040516001600160a01b0390911681526020016101ba565b61023d6102c2366004611c8b565b6106e9565b6102da6102d5366004611c8b565b6106f4565b60405163ffffffff90911681526020016101ba565b6101ea6102fd366004611c8b565b6001600160a01b03165f9081526020819052604090205490565b61023d610325366004611cf5565b6106fe565b6101ea610338366004611c8b565b610828565b610345610832565b6040516101ba9796959493929190611d15565b6101ea610366366004611cde565b610874565b610373610898565b60405165ffffffffffff90911681526020016101ba565b6101ad6108a1565b6101ea6103a0366004611c8b565b6108b0565b6101d66103b3366004611c63565b6108d0565b61023d6103c6366004611dbb565b6108dd565b600b5461029c906001600160a01b031681565b61023d6103ec366004611e0f565b610999565b6101ea6103ff366004611e75565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61043c610437366004611ea6565b610acf565b60408051825165ffffffffffff1681526020928301516001600160d01b031692810192909252016101ba565b60606003805461047790611ee3565b80601f01602080910402602001604051908101604052809291908181526020018280546104a390611ee3565b80156104ee5780601f106104c5576101008083540402835291602001916104ee565b820191905f5260205f20905b8154815290600101906020018083116104d157829003601f168201915b5050505050905090565b5f33610505818585610af3565b60019150505b92915050565b5f3361051e858285610b05565b610529858585610b81565b506001949350505050565b335f908152600c60205260409020544210156105865760405162461bcd60e51b815260206004820152600c60248201526b14dd1a5b1b081b1bd8dad95960a21b60448201526064015b60405180910390fd5b6105903382610bde565b600b546001600160a01b031663a9059cbb33606e6105af856064611f2f565b6105b99190611f5a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610601573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106259190611f79565b5050565b5f610632610c12565b905090565b5f61066161064483610d3b565b6001600160a01b0385165f90815260096020526040902090610d89565b6001600160d01b03169392505050565b606061067b610e39565b65ffffffffffff1661068b610898565b65ffffffffffff16146106b1576040516301bfc1c560e61b815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b336106258183610e43565b5f61050b82610eb4565b60018110158015610710575060308111155b61074b5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206c6f636b60a01b604482015260640161057d565b600b546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561079f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c39190611f79565b505f60646107d283600a611f2f565b6107dd906064611f98565b6107e79085611f2f565b6107f19190611f5a565b90506107fd3382610ed5565b61080a8262278d00611f2f565b6108149042611f98565b335f908152600c6020526040902055505050565b5f61050b82610f09565b5f6060805f5f5f6060610843610f26565b61084b610f53565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f61088961088183610d3b565b600a90610d89565b6001600160d01b031692915050565b5f610632610e39565b60606004805461047790611ee3565b6001600160a01b0381165f90815260096020526040812061088990610f80565b5f33610505818585610b81565b8342111561090157604051632341d78760e11b81526004810185905260240161057d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f9061097a906109729060a00160405160208183030381529060405280519060200120610fb7565b858585610fe3565b9050610986818761100f565b6109908188610e43565b50505050505050565b834211156109bd5760405163313c898160e11b81526004810185905260240161057d565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610a088c6001600160a01b03165f90815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610a6282610fb7565b90505f610a7182878787610fe3565b9050896001600160a01b0316816001600160a01b031614610ab8576040516325c0072360e11b81526001600160a01b0380831660048301528b16602482015260440161057d565b610ac38a8a8a610af3565b50505050505050505050565b604080518082019091525f8082526020820152610aec8383611061565b9392505050565b610b008383836001611095565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811015610b7b5781811015610b6d57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161057d565b610b7b84848484035f611095565b50505050565b6001600160a01b038316610baa57604051634b637e8f60e11b81525f600482015260240161057d565b6001600160a01b038216610bd35760405163ec442f0560e01b81525f600482015260240161057d565b610b00838383611167565b6001600160a01b038216610c0757604051634b637e8f60e11b81525f600482015260240161057d565b610625825f83611167565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610c6a57507f000000000000000000000000000000000000000000000000000000000000000046145b15610c9457507f000000000000000000000000000000000000000000000000000000000000000090565b610632604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f5f610d45610898565b90508065ffffffffffff168310610d8057604051637669fc0f60e11b81526004810184905265ffffffffffff8216602482015260440161057d565b610aec83611172565b81545f9081816005811115610de5575f610da2846111a8565b610dac9085611fab565b5f8881526020902090915081015465ffffffffffff9081169087161015610dd557809150610de3565b610de0816001611f98565b92505b505b5f610df287878585611300565b90508015610e2c57610e1687610e09600184611fab565b5f91825260209091200190565b54600160301b90046001600160d01b0316610e2e565b5f5b979650505050505050565b5f61063243611172565b6001600160a01b038281165f8181526008602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610b008183610eaf8661135f565b61137c565b6001600160a01b0381165f9081526009602052604081205461050b906114e5565b6001600160a01b038216610efe5760405163ec442f0560e01b81525f600482015260240161057d565b6106255f8383611167565b6001600160a01b0381165f9081526007602052604081205461050b565b60606106327f00000000000000000000000000000000000000000000000000000000000000006005611515565b60606106327f00000000000000000000000000000000000000000000000000000000000000006006611515565b80545f908015610faf57610f9983610e09600184611fab565b54600160301b90046001600160d01b0316610aec565b5f9392505050565b5f61050b610fc3610c12565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f5f610ff3888888886115be565b9250925092506110038282611686565b50909695505050505050565b6001600160a01b0382165f908152600760205260409020805460018101909155818114610b00576040516301d4b62360e61b81526001600160a01b03841660048201526024810182905260440161057d565b604080518082019091525f80825260208201526001600160a01b0383165f908152600960205260409020610aec908361173e565b6001600160a01b0384166110be5760405163e602df0560e01b81525f600482015260240161057d565b6001600160a01b0383166110e757604051634a1406b160e11b81525f600482015260240161057d565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015610b7b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161115991815260200190565b60405180910390a350505050565b610b008383836117ab565b5f65ffffffffffff8211156111a4576040516306dfcc6560e41b8152603060048201526024810183905260440161057d565b5090565b5f600182116111b5575090565b816001600160801b82106111ce5760809190911c9060401b5b6801000000000000000082106111e95760409190911c9060201b5b64010000000082106112005760209190911c9060101b5b6201000082106112155760109190911c9060081b5b61010082106112295760089190911c9060041b5b6010821061123c5760049190911c9060021b5b600482106112485760011b5b600302600190811c9081858161126057611260611f46565b048201901c9050600181858161127857611278611f46565b048201901c9050600181858161129057611290611f46565b048201901c905060018185816112a8576112a8611f46565b048201901c905060018185816112c0576112c0611f46565b048201901c905060018185816112d8576112d8611f46565b048201901c90506112f78185816112f1576112f1611f46565b04821190565b90039392505050565b5f5b81831015611357575f6113158484611811565b5f8781526020902090915065ffffffffffff86169082015465ffffffffffff16111561134357809250611351565b61134e816001611f98565b93505b50611302565b509392505050565b6001600160a01b0381165f9081526020819052604081205461050b565b816001600160a01b0316836001600160a01b03161415801561139d57505f81115b15610b00576001600160a01b03831615611444576001600160a01b0383165f90815260096020526040812081906113df9061182b6113da86611836565b611869565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611439929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610b00576001600160a01b0382165f908152600960205260408120819061147c906118a16113da86611836565b6001600160d01b031691506001600160d01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516114d6929190918252602082015260400190565b60405180910390a25050505050565b5f63ffffffff8211156111a4576040516306dfcc6560e41b8152602060048201526024810183905260440161057d565b606060ff831461152f57611528836118ac565b905061050b565b81805461153b90611ee3565b80601f016020809104026020016040519081016040528092919081815260200182805461156790611ee3565b80156115b25780601f10611589576101008083540402835291602001916115b2565b820191905f5260205f20905b81548152906001019060200180831161159557829003601f168201915b5050505050905061050b565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156115f757505f9150600390508261167c565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611648573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661167357505f92506001915082905061167c565b92505f91508190505b9450945094915050565b5f82600381111561169957611699611fbe565b036116a2575050565b60018260038111156116b6576116b6611fbe565b036116d45760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156116e8576116e8611fbe565b036117095760405163fce698f760e01b81526004810182905260240161057d565b600382600381111561171d5761171d611fbe565b03610625576040516335e2f38360e21b81526004810182905260240161057d565b604080518082019091525f8082526020820152825f018263ffffffff168154811061176b5761176b611fd2565b5f9182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b6117b68383836118e9565b6001600160a01b038316611806575f6117ce60025490565b90506001600160d01b038082111561180357604051630e58ae9360e11b8152600481018390526024810182905260440161057d565b50505b610b00838383611a0f565b5f61181f6002848418611f5a565b610aec90848416611f98565b5f610aec8284611fe6565b5f6001600160d01b038211156111a4576040516306dfcc6560e41b815260d060048201526024810183905260440161057d565b5f5f611894611876610898565b61188c61188288610f80565b868863ffffffff16565b879190611a84565b915091505b935093915050565b5f610aec8284612005565b60605f6118b883611a91565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b038316611913578060025f8282546119089190611f98565b909155506119839050565b6001600160a01b0383165f90815260208190526040902054818110156119655760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161057d565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661199f576002805482900390556119bd565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a0291815260200190565b60405180910390a3505050565b6001600160a01b038316611a3157611a2e600a6118a16113da84611836565b50505b6001600160a01b038216611a5357611a50600a61182b6113da84611836565b50505b6001600160a01b038381165f90815260086020526040808220548584168352912054610b009291821691168361137c565b5f80611894858585611ab8565b5f60ff8216601f81111561050b57604051632cd44ac360e21b815260040160405180910390fd5b82545f9081908015611bae575f611ad487610e09600185611fab565b805490915065ffffffffffff80821691600160301b90046001600160d01b0316908816821115611b1757604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff1603611b5057825465ffffffffffff16600160301b6001600160d01b03891602178355611ba0565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160301b029216919091179101555b945085935061189992505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160301b029190931617920191909155905081611899565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610aec6020830184611c08565b80356001600160a01b0381168114611c5e575f5ffd5b919050565b5f5f60408385031215611c74575f5ffd5b611c7d83611c48565b946020939093013593505050565b5f60208284031215611c9b575f5ffd5b610aec82611c48565b5f5f5f60608486031215611cb6575f5ffd5b611cbf84611c48565b9250611ccd60208501611c48565b929592945050506040919091013590565b5f60208284031215611cee575f5ffd5b5035919050565b5f5f60408385031215611d06575f5ffd5b50508035926020909101359150565b60ff60f81b8816815260e060208201525f611d3360e0830189611c08565b8281036040840152611d458189611c08565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015611d9a578351835260209384019390920191600101611d7c565b50909b9a5050505050505050505050565b803560ff81168114611c5e575f5ffd5b5f5f5f5f5f5f60c08789031215611dd0575f5ffd5b611dd987611c48565b95506020870135945060408701359350611df560608801611dab565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a031215611e25575f5ffd5b611e2e88611c48565b9650611e3c60208901611c48565b95506040880135945060608801359350611e5860808901611dab565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215611e86575f5ffd5b611e8f83611c48565b9150611e9d60208401611c48565b90509250929050565b5f5f60408385031215611eb7575f5ffd5b611ec083611c48565b9150602083013563ffffffff81168114611ed8575f5ffd5b809150509250929050565b600181811c90821680611ef757607f821691505b602082108103611f1557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761050b5761050b611f1b565b634e487b7160e01b5f52601260045260245ffd5b5f82611f7457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f89575f5ffd5b81518015158114610aec575f5ffd5b8082018082111561050b5761050b611f1b565b8181038181111561050b5761050b611f1b565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b6001600160d01b03828116828216039081111561050b5761050b611f1b565b6001600160d01b03818116838216019081111561050b5761050b611f1b56fea2646970667358221220b3fe218618803561984f27fc3f32ffb6a143894b1f78d6d304c804c4166fdf9c64736f6c634300081c0033","sourceMap":"879:1218:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;:::i;:::-;;:::i;:::-;;;1181:14:43;;1174:22;1156:41;;1144:2;1129:18;3902:186:21;1016:187:43;2803:97:21;2881:12;;2803:97;;;1354:25:43;;;1342:2;1327:18;2803:97:21;1208:177:43;957:42:42;;;;;;:::i;:::-;;;;;;;;;;;;;;4680:244:21;;;;;;:::i;:::-;;:::i;1564:243:42:-;;;;;;:::i;:::-;;:::i;:::-;;2688:82:21;;;2761:2;2333:36:43;;2321:2;2306:18;2688:82:21;2191:184:43;2614:104:23;;;:::i;4298:198:16:-;;;;;;:::i;:::-;;:::i;3040:272::-;;;:::i;5583:117::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5674:19:16;;;5648:7;5674:19;;;:10;:19;;;;;;;;5583:117;;;;-1:-1:-1;;;;;2726:32:43;;;2708:51;;2696:2;2681:18;5583:117:16;2562:203:43;5782:138:16;;;;;;:::i;:::-;;:::i;3237:126:24:-;;;;;;:::i;:::-;;:::i;:::-;;;2944:10:43;2932:23;;;2914:42;;2902:2;2887:18;3237:126:24;2770:192:43;2933:116:21;;;;;;:::i;:::-;-1:-1:-1;;;;;3024:18:21;2998:7;3024:18;;;;;;;;;;;;2933:116;1134:424:42;;;;;;:::i;:::-;;:::i;1961:134::-;;;;;;:::i;:::-;;:::i;5228:557:35:-;;;:::i;:::-;;;;;;;;;;;;;:::i;5132:175:16:-;;;;;;:::i;:::-;;:::i;2789:96::-;;;:::i;:::-;;;4735:14:43;4723:27;;;4705:46;;4693:2;4678:18;2789:96:16;4561:196:43;1962:93:21;;;:::i;3778:135:16:-;;;;;;:::i;:::-;;:::i;3244:178:21:-;;;;;;:::i;:::-;;:::i;5998:554:16:-;;;;;;:::i;:::-;;:::i;935:16:42:-;;;;;-1:-1:-1;;;;;935:16:42;;;1668:672:23;;;;;;:::i;:::-;;:::i;3455:140:21:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3561:18:21;;;3535:7;3561:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3455:140;3440:163:24;;;;;;:::i;:::-;;:::i;:::-;;;;7548:13:43;;7563:14;7544:34;7526:53;;7639:4;7627:17;;;7621:24;-1:-1:-1;;;;;7617:50:43;7595:20;;;7588:80;;;;7499:18;3440:163:24;7316:358:43;1760:89:21;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;735:10:28;4029:31:21;735:10:28;4045:7:21;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;;:::o;4680:244::-;4767:4;735:10:28;4823:37:21;4839:4;735:10:28;4854:5:21;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;-1:-1:-1;4913:4:21;;4680:244;-1:-1:-1;;;;4680:244:21:o;1564:243:42:-;1651:10;1643:19;;;;:7;:19;;;;;;1624:15;:38;;1616:63;;;;-1:-1:-1;;;1616:63:42;;8266:2:43;1616:63:42;;;8248:21:43;8305:2;8285:18;;;8278:30;-1:-1:-1;;;8324:18:43;;;8317:42;8376:18;;1616:63:42;;;;;;;;;1689:25;1695:10;1707:6;1689:5;:25::i;:::-;1724:4;;-1:-1:-1;;;;;1724:4:42;:13;1738:10;1765:3;1750:12;:6;1759:3;1750:12;:::i;:::-;:18;;;;:::i;:::-;1724:45;;-1:-1:-1;;;;;;1724:45:42;;;;;;;-1:-1:-1;;;;;9256:32:43;;;1724:45:42;;;9238:51:43;9305:18;;;9298:34;9211:18;;1724:45:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1564:243;:::o;2614:104:23:-;2665:7;2691:20;:18;:20::i;:::-;2684:27;;2614:104;:::o;4298:198:16:-;4385:7;4411:78;4459:29;4478:9;4459:18;:29::i;:::-;-1:-1:-1;;;;;4411:29:16;;;;;;:20;:29;;;;;;:47;:78::i;:::-;-1:-1:-1;;;;;4404:85:16;;4298:198;-1:-1:-1;;;4298:198:16:o;3040:272::-;3091:13;3180:18;:16;:18::i;:::-;3169:29;;:7;:5;:7::i;:::-;:29;;;3165:93;;3221:26;;-1:-1:-1;;;3221:26:16;;;;;;;;;;;3165:93;-1:-1:-1;3267:38:16;;;;;;;;;;;;;;;;;;3040:272::o;5782:138::-;735:10:28;5884:29:16;735:10:28;5903:9:16;5884;:29::i;3237:126:24:-;3307:6;3332:24;3348:7;3332:15;:24::i;1134:424:42:-;1226:1;1212:10;:15;;:35;;;;;1245:2;1231:10;:16;;1212:35;1204:60;;;;-1:-1:-1;;;1204:60:42;;9827:2:43;1204:60:42;;;9809:21:43;9866:2;9846:18;;;9839:30;-1:-1:-1;;;9885:18:43;;;9878:42;9937:18;;1204:60:42;9625:336:43;1204:60:42;1274:4;;:52;;-1:-1:-1;;;1274:52:42;;1292:10;1274:52;;;10168:51:43;1312:4:42;10235:18:43;;;10228:60;10304:18;;;10297:34;;;-1:-1:-1;;;;;1274:4:42;;;;:17;;10141:18:43;;1274:52:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1387:16:42;1441:3;1422:15;:10;1435:2;1422:15;:::i;:::-;1416:21;;:3;:21;:::i;:::-;1406:32;;:6;:32;:::i;:::-;:38;;;;:::i;:::-;1387:57;;1454:27;1460:10;1472:8;1454:5;:27::i;:::-;1531:20;:10;1544:7;1531:20;:::i;:::-;1513:38;;:15;:38;:::i;:::-;1499:10;1491:19;;;;:7;:19;;;;;:60;-1:-1:-1;;;1134:424:42:o;1961:134::-;2043:7;2069:19;2082:5;2069:12;:19::i;5228:557:35:-;5326:13;5353:18;5385:21;5420:15;5449:25;5488:12;5514:27;5617:13;:11;:13::i;:::-;5644:16;:14;:16::i;:::-;5752;;;5736:1;5752:16;;;;;;;;;-1:-1:-1;;;5566:212:35;;;-1:-1:-1;5566:212:35;;-1:-1:-1;5674:13:35;;-1:-1:-1;5709:4:35;;-1:-1:-1;5736:1:35;-1:-1:-1;5752:16:35;-1:-1:-1;5566:212:35;-1:-1:-1;5228:557:35:o;5132:175:16:-;5208:7;5234:66;5270:29;5289:9;5270:18;:29::i;:::-;5234:17;;:35;:66::i;:::-;-1:-1:-1;;;;;5227:73:16;;5132:175;-1:-1:-1;;5132:175:16:o;2789:96::-;2835:6;2860:18;:16;:18::i;1962:93:21:-;2009:13;2041:7;2034:14;;;;;:::i;3778:135:16:-;-1:-1:-1;;;;;3868:29:16;;3842:7;3868:29;;;:20;:29;;;;;:38;;:36;:38::i;3244:178:21:-;3313:4;735:10:28;3367:27:21;735:10:28;3384:2:21;3388:5;3367:9;:27::i;5998:554:16:-;6203:6;6185:15;:24;6181:91;;;6232:29;;-1:-1:-1;;;6232:29:16;;;;;1354:25:43;;;1327:18;;6232:29:16;1208:177:43;6181:91:16;6352:57;;;2063:71;6352:57;;;10835:25:43;-1:-1:-1;;;;;10896:32:43;;10876:18;;;10869:60;;;;10945:18;;;10938:34;;;10988:18;;;10981:34;;;6281:14:16;;6298:168;;6325:86;;10807:19:43;;6352:57:16;;;;;;;;;;;;6342:68;;;;;;6325:16;:86::i;:::-;6425:1;6440;6455;6298:13;:168::i;:::-;6281:185;;6476:31;6493:6;6501:5;6476:16;:31::i;:::-;6517:28;6527:6;6535:9;6517;:28::i;:::-;6171:381;5998:554;;;;;;:::o;1668:672:23:-;1889:8;1871:15;:26;1867:97;;;1920:33;;-1:-1:-1;;;1920:33:23;;;;;1354:25:43;;;1327:18;;1920:33:23;1208:177:43;1867:97:23;1974:18;1024:95;2033:5;2040:7;2049:5;2056:16;2066:5;-1:-1:-1;;;;;1121:14:29;819:7;1121:14;;;:7;:14;;;;;:16;;;;;;;;;759:395;2056:16:23;2005:78;;;;;;11313:25:43;;;;-1:-1:-1;;;;;11374:32:43;;;11354:18;;;11347:60;11443:32;;;;11423:18;;;11416:60;11492:18;;;11485:34;11535:19;;;11528:35;11579:19;;;11572:35;;;11285:19;;2005:78:23;;;;;;;;;;;;1995:89;;;;;;1974:110;;2095:12;2110:28;2127:10;2110:16;:28::i;:::-;2095:43;;2149:14;2166:28;2180:4;2186:1;2189;2192;2166:13;:28::i;:::-;2149:45;;2218:5;-1:-1:-1;;;;;2208:15:23;:6;-1:-1:-1;;;;;2208:15:23;;2204:88;;2246:35;;-1:-1:-1;;;2246:35:23;;-1:-1:-1;;;;;11810:32:43;;;2246:35:23;;;11792:51:43;11879:32;;11859:18;;;11852:60;11765:18;;2246:35:23;11618:300:43;2204:88:23;2302:31;2311:5;2318:7;2327:5;2302:8;:31::i;:::-;1857:483;;;1668:672;;;;;;;:::o;3440:163:24:-;-1:-1:-1;;;;;;;;;;;;;;;;;3570:26:24;3583:7;3592:3;3570:12;:26::i;:::-;3563:33;3440:163;-1:-1:-1;;;3440:163:24:o;8630:128:21:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;-1:-1:-1;;;;;3561:18:21;;;10420:24;3561:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10486:36:21;;10482:309;;;10561:5;10542:16;:24;10538:130;;;10593:60;;-1:-1:-1;;;10593:60:21;;-1:-1:-1;;;;;12143:32:43;;10593:60:21;;;12125:51:43;12192:18;;;12185:34;;;12235:18;;;12228:34;;;12098:18;;10593:60:21;11923:345:43;10538:130:21;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10410:387;10321:476;;;:::o;5297:300::-;-1:-1:-1;;;;;5380:18:21;;5376:86;;5421:30;;-1:-1:-1;;;5421:30:21;;5448:1;5421:30;;;2708:51:43;2681:18;;5421:30:21;2562:203:43;5376:86:21;-1:-1:-1;;;;;5475:16:21;;5471:86;;5514:32;;-1:-1:-1;;;5514:32:21;;5543:1;5514:32;;;2708:51:43;2681:18;;5514:32:21;2562:203:43;5471:86:21;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;7888:206::-;-1:-1:-1;;;;;7958:21:21;;7954:89;;8002:30;;-1:-1:-1;;;8002:30:21;;8029:1;8002:30;;;2708:51:43;2681:18;;8002:30:21;2562:203:43;7954:89:21;8052:35;8060:7;8077:1;8081:5;8052:7;:35::i;3945:262:35:-;3998:7;4029:4;-1:-1:-1;;;;;4038:11:35;4021:28;;:63;;;;;4070:14;4053:13;:31;4021:63;4017:184;;;-1:-1:-1;4107:22:35;;3945:262::o;4017:184::-;4167:23;4304:80;;;2079:95;4304:80;;;12937:25:43;4326:11:35;12978:18:43;;;12971:34;;;;4339:14:35;13021:18:43;;;13014:34;4355:13:35;13064:18:43;;;13057:34;4378:4:35;13107:19:43;;;13100:61;4268:7:35;;12909:19:43;;4304:80:35;;;;;;;;;;;;4294:91;;;;;;4287:98;;4213:179;;3415:273:16;3485:6;3503:23;3529:7;:5;:7::i;:::-;3503:33;;3563:16;3550:29;;:9;:29;3546:90;;3588:48;;-1:-1:-1;;;3588:48:16;;;;;12445:25:43;;;12518:14;12506:27;;12486:18;;;12479:55;12418:18;;3588:48:16;12273:267:43;3546:90:16;3653:28;3671:9;3653:17;:28::i;16485:606:40:-;16603:24;;16570:7;;;16603:24;16702:1;16696:7;;16692:234;;;16719:11;16739:14;16749:3;16739:9;:14::i;:::-;16733:20;;:3;:20;:::i;:::-;21301:28;21364:23;;;21435:4;21419:21;;16719:34;;-1:-1:-1;21415:31:40;;16777:42;;;;;16771:48;;;;16767:149;;;16846:3;16839:10;;16767:149;;;16894:7;:3;16900:1;16894:7;:::i;:::-;16888:13;;16767:149;16705:221;16692:234;16936:11;16950:53;16969:4;16988:3;16993;16998:4;16950:18;:53::i;:::-;16936:67;-1:-1:-1;17021:8:40;;:63;;17036:41;17050:4;17069:7;17075:1;17069:3;:7;:::i;:::-;21301:28;21364:23;;;21435:4;21419:21;;;21415:31;;21191:271;17036:41;:48;-1:-1:-1;;;17036:48:40;;-1:-1:-1;;;;;17036:48:40;17021:63;;;17032:1;17021:63;17014:70;16485:606;-1:-1:-1;;;;;;;16485:606:40:o;931:109:41:-;977:6;1002:31;1020:12;1002:17;:31::i;6730:312:16:-;-1:-1:-1;;;;;5674:19:16;;;6812;5674;;;:10;:19;;;;;;;;6862:31;;;-1:-1:-1;;;;;;6862:31:16;;;;;;;6909:48;;5674:19;;;;;6862:31;5674:19;;;;6909:48;;6812:19;6909:48;6967:68;6986:11;6999:9;7010:24;7026:7;7010:15;:24::i;:::-;6967:18;:68::i;8625:162::-;-1:-1:-1;;;;;8741:29:16;;8698:6;8741:29;;;:20;:29;;;;;18142:24:40;8723:57:16;;:17;:57::i;7362:208:21:-;-1:-1:-1;;;;;7432:21:21;;7428:91;;7476:32;;-1:-1:-1;;;7476:32:21;;7505:1;7476:32;;;2708:51:43;2681:18;;7476:32:21;2562:203:43;7428:91:21;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;2379:143:23:-;-1:-1:-1;;;;;624:14:29;;2470:7:23;624:14:29;;;:7;:14;;;;;;2496:19:23;538:107:29;6105:126:35;6151:13;6183:41;:5;6210:13;6183:26;:41::i;6557:135::-;6606:13;6638:47;:8;6668:16;6638:29;:47::i;17211:206:40:-;17306:24;;17273:7;;17347:8;;:63;;17362:41;17376:4;17395:7;17401:1;17395:3;:7;:::i;17362:41::-;:48;-1:-1:-1;;;17362:48:40;;-1:-1:-1;;;;;17362:48:40;17347:63;;;17358:1;17340:70;17211:206;-1:-1:-1;;;17211:206:40:o;5017:176:35:-;5094:7;5120:66;5153:20;:18;:20::i;:::-;5175:10;4049:4:36;4043:11;-1:-1:-1;;;4067:23:36;;4119:4;4110:14;;4103:39;;;;4171:4;4162:14;;4155:34;4227:4;4212:20;;;3874:374;8826:260:34;8911:7;8931:17;8950:18;8970:16;8990:25;9001:4;9007:1;9010;9013;8990:10;:25::i;:::-;8930:85;;;;;;9025:28;9037:5;9044:8;9025:11;:28::i;:::-;-1:-1:-1;9070:9:34;;8826:260;-1:-1:-1;;;;;;8826:260:34:o;1265:222:29:-;-1:-1:-1;;;;;1121:14:29;;1348:15;1121:14;;;:7;:14;;;;;:16;;;;;;;;1396;;;1392:89;;1435:35;;-1:-1:-1;;;1435:35:29;;-1:-1:-1;;;;;9256:32:43;;1435:35:29;;;9238:51:43;9305:18;;;9298:34;;;9211:18;;1435:35:29;9064:274:43;8864:199:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;9019:29:16;;;;;;:20;:29;;;;;:37;;9052:3;9019:32;:37::i;9607:432:21:-;-1:-1:-1;;;;;9719:19:21;;9715:89;;9761:32;;-1:-1:-1;;;9761:32:21;;9790:1;9761:32;;;2708:51:43;2681:18;;9761:32:21;2562:203:43;9715:89:21;-1:-1:-1;;;;;9817:21:21;;9813:90;;9861:31;;-1:-1:-1;;;9861:31:21;;9889:1;9861:31;;;2708:51:43;2681:18;;9861:31:21;2562:203:43;9813:90:21;-1:-1:-1;;;;;9912:18:21;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;9957:76;;;;10007:7;-1:-1:-1;;;;;9991:31:21;10000:5;-1:-1:-1;;;;;9991:31:21;;10016:5;9991:31;;;;1354:25:43;;1342:2;1327:18;;1208:177;9991:31:21;;;;;;;;9607:432;;;;:::o;1813:142:42:-;1918:30;1932:4;1938:2;1942:5;1918:13;:30::i;14296:213:38:-;14352:6;14382:16;14374:24;;14370:103;;;14421:41;;-1:-1:-1;;;14421:41:38;;14452:2;14421:41;;;13353:36:43;13405:18;;;13398:34;;;13326:18;;14421:41:38;13172:266:43;14370:103:38;-1:-1:-1;14496:5:38;14296:213::o;20583:5181:37:-;20631:7;20749:1;20744;:6;20740:53;;-1:-1:-1;20777:1:37;20583:5181::o;20740:53::-;21733:1;21761;-1:-1:-1;;;21781:16:37;;21777:92;;21824:3;21817:10;;;;;21852:2;21845:9;21777:92;21893:7;21886:2;:15;21882:90;;21928:2;21921:9;;;;;21955:2;21948:9;21882:90;21996:7;21989:2;:15;21985:90;;22031:2;22024:9;;;;;22058:2;22051:9;21985:90;22099:7;22092:2;:15;22088:89;;22134:2;22127:9;;;;;22161:1;22154:8;22088:89;22201:6;22194:2;:14;22190:87;;22235:1;22228:8;;;;;22261:1;22254:8;22190:87;22301:6;22294:2;:14;22290:87;;22335:1;22328:8;;;;;22361:1;22354:8;22290:87;22401:6;22394:2;:14;22390:61;;22435:1;22428:8;22390:61;22877:1;:6;22888:1;22876:13;;;;;24787:1;22876:13;24787:6;;;;:::i;:::-;;24782:2;:11;24781:18;;24776:23;;24907:1;24900:2;24896:1;:6;;;;;:::i;:::-;;24891:2;:11;24890:18;;24885:23;;25018:1;25011:2;25007:1;:6;;;;;:::i;:::-;;25002:2;:11;25001:18;;24996:23;;25127:1;25120:2;25116:1;:6;;;;;:::i;:::-;;25111:2;:11;25110:18;;25105:23;;25237:1;25230:2;25226:1;:6;;;;;:::i;:::-;;25221:2;:11;25220:18;;25215:23;;25347:1;25340:2;25336:1;:6;;;;;:::i;:::-;;25331:2;:11;25330:18;;25325:23;;25719:28;25744:2;25740:1;:6;;;;;:::i;:::-;;25735:11;;;34795:145:38;25719:28:37;25714:33;;;20583:5181;-1:-1:-1;;;20583:5181:37:o;19831:433:40:-;19988:7;20007:230;20020:4;20014:3;:10;20007:230;;;20040:11;20054:23;20067:3;20072:4;20054:12;:23::i;:::-;21301:28;21364:23;;;21435:4;21419:21;;20040:37;;-1:-1:-1;20095:35:40;;;;21415:31;;20095:29;;;:35;20091:136;;;20157:3;20150:10;;20091:136;;;20205:7;:3;20211:1;20205:7;:::i;:::-;20199:13;;20091:136;20026:211;20007:230;;;-1:-1:-1;20253:4:40;19831:433;-1:-1:-1;;;19831:433:40:o;3029:133:24:-;-1:-1:-1;;;;;3024:18:21;;3111:7:24;3024:18:21;;;;;;;;;;;3137::24;2933:116:21;7761:789:16;7870:2;-1:-1:-1;;;;;7862:10:16;:4;-1:-1:-1;;;;;7862:10:16;;;:24;;;;;7885:1;7876:6;:10;7862:24;7858:686;;;-1:-1:-1;;;;;7906:18:16;;;7902:315;;-1:-1:-1;;;;;8010:26:16;;7945:16;8010:26;;;:20;:26;;;;;7945:16;;7983:150;;8058:9;8089:26;8108:6;8089:18;:26::i;:::-;7983:5;:150::i;:::-;-1:-1:-1;;;;;7944:189:16;;;-1:-1:-1;;;;;7944:189:16;;;8177:4;-1:-1:-1;;;;;8156:46:16;;8183:8;8193;8156:46;;;;;;13617:25:43;;;13673:2;13658:18;;13651:34;13605:2;13590:18;;13443:248;8156:46:16;;;;;;;;7926:291;;7902:315;-1:-1:-1;;;;;8234:16:16;;;8230:304;;-1:-1:-1;;;;;8336:24:16;;8271:16;8336:24;;;:20;:24;;;;;8271:16;;8309:143;;8382:4;8408:26;8427:6;8408:18;:26::i;8309:143::-;-1:-1:-1;;;;;8270:182:16;;;-1:-1:-1;;;;;8270:182:16;;;8496:2;-1:-1:-1;;;;;8475:44:16;;8500:8;8510;8475:44;;;;;;13617:25:43;;;13673:2;13658:18;;13651:34;13605:2;13590:18;;13443:248;8475:44:16;;;;;;;;8252:282;;7761:789;;;:::o;15296:213:38:-;15352:6;15382:16;15374:24;;15370:103;;;15421:41;;-1:-1:-1;;;15421:41:38;;15452:2;15421:41;;;13353:36:43;13405:18;;;13398:34;;;13326:18;;15421:41:38;13172:266:43;3376:267:31;3470:13;1390:66;3499:46;;3495:142;;3568:15;3577:5;3568:8;:15::i;:::-;3561:22;;;;3495:142;3621:5;3614:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7142:1551:34;7268:17;;;8222:66;8209:79;;8205:164;;;-1:-1:-1;8320:1:34;;-1:-1:-1;8324:30:34;;-1:-1:-1;8356:1:34;8304:54;;8205:164;8480:24;;;8463:14;8480:24;;;;;;;;;14194:25:43;;;14267:4;14255:17;;14235:18;;;14228:45;;;;14289:18;;;14282:34;;;14332:18;;;14325:34;;;8480:24:34;;14166:19:43;;8480:24:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8480:24:34;;-1:-1:-1;;8480:24:34;;;-1:-1:-1;;;;;;;8518:20:34;;8514:113;;-1:-1:-1;8570:1:34;;-1:-1:-1;8574:29:34;;-1:-1:-1;8570:1:34;;-1:-1:-1;8554:62:34;;8514:113;8645:6;-1:-1:-1;8653:20:34;;-1:-1:-1;8653:20:34;;-1:-1:-1;7142:1551:34;;;;;;;;;:::o;11630:532::-;11725:20;11716:5;:29;;;;;;;;:::i;:::-;;11712:444;;11630:532;;:::o;11712:444::-;11821:29;11812:5;:38;;;;;;;;:::i;:::-;;11808:348;;11873:23;;-1:-1:-1;;;11873:23:34;;;;;;;;;;;11808:348;11926:35;11917:5;:44;;;;;;;;:::i;:::-;;11913:243;;11984:46;;-1:-1:-1;;;11984:46:34;;;;;1354:25:43;;;1327:18;;11984:46:34;1208:177:43;11913:243:34;12060:30;12051:5;:39;;;;;;;;:::i;:::-;;12047:109;;12113:32;;-1:-1:-1;;;12113:32:34;;;;;1354:25:43;;;1327:18;;12113:32:34;1208:177:43;18245:138:40;-1:-1:-1;;;;;;;;;;;;;;;;;18354:4:40;:17;;18372:3;18354:22;;;;;;;;;;:::i;:::-;;;;;;;;;;18347:29;;;;;;;;;18354:22;;18347:29;;;;;;-1:-1:-1;;;18347:29:40;;-1:-1:-1;;;;;18347:29:40;;;;;;;;;18245:138;-1:-1:-1;;;18245:138:40:o;2356:413:24:-;2450:30;2464:4;2470:2;2474:5;2450:13;:30::i;:::-;-1:-1:-1;;;;;2494:18:24;;2490:226;;2528:14;2545:13;2881:12:21;;;2803:97;2545:13:24;2528:30;-1:-1:-1;;;;;;2616:12:24;;;2612:94;;;2655:36;;-1:-1:-1;;;2655:36:24;;;;;13617:25:43;;;13658:18;;;13651:34;;;13590:18;;2655:36:24;13443:248:43;2612:94:24;2514:202;;2490:226;2725:37;2746:4;2752:2;2756:5;2725:20;:37::i;5857:153:37:-;5919:7;5992:11;6002:1;5993:5;;;5992:11;:::i;:::-;5982:21;;5983:5;;;5982:21;:::i;9450:101:16:-;9513:7;9539:5;9543:1;9539;:5;:::i;4174:218:38:-;4231:7;-1:-1:-1;;;;;4254:25:38;;4250:105;;;4302:42;;-1:-1:-1;;;4302:42:38;;4333:3;4302:42;;;13353:36:43;13405:18;;;13398:34;;;13326:18;;4302:42:38;13172:266:43;9069:273:16;9236:16;9254;9289:46;9300:7;:5;:7::i;:::-;9309:25;9312:14;:5;:12;:14::i;:::-;9328:5;9309:2;:25;;:::i;:::-;9289:5;;:46;:10;:46::i;:::-;9282:53;;;;9069:273;;;;;;;:::o;9348:96::-;9406:7;9432:5;9436:1;9432;:5;:::i;2080:380:31:-;2139:13;2164:11;2178:16;2189:4;2178:10;:16::i;:::-;2302;;;2313:4;2302:16;;;;;;;;;2164:30;;-1:-1:-1;2282:17:31;;2302:16;;;;;;;;;-1:-1:-1;;;2367:16:31;;;-1:-1:-1;2412:4:31;2403:14;;2396:28;;;;-1:-1:-1;2367:16:31;2080:380::o;5912:1107:21:-;-1:-1:-1;;;;;6001:18:21;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;5997:540:21;;-1:-1:-1;5997:540:21;;-1:-1:-1;;;;;6211:15:21;;6189:19;6211:15;;;;;;;;;;;6244:19;;;6240:115;;;6290:50;;-1:-1:-1;;;6290:50:21;;-1:-1:-1;;;;;12143:32:43;;6290:50:21;;;12125:51:43;12192:18;;;12185:34;;;12235:18;;;12228:34;;;12098:18;;6290:50:21;11923:345:43;6240:115:21;-1:-1:-1;;;;;6475:15:21;;:9;:15;;;;;;;;;;6493:19;;;;6475:37;;5997:540;-1:-1:-1;;;;;6551:16:21;;6547:425;;6714:12;:21;;;;;;;6547:425;;;-1:-1:-1;;;;;6925:13:21;;:9;:13;;;;;;;;;;:22;;;;;;6547:425;7002:2;-1:-1:-1;;;;;6987:25:21;6996:4;-1:-1:-1;;;;;6987:25:21;;7006:5;6987:25;;;;1354::43;;1342:2;1327:18;;1208:177;6987:25:21;;;;;;;;5912:1107;;;:::o;7276:399:16:-;-1:-1:-1;;;;;7379:18:16;;7375:107;;7413:58;7419:17;7438:4;7444:26;7463:6;7444:18;:26::i;7413:58::-;;;7375:107;-1:-1:-1;;;;;7495:16:16;;7491:110;;7527:63;7533:17;7552:9;7563:26;7582:6;7563:18;:26::i;7527:63::-;;;7491:110;-1:-1:-1;;;;;5674:19:16;;;5648:7;5674:19;;;:10;:19;;;;;;;;;;;;;;;7610:58;;5674:19;;;;;7661:6;7610:18;:58::i;15046:210:40:-;15158:16;;15211:38;15219:4;15238:3;15243:5;15211:7;:38::i;2532:247:31:-;2593:7;2665:4;2629:40;;2692:4;2683:13;;2679:71;;;2719:20;;-1:-1:-1;;;2719:20:31;;;;;;;;;;;18559:922:40;18740:11;;18680:16;;;;18766:7;;18762:713;;18789:26;18818:28;18832:4;18838:7;18844:1;18838:3;:7;:::i;18818:28::-;18877:9;;;;-1:-1:-1;18877:9:40;;;;;-1:-1:-1;;;18920:11:40;;-1:-1:-1;;;;;18920:11:40;;19005:13;;;;19001:89;;;19045:30;;-1:-1:-1;;;19045:30:40;;;;;;;;;;;19001:89;19164:3;19153:14;;:7;:14;;;19149:163;;19187:19;;;;-1:-1:-1;;;;;;;;19187:19:40;;;;;;19149:163;;;19255:41;;;;;;;;;;;;;;;-1:-1:-1;;;;;19255:41:40;;;;;;;;;;19245:52;;;;;;;-1:-1:-1;19245:52:40;;;;;;;;;;;;;;-1:-1:-1;;;19245:52:40;;;;;;;;;;19149:163;19333:9;-1:-1:-1;19344:5:40;;-1:-1:-1;19325:25:40;;-1:-1:-1;;;19325:25:40;18762:713;-1:-1:-1;;19391:41:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;19391:41:40;;;;;;;;;;19381:52;;;;;;;-1:-1:-1;19381:52:40;;;;;;;;;;;;;-1:-1:-1;;;19381:52:40;;;;;;;;;;;;-1:-1:-1;;19425:5:40;19447:17;;14:289:43;56:3;94:5;88:12;121:6;116:3;109:19;177:6;170:4;163:5;159:16;152:4;147:3;143:14;137:47;229:1;222:4;213:6;208:3;204:16;200:27;193:38;292:4;285:2;281:7;276:2;268:6;264:15;260:29;255:3;251:39;247:50;240:57;;;14:289;;;;:::o;308:220::-;457:2;446:9;439:21;420:4;477:45;518:2;507:9;503:18;495:6;477:45;:::i;533:173::-;601:20;;-1:-1:-1;;;;;650:31:43;;640:42;;630:70;;696:1;693;686:12;630:70;533:173;;;:::o;711:300::-;779:6;787;840:2;828:9;819:7;815:23;811:32;808:52;;;856:1;853;846:12;808:52;879:29;898:9;879:29;:::i;:::-;869:39;977:2;962:18;;;;949:32;;-1:-1:-1;;;711:300:43:o;1390:186::-;1449:6;1502:2;1490:9;1481:7;1477:23;1473:32;1470:52;;;1518:1;1515;1508:12;1470:52;1541:29;1560:9;1541:29;:::i;1581:374::-;1658:6;1666;1674;1727:2;1715:9;1706:7;1702:23;1698:32;1695:52;;;1743:1;1740;1733:12;1695:52;1766:29;1785:9;1766:29;:::i;:::-;1756:39;;1814:38;1848:2;1837:9;1833:18;1814:38;:::i;:::-;1581:374;;1804:48;;-1:-1:-1;;;1921:2:43;1906:18;;;;1893:32;;1581:374::o;1960:226::-;2019:6;2072:2;2060:9;2051:7;2047:23;2043:32;2040:52;;;2088:1;2085;2078:12;2040:52;-1:-1:-1;2133:23:43;;1960:226;-1:-1:-1;1960:226:43:o;2967:346::-;3035:6;3043;3096:2;3084:9;3075:7;3071:23;3067:32;3064:52;;;3112:1;3109;3102:12;3064:52;-1:-1:-1;;3157:23:43;;;3277:2;3262:18;;;3249:32;;-1:-1:-1;2967:346:43:o;3318:1238::-;3724:3;3719;3715:13;3707:6;3703:26;3692:9;3685:45;3766:3;3761:2;3750:9;3746:18;3739:31;3666:4;3793:46;3834:3;3823:9;3819:19;3811:6;3793:46;:::i;:::-;3887:9;3879:6;3875:22;3870:2;3859:9;3855:18;3848:50;3921:33;3947:6;3939;3921:33;:::i;:::-;3985:2;3970:18;;3963:34;;;-1:-1:-1;;;;;4034:32:43;;4028:3;4013:19;;4006:61;4054:3;4083:19;;4076:35;;;4148:22;;;4142:3;4127:19;;4120:51;4220:13;;4242:22;;;4292:2;4318:15;;;;-1:-1:-1;4280:15:43;;;;-1:-1:-1;4361:169:43;4375:6;4372:1;4369:13;4361:169;;;4436:13;;4424:26;;4479:2;4505:15;;;;4470:12;;;;4397:1;4390:9;4361:169;;;-1:-1:-1;4547:3:43;;3318:1238;-1:-1:-1;;;;;;;;;;;3318:1238:43:o;4762:156::-;4828:20;;4888:4;4877:16;;4867:27;;4857:55;;4908:1;4905;4898:12;4923:733;5025:6;5033;5041;5049;5057;5065;5118:3;5106:9;5097:7;5093:23;5089:33;5086:53;;;5135:1;5132;5125:12;5086:53;5158:29;5177:9;5158:29;:::i;:::-;5148:39;-1:-1:-1;5256:2:43;5241:18;;5228:32;;-1:-1:-1;5357:2:43;5342:18;;5329:32;;-1:-1:-1;5406:36:43;5438:2;5423:18;;5406:36;:::i;:::-;4923:733;;;;-1:-1:-1;4923:733:43;;5515:3;5500:19;;5487:33;;5619:3;5604:19;;;5591:33;;-1:-1:-1;4923:733:43;-1:-1:-1;;4923:733:43:o;5883:808::-;5994:6;6002;6010;6018;6026;6034;6042;6095:3;6083:9;6074:7;6070:23;6066:33;6063:53;;;6112:1;6109;6102:12;6063:53;6135:29;6154:9;6135:29;:::i;:::-;6125:39;;6183:38;6217:2;6206:9;6202:18;6183:38;:::i;:::-;6173:48;-1:-1:-1;6290:2:43;6275:18;;6262:32;;-1:-1:-1;6391:2:43;6376:18;;6363:32;;-1:-1:-1;6440:37:43;6472:3;6457:19;;6440:37;:::i;:::-;5883:808;;;;-1:-1:-1;5883:808:43;;;;6430:47;6550:3;6535:19;;6522:33;;-1:-1:-1;6654:3:43;6639:19;;;6626:33;;5883:808;-1:-1:-1;;5883:808:43:o;6696:260::-;6764:6;6772;6825:2;6813:9;6804:7;6800:23;6796:32;6793:52;;;6841:1;6838;6831:12;6793:52;6864:29;6883:9;6864:29;:::i;:::-;6854:39;;6912:38;6946:2;6935:9;6931:18;6912:38;:::i;:::-;6902:48;;6696:260;;;;;:::o;6961:350::-;7028:6;7036;7089:2;7077:9;7068:7;7064:23;7060:32;7057:52;;;7105:1;7102;7095:12;7057:52;7128:29;7147:9;7128:29;:::i;:::-;7118:39;;7207:2;7196:9;7192:18;7179:32;7251:10;7244:5;7240:22;7233:5;7230:33;7220:61;;7277:1;7274;7267:12;7220:61;7300:5;7290:15;;;6961:350;;;;;:::o;7679:380::-;7758:1;7754:12;;;;7801;;;7822:61;;7876:4;7868:6;7864:17;7854:27;;7822:61;7929:2;7921:6;7918:14;7898:18;7895:38;7892:161;;7975:10;7970:3;7966:20;7963:1;7956:31;8010:4;8007:1;8000:15;8038:4;8035:1;8028:15;7892:161;;7679:380;;;:::o;8405:127::-;8466:10;8461:3;8457:20;8454:1;8447:31;8497:4;8494:1;8487:15;8521:4;8518:1;8511:15;8537:168;8610:9;;;8641;;8658:15;;;8652:22;;8638:37;8628:71;;8679:18;;:::i;8710:127::-;8771:10;8766:3;8762:20;8759:1;8752:31;8802:4;8799:1;8792:15;8826:4;8823:1;8816:15;8842:217;8882:1;8908;8898:132;;8952:10;8947:3;8943:20;8940:1;8933:31;8987:4;8984:1;8977:15;9015:4;9012:1;9005:15;8898:132;-1:-1:-1;9044:9:43;;8842:217::o;9343:277::-;9410:6;9463:2;9451:9;9442:7;9438:23;9434:32;9431:52;;;9479:1;9476;9469:12;9431:52;9511:9;9505:16;9564:5;9557:13;9550:21;9543:5;9540:32;9530:60;;9586:1;9583;9576:12;10342:125;10407:9;;;10428:10;;;10425:36;;;10441:18;;:::i;12545:128::-;12612:9;;;12633:11;;;12630:37;;;12647:18;;:::i;14370:127::-;14431:10;14426:3;14422:20;14419:1;14412:31;14462:4;14459:1;14452:15;14486:4;14483:1;14476:15;14502:127;14563:10;14558:3;14554:20;14551:1;14544:31;14594:4;14591:1;14584:15;14618:4;14615:1;14608:15;14634:198;-1:-1:-1;;;;;14734:27:43;;;14705;;;14701:61;;14774:29;;14771:55;;;14806:18;;:::i;15109:195::-;-1:-1:-1;;;;;15178:27:43;;;15207;;;15174:61;;15247:28;;15244:54;;;15278:18;;:::i","linkReferences":{},"immutableReferences":{"40559":[{"start":3186,"length":32}],"40561":[{"start":3144,"length":32}],"40563":[{"start":3102,"length":32}],"40565":[{"start":3267,"length":32}],"40567":[{"start":3307,"length":32}],"40570":[{"start":3885,"length":32}],"40573":[{"start":3930,"length":32}]}},"methodIdentifiers":{"CLOCK_MODE()":"4bf5d7e9","DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asha()":"d2ad9ef3","balanceOf(address)":"70a08231","checkpoints(address,uint32)":"f1127ed8","clock()":"91ddadf4","decimals()":"313ce567","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","eip712Domain()":"84b0196e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0","lockEnd(address)":"23792279","name()":"06fdde03","nonces(address)":"7ecebe00","numCheckpoints(address)":"6fcfff45","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","stake(uint256,uint256)":"7b0472f0","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","unstake(uint256)":"2e17de78"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_asha\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"increasedSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"name\":\"ERC20ExceededSafeSupply\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"clock\",\"type\":\"uint48\"}],\"name\":\"ERC5805FutureLookup\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC6372InconsistentClock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"VotesExpiredSignature\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotes\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CLOCK_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asha\",\"outputs\":[{\"internalType\":\"contract ASHA\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"pos\",\"type\":\"uint32\"}],\"name\":\"checkpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint48\",\"name\":\"_key\",\"type\":\"uint48\"},{\"internalType\":\"uint208\",\"name\":\"_value\",\"type\":\"uint208\"}],\"internalType\":\"struct Checkpoints.Checkpoint208\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clock\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockMonths\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC20ExceededSafeSupply(uint256,uint256)\":[{\"details\":\"Total supply cap has been exceeded, introducing a risk of votes overflowing.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"ERC5805FutureLookup(uint256,uint48)\":[{\"details\":\"Lookup to future votes is not available.\"}],\"ERC6372InconsistentClock()\":[{\"details\":\"The clock was incorrectly modified.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"VotesExpiredSignature(uint256)\":[{\"details\":\"The signature used has expired.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of voting units.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"CLOCK_MODE()\":{\"details\":\"Machine-readable description of the clock as specified in ERC-6372.\"},\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"checkpoints(address,uint32)\":{\"details\":\"Get the `pos`-th checkpoint for `account`.\"},\"clock()\":{\"details\":\"Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting), in which case {CLOCK_MODE} should be overridden as well to match.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote. Requirements: - `timepoint` must be in the past. If operating using block numbers, the block must be already mined.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. Requirements: - `timepoint` must be in the past. If operating using block numbers, the block must be already mined.\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"numCheckpoints(address)\":{\"details\":\"Get number of checkpoints for `account`.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also applies here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"script/Deploy.s.sol\":\"VeASHA\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x7a4077e7ec41cfa429ac749c6a47c7966f7b14fca4f1e887444ea5bba5b34aa4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://90b5315ec93b390273e5987d1648c65c667a370385eebc7ae0f4c496b7b94da5\",\"dweb:/ipfs/QmQ6fSxvf9t1BF6m8v18mrhh1byrSPcpCovSC5Sn1XZUns\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xf1d63081e75349b88dbedfa4a86c352ea1d836c47f16cb88bd2369a3d4856435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5453095168c381b55f3a4b476a7118e335af7a11ed4f3b84f70e1afec3f73847\",\"dweb:/ipfs/Qmdcf2np9BtqXJ9ogKSTwtAUivQDMu8JJGWd5RDZJ2Adm8\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x8fe4ebe49192e4dd929758bf7766eb3440271f527b1432c63a45c3b749f95480\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2257d39c8f07231c0a88c6b0c71c642fd1f4fcaf02f77cd3cacd0f6daed6dd99\",\"dweb:/ipfs/Qme7fc2RLoW6SkjfyDJeTQBN7WHMvWAwJtzsF3AdetQu6h\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x29e6b935856e69c9130fcf8c6082168954600e57fe36d556fb4856ecc8b5f47a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://37bb6128cb15ab0cddc0b8d45075e4c813f85b808a265b1d5343f2096ae20931\",\"dweb:/ipfs/QmVZDxrMNPPVJpHkwcJW7y5fAY6cE3pYqNQt4rxgPaSfn8\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x3e89e75f6fe9d8280d43ee990ffb6089cca508c779c1d0776aef49658d0775c4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0efde29c751fcd42cde9ee9c90169e6688ded35c950859d92d374ace35a0c688\",\"dweb:/ipfs/QmaHifK2K7shC9sn7oJXC8hYFDQqX5ZfeW1qSieYRkRezh\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x84e4392db5923ba590b6669af53418a9aad8c96bbf50d4622a5f813d29eddaea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0c439c7b953249edeabefa68ed87542e82101c91766fd98b3215599c6d0aec9f\",\"dweb:/ipfs/QmaVPk7riotTVTBjvd3YKGur1wDE1mEq7X1cVdieRm8JR5\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xdf466d4c6aa9da903595262100def9c6d960045b2ada0357edc47953bc5e18d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://889512f1c9468f4d5e0f90f46b849709fd6fedab29b8377f64f6c3ee8373beee\",\"dweb:/ipfs/QmefA385JqnvagxdFDpM3kxnxUtpJvkxkbTr66naQbAko9\"]},\"lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol\":{\"keccak256\":\"0xf50e692fb9cbd847704a620953bc45c9771c139e3ecefb7e9ed3fae67b87768e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32ab1407257dcf3550d9ddd6812da745ae3666c58adc96f245dfbaed1a66659d\",\"dweb:/ipfs/QmTLG5Cz1Y8EkbomUVyfNRaDvJPh8g1DYtsddXS1fYVN1W\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol\":{\"keccak256\":\"0x8fbf3dddff71246ff9ffe21f9f0195a40583c4101c94c747691291f8b9e14ebd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d69db7468e95a56999df81f1c555215b3359483d610dbef17d898ef48801578\",\"dweb:/ipfs/QmSPaSUsHDGqffinNgwajKp8RUdwj3GyW3VqWWNPfwH4b4\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol\":{\"keccak256\":\"0xed0f7f14eb30c80a82855ddc3f7267bb6290546e5847a8ffc33f599ce4bc5eb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63fab00bbb42ce6f132a93d1c1e1cfed5175821521fb8746caa48129787d2435\",\"dweb:/ipfs/QmVMBNhmVW1h35LsaYNyDChfyTwF8M3EW9T1JDFpsXiaQF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol\":{\"keccak256\":\"0x73d9dc25e0edb50767d29665bea0092e29b68776feb39c3f48781e4bab7cdda5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://242e910e44f0569e2cd8f5282556c790f15b2b3e4112290346d72cfbb9fb5e78\",\"dweb:/ipfs/QmYejCe3DRxzXaxcZaW1JNbFDJyhHnYhPSLaVxjE3jBLSC\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol\":{\"keccak256\":\"0xa8eecb7822f96130e5c64b5ac25c9e0394948f05c517d4e3dc8a15033679ee6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c64c0017e3973b4cd34dc39ba225010952c67f0d7193bc4d784719f9f7ef583a\",\"dweb:/ipfs/QmYNenQ2avzBZDk1PMjQuZQMh9CVMuUrK7Rrj8JH1gqPUS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x8140d608316521b1fd71167c3b708ebb8659da070723fc8807609553b296ee33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7bf7db66869ba1e945a0390b85da2f6afc7e42a4735ca918d0d56ac90c50147\",\"dweb:/ipfs/QmRmNyhpBpgzSdQqLtrQCYE7H7eLnVVxh2Yy4YMrySR8AR\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Nonces.sol\":{\"keccak256\":\"0x0082767004fca261c332e9ad100868327a863a88ef724e844857128845ab350f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://132dce9686a54e025eb5ba5d2e48208f847a1ec3e60a3e527766d7bf53fb7f9e\",\"dweb:/ipfs/QmXn1a2nUZMpu2z6S88UoTfMVtY2YNh86iGrzJDYmMkKeZ\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99\",\"dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x36d1750bf1aa5fee9c52adb2f7857ab652daca722fc05dff533b364f67a1139a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e5e7052539b7849d02f3ce25acc1dce29373c11cfae9f0bc918c54b780c549a\",\"dweb:/ipfs/QmRGE32xNkMTo6i4pHHMxjpiu77yPwnTA25SFngw2NXJys\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x360cf86214a764694dae1522a38200b1737fe90e46dcf56a0f89de143071cc20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e393290a46ca6d1fa1addb40709d26e1d250638ab6acdd103b5af21768ebc7b\",\"dweb:/ipfs/QmPwT3tXwQ9NbGtZ99XRq7sr8LCQP8XaCrzw49JdXGn7us\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4\",\"dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6abeed5940e1da7bb329e458db9a1c5c4ea6f86d651b952af99c6bddcd6bbb94\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fe75e9a6b759c5d7fd82fb59bd4f58c672b36f0a69b84f4789b7c7895d3e61c\",\"dweb:/ipfs/QmX28wsir8w5sS3acfJMNHcBwoPsDpqCu7WDkPnUWLMNiZ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c\",\"dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xffca8f1d67bf069a2237a4631c6af36b141f33fb8e894ef58e6a4f72fc098f77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff8f533667f82b8c3ddd46e6bc26f7c7c1eb73890a2136393aab8a0043e09e6\",\"dweb:/ipfs/QmSPHM9fj6VL2V5owMbARubCZKe6d6kho9CVGEcpzkELNL\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"script/Deploy.s.sol\":{\"keccak256\":\"0xbe4ec210c02314015cede7b5b60c017e3d4e182df2c54be1486c8f073481b333\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d5128603149bc22565517467d9ab4e5a6379454bcd636dcfeb9dd32974215\",\"dweb:/ipfs/QmZ3UwQWf2eVQ7ht6znhWM7iQPR3BEbAK5DbRRJQiNppDm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_asha","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"uint256","name":"increasedSupply","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"type":"error","name":"ERC20ExceededSafeSupply"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"},{"internalType":"uint48","name":"clock","type":"uint48"}],"type":"error","name":"ERC5805FutureLookup"},{"inputs":[],"type":"error","name":"ERC6372InconsistentClock"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[{"internalType":"uint256","name":"expiry","type":"uint256"}],"type":"error","name":"VotesExpiredSignature"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"fromDelegate","type":"address","indexed":true},{"internalType":"address","name":"toDelegate","type":"address","indexed":true}],"type":"event","name":"DelegateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegate","type":"address","indexed":true},{"internalType":"uint256","name":"previousVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"newVotes","type":"uint256","indexed":false}],"type":"event","name":"DelegateVotesChanged","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"asha","outputs":[{"internalType":"contract ASHA","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"stateMutability":"view","type":"function","name":"checkpoints","outputs":[{"internalType":"struct Checkpoints.Checkpoint208","name":"","type":"tuple","components":[{"internalType":"uint48","name":"_key","type":"uint48"},{"internalType":"uint208","name":"_value","type":"uint208"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateBySig"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"lockEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lockMonths","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"}],"devdoc":{"kind":"dev","methods":{"CLOCK_MODE()":{"details":"Machine-readable description of the clock as specified in ERC-6372."},"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"checkpoints(address,uint32)":{"details":"Get the `pos`-th checkpoint for `account`."},"clock()":{"details":"Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting), in which case {CLOCK_MODE} should be overridden as well to match."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote. Requirements: - `timepoint` must be in the past. If operating using block numbers, the block must be already mined."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. Requirements: - `timepoint` must be in the past. If operating using block numbers, the block must be already mined."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."},"name()":{"details":"Returns the name of the token."},"numCheckpoints(address)":{"details":"Get number of checkpoints for `account`."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also applies here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"script/Deploy.s.sol":"VeASHA"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Script.sol":{"keccak256":"0x7a4077e7ec41cfa429ac749c6a47c7966f7b14fca4f1e887444ea5bba5b34aa4","urls":["bzz-raw://90b5315ec93b390273e5987d1648c65c667a370385eebc7ae0f4c496b7b94da5","dweb:/ipfs/QmQ6fSxvf9t1BF6m8v18mrhh1byrSPcpCovSC5Sn1XZUns"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0xf1d63081e75349b88dbedfa4a86c352ea1d836c47f16cb88bd2369a3d4856435","urls":["bzz-raw://5453095168c381b55f3a4b476a7118e335af7a11ed4f3b84f70e1afec3f73847","dweb:/ipfs/Qmdcf2np9BtqXJ9ogKSTwtAUivQDMu8JJGWd5RDZJ2Adm8"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x8fe4ebe49192e4dd929758bf7766eb3440271f527b1432c63a45c3b749f95480","urls":["bzz-raw://2257d39c8f07231c0a88c6b0c71c642fd1f4fcaf02f77cd3cacd0f6daed6dd99","dweb:/ipfs/Qme7fc2RLoW6SkjfyDJeTQBN7WHMvWAwJtzsF3AdetQu6h"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x29e6b935856e69c9130fcf8c6082168954600e57fe36d556fb4856ecc8b5f47a","urls":["bzz-raw://37bb6128cb15ab0cddc0b8d45075e4c813f85b808a265b1d5343f2096ae20931","dweb:/ipfs/QmVZDxrMNPPVJpHkwcJW7y5fAY6cE3pYqNQt4rxgPaSfn8"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x3e89e75f6fe9d8280d43ee990ffb6089cca508c779c1d0776aef49658d0775c4","urls":["bzz-raw://0efde29c751fcd42cde9ee9c90169e6688ded35c950859d92d374ace35a0c688","dweb:/ipfs/QmaHifK2K7shC9sn7oJXC8hYFDQqX5ZfeW1qSieYRkRezh"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x84e4392db5923ba590b6669af53418a9aad8c96bbf50d4622a5f813d29eddaea","urls":["bzz-raw://0c439c7b953249edeabefa68ed87542e82101c91766fd98b3215599c6d0aec9f","dweb:/ipfs/QmaVPk7riotTVTBjvd3YKGur1wDE1mEq7X1cVdieRm8JR5"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":{"keccak256":"0xdf466d4c6aa9da903595262100def9c6d960045b2ada0357edc47953bc5e18d6","urls":["bzz-raw://889512f1c9468f4d5e0f90f46b849709fd6fedab29b8377f64f6c3ee8373beee","dweb:/ipfs/QmefA385JqnvagxdFDpM3kxnxUtpJvkxkbTr66naQbAko9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol":{"keccak256":"0xf50e692fb9cbd847704a620953bc45c9771c139e3ecefb7e9ed3fae67b87768e","urls":["bzz-raw://32ab1407257dcf3550d9ddd6812da745ae3666c58adc96f245dfbaed1a66659d","dweb:/ipfs/QmTLG5Cz1Y8EkbomUVyfNRaDvJPh8g1DYtsddXS1fYVN1W"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol":{"keccak256":"0x8fbf3dddff71246ff9ffe21f9f0195a40583c4101c94c747691291f8b9e14ebd","urls":["bzz-raw://8d69db7468e95a56999df81f1c555215b3359483d610dbef17d898ef48801578","dweb:/ipfs/QmSPaSUsHDGqffinNgwajKp8RUdwj3GyW3VqWWNPfwH4b4"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol":{"keccak256":"0xed0f7f14eb30c80a82855ddc3f7267bb6290546e5847a8ffc33f599ce4bc5eb6","urls":["bzz-raw://63fab00bbb42ce6f132a93d1c1e1cfed5175821521fb8746caa48129787d2435","dweb:/ipfs/QmVMBNhmVW1h35LsaYNyDChfyTwF8M3EW9T1JDFpsXiaQF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol":{"keccak256":"0x73d9dc25e0edb50767d29665bea0092e29b68776feb39c3f48781e4bab7cdda5","urls":["bzz-raw://242e910e44f0569e2cd8f5282556c790f15b2b3e4112290346d72cfbb9fb5e78","dweb:/ipfs/QmYejCe3DRxzXaxcZaW1JNbFDJyhHnYhPSLaVxjE3jBLSC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol":{"keccak256":"0xa8eecb7822f96130e5c64b5ac25c9e0394948f05c517d4e3dc8a15033679ee6a","urls":["bzz-raw://c64c0017e3973b4cd34dc39ba225010952c67f0d7193bc4d784719f9f7ef583a","dweb:/ipfs/QmYNenQ2avzBZDk1PMjQuZQMh9CVMuUrK7Rrj8JH1gqPUS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x8140d608316521b1fd71167c3b708ebb8659da070723fc8807609553b296ee33","urls":["bzz-raw://a7bf7db66869ba1e945a0390b85da2f6afc7e42a4735ca918d0d56ac90c50147","dweb:/ipfs/QmRmNyhpBpgzSdQqLtrQCYE7H7eLnVVxh2Yy4YMrySR8AR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Nonces.sol":{"keccak256":"0x0082767004fca261c332e9ad100868327a863a88ef724e844857128845ab350f","urls":["bzz-raw://132dce9686a54e025eb5ba5d2e48208f847a1ec3e60a3e527766d7bf53fb7f9e","dweb:/ipfs/QmXn1a2nUZMpu2z6S88UoTfMVtY2YNh86iGrzJDYmMkKeZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c","urls":["bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99","dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x36d1750bf1aa5fee9c52adb2f7857ab652daca722fc05dff533b364f67a1139a","urls":["bzz-raw://2e5e7052539b7849d02f3ce25acc1dce29373c11cfae9f0bc918c54b780c549a","dweb:/ipfs/QmRGE32xNkMTo6i4pHHMxjpiu77yPwnTA25SFngw2NXJys"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x360cf86214a764694dae1522a38200b1737fe90e46dcf56a0f89de143071cc20","urls":["bzz-raw://2e393290a46ca6d1fa1addb40709d26e1d250638ab6acdd103b5af21768ebc7b","dweb:/ipfs/QmPwT3tXwQ9NbGtZ99XRq7sr8LCQP8XaCrzw49JdXGn7us"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4","urls":["bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4","dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6abeed5940e1da7bb329e458db9a1c5c4ea6f86d651b952af99c6bddcd6bbb94","urls":["bzz-raw://5fe75e9a6b759c5d7fd82fb59bd4f58c672b36f0a69b84f4789b7c7895d3e61c","dweb:/ipfs/QmX28wsir8w5sS3acfJMNHcBwoPsDpqCu7WDkPnUWLMNiZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c","urls":["bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c","dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xffca8f1d67bf069a2237a4631c6af36b141f33fb8e894ef58e6a4f72fc098f77","urls":["bzz-raw://4ff8f533667f82b8c3ddd46e6bc26f7c7c1eb73890a2136393aab8a0043e09e6","dweb:/ipfs/QmSPHM9fj6VL2V5owMbARubCZKe6d6kho9CVGEcpzkELNL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"script/Deploy.s.sol":{"keccak256":"0xbe4ec210c02314015cede7b5b60c017e3d4e182df2c54be1486c8f073481b333","urls":["bzz-raw://f35d5128603149bc22565517467d9ab4e5a6379454bcd636dcfeb9dd32974215","dweb:/ipfs/QmZ3UwQWf2eVQ7ht6znhWM7iQPR3BEbAK5DbRRJQiNppDm"],"license":"MIT"}},"version":1},"id":42} |