0 txs
629k calls
constructor
constructor(address _bEIGEN, string _version)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
allowedFrom
viewfunction allowedFrom(address) view returns (bool)
allowedTo
viewfunction allowedTo(address) view returns (bool)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
bEIGEN
viewfunction bEIGEN() view returns (address)
checkpoints
viewfunction checkpoints(address account, uint32 pos) view returns (tuple)
CLOCK_MODE
purefunction CLOCK_MODE() pure returns (string)
clock
viewfunction clock() view returns (uint48)
decimals
viewfunction decimals() view returns (uint8)
delegates
viewfunction delegates(address account) view returns (address)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
getPastTotalSupply
viewfunction getPastTotalSupply(uint256 timepoint) view returns (uint256)
getPastVotes
viewfunction getPastVotes(address account, uint256 timepoint) view returns (uint256)
getVotes
viewfunction getVotes(address account) view returns (uint256)
mintAllowedAfter
viewfunction mintAllowedAfter(address) view returns (uint256)
mintingAllowance
viewfunction mintingAllowance(address) view returns (uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
numCheckpoints
viewfunction numCheckpoints(address account) view returns (uint32)
owner
viewfunction owner() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
transferRestrictionsDisabledAfter
viewfunction transferRestrictionsDisabledAfter() view returns (uint256)
version
viewfunction version() view returns (string)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
delegate
nonpayablefunction delegate(address delegatee)
delegateBySig
nonpayablefunction delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)
disableTransferRestrictions
nonpayablefunction disableTransferRestrictions()
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address initialOwner, address[] minters, uint256[] mintingAllowances, uint256[] mintAllowedAfters)
mint
nonpayablefunction mint()
multisend
nonpayablefunction multisend(address[] receivers, uint256[] amounts)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
renounceOwnership
nonpayablefunction renounceOwnership()
setAllowedFrom
nonpayablefunction setAllowedFrom(address from, bool isAllowedFrom)
setAllowedTo
nonpayablefunction setAllowedTo(address to, bool isAllowedTo)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unwrap
nonpayablefunction unwrap(uint256 amount)
wrap
nonpayablefunction wrap(uint256 amount)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
DelegateChanged
event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate)
DelegateVotesChanged
event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance)
EIP712DomainChanged
event EIP712DomainChanged()
Initialized
event Initialized(uint8 version)
Mint
event Mint(address indexed minter, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetAllowedFrom
event SetAllowedFrom(address indexed from, bool isAllowedFrom)
SetAllowedTo
event SetAllowedTo(address indexed to, bool isAllowedTo)
TokenUnwrapped
event TokenUnwrapped(address indexed account, uint256 amount)
TokenWrapped
event TokenWrapped(address indexed account, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
TransferRestrictionsDisabled
event TransferRestrictionsDisabled()
errors
InvalidShortString
error InvalidShortString()
StringTooLong
error StringTooLong(string str)
creation bytecode
0x60c060405234801561000f575f5ffd5b5060405161379b38038061379b83398101604081905261002e9161016a565b8061003881610058565b608052506001600160a01b03821660a05261005161009e565b5050610294565b5f5f829050601f8151111561008b578260405163305a27a960e01b81526004016100829190610239565b60405180910390fd5b80516100968261026e565b179392505050565b5f54610100900460ff16156101055760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610082565b5f5460ff90811614610154575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561017b575f5ffd5b82516001600160a01b0381168114610191575f5ffd5b60208401519092506001600160401b038111156101ac575f5ffd5b8301601f810185136101bc575f5ffd5b80516001600160401b038111156101d5576101d5610156565b604051601f8201601f19908116603f011681016001600160401b038111828210171561020357610203610156565b60405281815282820160200187101561021a575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561028e575f198160200360031b1b821691505b50919050565b60805160a0516134d16102ca5f395f818161034c01528181610852015281816114dd01526115fb01525f610a1401526134d15ff3fe608060405234801561000f575f5ffd5b5060043610610260575f3560e01c80637ecebe001161014b578063a9059cbb116100bf578063dd62ed3e11610084578063dd62ed3e146105cc578063de0e9a3e146105df578063ea598cb0146105f2578063eb415f4514610605578063f1127ed81461060d578063f2fde38b1461064a575f5ffd5b8063a9059cbb1461056d578063aad41a4114610580578063b8c2559414610593578063c3cda520146105a6578063d505accf146105b9575f5ffd5b806391ddadf41161011057806391ddadf41461050357806395d89b41146105225780639ab24eb01461052a5780639aec4bae1461053d578063a457c2d714610547578063a7d1195d1461055a575f5ffd5b80637ecebe001461049157806381b97161146104a457806384b0196e146104c45780638da5cb5b146104df5780638e539e8c146104f0575f5ffd5b80633a46b1a8116101e2578063587cde1e116101a7578063587cde1e146103d85780635c19a95c146104035780636fcfff451461041657806370a082311461043e578063715018a61461046657806378aa33ba1461046e575f5ffd5b80633a46b1a8146103345780633f4da4c6146103475780634bf5d7e91461038657806353957125146103b057806354fd4d50146103d0575f5ffd5b80631ffacdef116102285780631ffacdef146102e457806323b872dd146102f7578063313ce5671461030a5780633644e515146103195780633950935114610321575f5ffd5b80630455e6941461026457806306fdde031461029c578063095ea7b3146102b15780631249c58b146102c457806318160ddd146102ce575b5f5ffd5b610287610272366004612d08565b6101336020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102a461065d565b6040516102939190612d4f565b6102876102bf366004612d61565b6106ed565b6102cc610706565b005b6102d661084f565b604051908152602001610293565b6102cc6102f2366004612d96565b6108d5565b610287610305366004612dcb565b61093d565b60405160128152602001610293565b6102d6610960565b61028761032f366004612d61565b610969565b6102d6610342366004612d61565b61098a565b61036e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610293565b60408051808201909152600e81526d06d6f64653d74696d657374616d760941b60208201526102a4565b6102d66103be366004612d08565b6101306020525f908152604090205481565b6102a4610a0d565b61036e6103e6366004612d08565b6001600160a01b039081165f90815260fe60205260409020541690565b6102cc610411366004612d08565b610a38565b610429610424366004612d08565b610a45565b60405163ffffffff9091168152602001610293565b6102d661044c366004612d08565b6001600160a01b03165f9081526065602052604090205490565b6102cc610a66565b61028761047c366004612d08565b6101346020525f908152604090205460ff1681565b6102d661049f366004612d08565b610a79565b6102d66104b2366004612d08565b6101316020525f908152604090205481565b6104cc610a96565b6040516102939796959493929190612e05565b6033546001600160a01b031661036e565b6102d66104fe366004612e9b565b610b2f565b61050b610b96565b60405165ffffffffffff9091168152602001610293565b6102a4610ba0565b6102d6610538366004612d08565b610baf565b6102d66101325481565b610287610555366004612d61565b610c2c565b6102cc610568366004612f7a565b610ca6565b61028761057b366004612d61565b6110ba565b6102cc61058e3660046130bf565b6110c7565b6102cc6105a1366004612d96565b611197565b6102cc6105b436600461313b565b6111f7565b6102cc6105c736600461318f565b61132c565b6102d66105da3660046131f5565b61148d565b6102cc6105ed366004612e9b565b6114b7565b6102cc610600366004612e9b565b6115d9565b6102cc611700565b61062061061b366004613226565b6117c7565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610293565b6102cc610658366004612d08565b611848565b60606068805461066c90613258565b80601f016020809104026020016040519081016040528092919081815260200182805461069890613258565b80156106e35780601f106106ba576101008083540402835291602001916106e3565b820191905f5260205f20905b8154815290600101906020018083116106c657829003601f168201915b5050505050905090565b5f336106fa8185856118be565b60019150505b92915050565b335f908152610131602052604090205461077f5760405162461bcd60e51b815260206004820152602f60248201527f456967656e2e6d696e743a206d73672e73656e64657220686173206e6f206d6960448201526e6e74696e6720616c6c6f77616e636560881b60648201526084015b60405180910390fd5b335f908152610130602052604090205442116107f75760405162461bcd60e51b815260206004820152603160248201527f456967656e2e6d696e743a206d73672e73656e646572206973206e6f7420616c6044820152701b1bddd959081d1bc81b5a5b9d081e595d607a1b6064820152608401610776565b335f8181526101316020526040812080549190559061081690826119e1565b60405181815233907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885906020015b60405180910390a250565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d0919061328a565b905090565b6108dd611a77565b6001600160a01b0382165f8181526101336020908152604091829020805460ff191685151590811790915591519182527fcf20b1ecb604b0e8888d579c64e8a3b10e590d45c1c2dddb393bed284362227191015b60405180910390a25050565b5f3361094a858285611ad1565b610955858585611b43565b506001949350505050565b5f6108d0611cfd565b5f336106fa81858561097b838361148d565b61098591906132b5565b6118be565b5f610993610b96565b65ffffffffffff1682106109e55760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610776565b6001600160a01b0383165f90815260ff60205260409020610a069083611d06565b9392505050565b60606108d07f0000000000000000000000000000000000000000000000000000000000000000611de7565b610a423382611e24565b50565b6001600160a01b0381165f90815260ff602052604081205461070090611e9d565b610a6e611a77565b610a775f611f05565b565b6001600160a01b0381165f90815260cb6020526040812054610700565b5f6060805f5f5f60606097545f5f1b148015610ab25750609854155b610af65760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610776565b610afe611f56565b610b06611f65565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f610b38610b96565b65ffffffffffff168210610b8a5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610776565b61070061010083611d06565b5f6108d042611f74565b60606069805461066c90613258565b6001600160a01b0381165f90815260ff60205260408120548015610c1a576001600160a01b0383165f90815260ff6020526040902080545f198301908110610bf957610bf96132c8565b5f9182526020909120015464010000000090046001600160e01b0316610c1c565b5f5b6001600160e01b03169392505050565b5f3381610c39828661148d565b905083811015610c995760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610776565b61095582868684036118be565b5f54610100900460ff1615808015610cc457505f54600160ff909116105b80610cdd5750303b158015610cdd57505f5460ff166001145b610d405760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610776565b5f805460ff191660011790558015610d61575f805461ff0019166101001790555b610d69611fda565b610dad6040518060400160405280600581526020016422b4b3b2b760d91b8152506040518060400160405280600581526020016422a4a3a2a760d91b815250612008565b610db685611f05565b610ddc6040518060400160405280600581526020016422a4a3a2a760d91b81525061203c565b8251845114610e635760405162461bcd60e51b815260206004820152604760248201527f456967656e2e696e697469616c697a653a206d696e7465727320616e64206d6960448201527f6e74696e67416c6c6f77616e636573206d757374206265207468652073616d65606482015266040d8cadccee8d60cb1b608482015260a401610776565b8151845114610eea5760405162461bcd60e51b815260206004820152604760248201527f456967656e2e696e697469616c697a653a206d696e7465727320616e64206d6960448201527f6e74416c6c6f776564416674657273206d757374206265207468652073616d65606482015266040d8cadccee8d60cb1b608482015260a401610776565b5f5b845181101561106757838181518110610f0757610f076132c8565b60200260200101516101315f878481518110610f2557610f256132c8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550828181518110610f6257610f626132c8565b60200260200101516101305f878481518110610f8057610f806132c8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f208190555060016101335f878481518110610fc357610fc36132c8565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff021916908315150217905550848181518110611012576110126132c8565b60200260200101516001600160a01b03167fcf20b1ecb604b0e8888d579c64e8a3b10e590d45c1c2dddb393bed28436222716001604051611057911515815260200190565b60405180910390a2600101610eec565b505f196101325580156110b3575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b5f336106fa818585611b43565b82811461113c5760405162461bcd60e51b815260206004820152603e60248201527f456967656e2e6d756c746973656e643a2072656365697665727320616e64206160448201527f6d6f756e7473206d757374206265207468652073616d65206c656e67746800006064820152608401610776565b5f5b838110156110b35761118f3386868481811061115c5761115c6132c8565b90506020020160208101906111719190612d08565b858585818110611183576111836132c8565b90506020020135611b43565b60010161113e565b61119f611a77565b6001600160a01b0382165f8181526101346020908152604091829020805460ff191685151590811790915591519182527f72a561d1af7409467dae4f1e9fc52590a9335a1dda17727e2b6aa8c4db35109b9101610931565b834211156112475760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610776565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f906112c0906112b89060a00160405160208183030381529060405280519060200120612085565b8585856120b1565b90506112cb816120d7565b86146113195760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610776565b6113238188611e24565b50505050505050565b8342111561137c5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610776565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886113aa8c6120d7565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61140482612085565b90505f611413828787876120b1565b9050896001600160a01b0316816001600160a01b0316146114765760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610776565b6114818a8a8a6118be565b50505050505050505050565b6001600160a01b039182165f90815260666020908152604080832093909416825291909152205490565b6114c133826120fe565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af115801561152b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154f91906132dc565b6115a75760405162461bcd60e51b8152602060048201526024808201527f456967656e2e756e777261703a2062454947454e207472616e736665722066616044820152631a5b195960e21b6064820152608401610776565b60405181815233907f7f8146ca1ae17ad17561461ef221d97c8160bfddcae0edb68f53ce8dc5ce4af390602001610844565b6040516323b872dd60e01b8152336004820152306024820152604481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af1158015611649573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166d91906132dc565b6116c45760405162461bcd60e51b815260206004820152602260248201527f456967656e2e777261703a2062454947454e207472616e73666572206661696c604482015261195960f21b6064820152608401610776565b6116ce33826119e1565b60405181815233907f2273a99739c31a37346636a3013c2cedebee7cd5b4c560faded39d298c1dd45c90602001610844565b611708611a77565b5f1961013254146117975760405162461bcd60e51b815260206004820152604d60248201527f456967656e2e64697361626c655472616e736665725265737472696374696f6e60448201527f733a207472616e73666572207265737472696374696f6e732061726520616c7260648201526c1958591e48191a5cd8589b1959609a1b608482015260a401610776565b5f6101328190556040517f2b18986d3ba809db2f13a5d7bf17f60d357b37d9cbb55dd71cbbac8dc4060f649190a1565b604080518082019091525f80825260208201526001600160a01b0383165f90815260ff60205260409020805463ffffffff8416908110611809576118096132c8565b5f9182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b611850611a77565b6001600160a01b0381166118b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610776565b610a4281611f05565b6001600160a01b0383166119205760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610776565b6001600160a01b0382166119815760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610776565b6001600160a01b038381165f8181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6119eb8282612117565b6001600160e01b036119fb61084f565b1115611a625760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610776565b611a716101006121e8836121f3565b50505050565b6033546001600160a01b03163314610a775760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610776565b5f611adc848461148d565b90505f198114611a715781811015611b365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610776565b611a7184848484036118be565b6001600160a01b038316611ba75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610776565b6001600160a01b038216611c095760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610776565b611c1483838361235f565b6001600160a01b0383165f9081526065602052604090205481811015611c8b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610776565b6001600160a01b038085165f8181526065602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cea9086815260200190565b60405180910390a3611a71848484612443565b5f6108d0612474565b81545f9081816005811115611d5d575f611d1f846124e7565b611d2990856132f7565b5f88815260209020909150869082015463ffffffff161115611d4d57809150611d5b565b611d588160016132b5565b92505b505b80821015611da8575f611d7083836125cb565b5f88815260209020909150869082015463ffffffff161115611d9457809150611da2565b611d9f8160016132b5565b92505b50611d5d565b8015611dd2575f8681526020902081015f19015464010000000090046001600160e01b0316611dd4565b5f5b6001600160e01b03169695505050505050565b60605f611df3836125e5565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b038281165f81815260fe6020818152604080842080546065845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611a7182848361260c565b5f63ffffffff821115611f015760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610776565b5090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60606099805461066c90613258565b6060609a805461066c90613258565b5f65ffffffffffff821115611f015760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610776565b5f54610100900460ff166120005760405162461bcd60e51b81526004016107769061330a565b610a77612746565b5f54610100900460ff1661202e5760405162461bcd60e51b81526004016107769061330a565b6120388282612775565b5050565b5f54610100900460ff166120625760405162461bcd60e51b81526004016107769061330a565b610a4281604051806040016040528060018152602001603160f81b8152506127b4565b5f610700612091611cfd565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f6120c087878787612801565b915091506120cd816128be565b5095945050505050565b6001600160a01b0381165f90815260cb602052604090208054600181018255905b50919050565b6121088282612a07565b611a71610100612b4a836121f3565b6001600160a01b03821661216d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610776565b6121785f838361235f565b8060675f82825461218991906132b5565b90915550506001600160a01b0382165f818152606560209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36120385f8383612443565b5f610a0682846132b5565b82545f90819081811561223d575f8781526020902082015f190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152612251565b604080518082019091525f80825260208201525b905080602001516001600160e01b0316935061227184868863ffffffff16565b92505f821180156122995750612285610b96565b65ffffffffffff16815f015163ffffffff16145b156122dc576122a783612b55565b5f8881526020902083015f190180546001600160e01b03929092166401000000000263ffffffff909216919091179055612355565b8660405180604001604052806123006122f3610b96565b65ffffffffffff16611e9d565b63ffffffff16815260200161231486612b55565b6001600160e01b0390811690915282546001810184555f938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b61013254421161243e576001600160a01b038316158061238657506001600160a01b038216155b806123a957506001600160a01b0383165f908152610133602052604090205460ff165b806123cc57506001600160a01b0382165f908152610134602052604090205460ff165b61243e5760405162461bcd60e51b815260206004820152603a60248201527f456967656e2e5f6265666f7265546f6b656e5472616e736665723a2066726f6d60448201527f206f7220746f206d7573742062652077686974656c69737465640000000000006064820152608401610776565b505050565b6001600160a01b038381165f90815260fe602052604080822054858416835291205461243e9291821691168361260c565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61249e612bbd565b6124a6612c15565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f815f036124f657505f919050565b5f600161250284612c45565b901c6001901b9050600181848161251b5761251b613355565b048201901c9050600181848161253357612533613355565b048201901c9050600181848161254b5761254b613355565b048201901c9050600181848161256357612563613355565b048201901c9050600181848161257b5761257b613355565b048201901c9050600181848161259357612593613355565b048201901c905060018184816125ab576125ab613355565b048201901c9050610a06818285816125c5576125c5613355565b04612cd8565b5f6125d96002848418613369565b610a06908484166132b5565b5f60ff8216601f81111561070057604051632cd44ac360e21b815260040160405180910390fd5b816001600160a01b0316836001600160a01b03161415801561262d57505f81115b1561243e576001600160a01b038316156126ba576001600160a01b0383165f90815260ff60205260408120819061266790612b4a856121f3565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516126af929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561243e576001600160a01b0382165f90815260ff6020526040812081906126ef906121e8856121f3565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612737929190918252602082015260400190565b60405180910390a25050505050565b5f54610100900460ff1661276c5760405162461bcd60e51b81526004016107769061330a565b610a7733611f05565b5f54610100900460ff1661279b5760405162461bcd60e51b81526004016107769061330a565b60686127a783826133cc565b50606961243e82826133cc565b5f54610100900460ff166127da5760405162461bcd60e51b81526004016107769061330a565b60996127e683826133cc565b50609a6127f382826133cc565b50505f609781905560985550565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561283657505f905060036128b5565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612887573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166128af575f600192509250506128b5565b91505f90505b94509492505050565b5f8160048111156128d1576128d1613487565b036128d95750565b60018160048111156128ed576128ed613487565b0361293a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610776565b600281600481111561294e5761294e613487565b0361299b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610776565b60038160048111156129af576129af613487565b03610a425760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610776565b6001600160a01b038216612a675760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610776565b612a72825f8361235f565b6001600160a01b0382165f9081526065602052604090205481811015612ae55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610776565b6001600160a01b0383165f8181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361243e835f84612443565b5f610a0682846132f7565b5f6001600160e01b03821115611f015760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610776565b5f5f612bc7611f56565b805190915015612bde578051602090910120919050565b6097548015612bed5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f5f612c1f611f65565b805190915015612c36578051602090910120919050565b6098548015612bed5792915050565b5f80608083901c15612c5957608092831c92015b604083901c15612c6b57604092831c92015b602083901c15612c7d57602092831c92015b601083901c15612c8f57601092831c92015b600883901c15612ca157600892831c92015b600483901c15612cb357600492831c92015b600283901c15612cc557600292831c92015b600183901c156107005760010192915050565b5f818310612ce65781610a06565b5090919050565b80356001600160a01b0381168114612d03575f5ffd5b919050565b5f60208284031215612d18575f5ffd5b610a0682612ced565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610a066020830184612d21565b5f5f60408385031215612d72575f5ffd5b612d7b83612ced565b946020939093013593505050565b8015158114610a42575f5ffd5b5f5f60408385031215612da7575f5ffd5b612db083612ced565b91506020830135612dc081612d89565b809150509250929050565b5f5f5f60608486031215612ddd575f5ffd5b612de684612ced565b9250612df460208501612ced565b929592945050506040919091013590565b60ff60f81b8816815260e060208201525f612e2360e0830189612d21565b8281036040840152612e358189612d21565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015612e8a578351835260209384019390920191600101612e6c565b50909b9a5050505050505050505050565b5f60208284031215612eab575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612eef57612eef612eb2565b604052919050565b5f67ffffffffffffffff821115612f1057612f10612eb2565b5060051b60200190565b5f82601f830112612f29575f5ffd5b8135612f3c612f3782612ef7565b612ec6565b8082825260208201915060208360051b860101925085831115612f5d575f5ffd5b602085015b838110156120cd578035835260209283019201612f62565b5f5f5f5f60808587031215612f8d575f5ffd5b612f9685612ced565b9350602085013567ffffffffffffffff811115612fb1575f5ffd5b8501601f81018713612fc1575f5ffd5b8035612fcf612f3782612ef7565b8082825260208201915060208360051b850101925089831115612ff0575f5ffd5b6020840193505b828410156130195761300884612ced565b825260209384019390910190612ff7565b9550505050604085013567ffffffffffffffff811115613037575f5ffd5b61304387828801612f1a565b925050606085013567ffffffffffffffff81111561305f575f5ffd5b61306b87828801612f1a565b91505092959194509250565b5f5f83601f840112613087575f5ffd5b50813567ffffffffffffffff81111561309e575f5ffd5b6020830191508360208260051b85010111156130b8575f5ffd5b9250929050565b5f5f5f5f604085870312156130d2575f5ffd5b843567ffffffffffffffff8111156130e8575f5ffd5b6130f487828801613077565b909550935050602085013567ffffffffffffffff811115613113575f5ffd5b61311f87828801613077565b95989497509550505050565b803560ff81168114612d03575f5ffd5b5f5f5f5f5f5f60c08789031215613150575f5ffd5b61315987612ced565b955060208701359450604087013593506131756060880161312b565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a0312156131a5575f5ffd5b6131ae88612ced565b96506131bc60208901612ced565b955060408801359450606088013593506131d86080890161312b565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215613206575f5ffd5b61320f83612ced565b915061321d60208401612ced565b90509250929050565b5f5f60408385031215613237575f5ffd5b61324083612ced565b9150602083013563ffffffff81168114612dc0575f5ffd5b600181811c9082168061326c57607f821691505b6020821081036120f857634e487b7160e01b5f52602260045260245ffd5b5f6020828403121561329a575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610700576107006132a1565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156132ec575f5ffd5b8151610a0681612d89565b81810381811115610700576107006132a1565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b5f52601260045260245ffd5b5f8261338357634e487b7160e01b5f52601260045260245ffd5b500490565b601f82111561243e57805f5260205f20601f840160051c810160208510156133ad5750805b601f840160051c820191505b818110156110b3575f81556001016133b9565b815167ffffffffffffffff8111156133e6576133e6612eb2565b6133fa816133f48454613258565b84613388565b6020601f82116001811461342c575f83156134155750848201515b5f19600385901b1c1916600184901b1784556110b3565b5f84815260208120601f198516915b8281101561345b578785015182556020948501946001909201910161343b565b508482101561347857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220c490569e565e0b8a6d0952ad851594e836656889f309ac01f14f261342832f2864736f6c634300081b003300000000000000000000000083e9115d334d248ce39a6f36144aeab5b3456e7500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000005312e362e30000000000000000000000000000000000000000000000000000000