0 txs
2.9k calls
constructor
No constructor.
functions
getRawVector
viewfunction getRawVector(bytes32 mechanicVectorId) view returns (tuple _vector)
getVectorState
viewfunction getVectorState(bytes32 mechanicVectorId) view returns (tuple _vector, uint256 collectionSupply, uint256 collectionSize)
mintManager
viewfunction mintManager() view returns (address)
observability
viewfunction observability() view returns (address)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
seedInfo
viewfunction seedInfo(bytes32, bytes32) view returns (uint256)
userClaims
viewfunction userClaims(bytes32, address) view returns (uint64)
burnCrosschain
payablefunction burnCrosschain(bytes32 mechanicVectorId, bytes32 burnId, uint256 currentGasCost, bytes seed, uint48 signatureExpiryTime, address burner, uint256 destinationChainId, bytes signature) payable
createCrosschainBurnRedeemVector
nonpayablefunction createCrosschainBurnRedeemVector(bytes32 mechanicVectorId, address burnContract, uint88 tokenId, address paymentRecipient, uint96 pricePerToken)
createVector
nonpayablefunction createVector(bytes32 mechanicVectorId, bytes vectorData)
initialize
nonpayablefunction initialize(address _mintManager, address platform, address _observability)
processChooseMint
payablefunction processChooseMint(bytes32 mechanicVectorId, address recipient, uint256[] tokenIds, address minter, tuple mechanicVectorMetadata, bytes data) payable
processNumMint
payablefunction processNumMint(bytes32 mechanicVectorId, address recipient, uint32 numToMint, address minter, tuple mechanicVectorMetadata, bytes data) payable
renounceOwnership
nonpayablefunction renounceOwnership()
setBurnRedeem1155Config
nonpayablefunction setBurnRedeem1155Config(bytes32 mechanicVectorId, tuple newConfig)
setSeedProcessor
nonpayablefunction setSeedProcessor(address nftContract, address seedProcessor)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateMintManager
nonpayablefunction updateMintManager(address _mintManager)
updateVector
nonpayablefunction updateVector(bytes32 mechanicVectorId, tuple newVector, tuple updateConfig)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdrawNativeGasToken
nonpayablefunction withdrawNativeGasToken(uint256 amountToWithdraw, address recipient)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
CrosschainBurn
event CrosschainBurn(bytes32 indexed mechanicVectorId, bytes32 indexed burnId, address indexed burner, uint256 currentGasCost, uint48 signatureExpiryTime, uint40 numToMint, uint256 destinationChainId, bytes seed)
CustomMintData
event CustomMintData(address indexed sender, address indexed contractAddress, bytes data)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SeedBasedMint
event SeedBasedMint(bytes32 indexed mechanicVectorId, address indexed recipient, uint200 pricePerToken, uint48 numMinted)
SeedBasedNativeTokenPayment
event SeedBasedNativeTokenPayment(bytes32 indexed mechanicVectorId, address indexed paymentRecipient, uint256 amountToCreator, uint32 percentageBPSOfTotal)
SeedBasedVectorCreated
event SeedBasedVectorCreated(bytes32 indexed mechanicVectorId)
SeedBasedVectorUpdated
event SeedBasedVectorUpdated(bytes32 indexed mechanicVectorId)
Upgraded
event Upgraded(address indexed implementation)
errors
EtherSendFailed
error EtherSendFailed()
InvalidMint
error InvalidMint()
InvalidMintManager
error InvalidMintManager()
InvalidPaymentAmount
error InvalidPaymentAmount()
InvalidSignature
error InvalidSignature()
NotMintManager
error NotMintManager()
SeedAlreadyUsed
error SeedAlreadyUsed()
Unauthorized
error Unauthorized()
UsedBurnId
error UsedBurnId()
VectorAlreadyCreated
error VectorAlreadyCreated()
creation bytecode
0x60a06040523060805234801561001457600080fd5b50608051613ef061004c6000396000818161096b015281816109b401528181610b1001528181610b500152610bcc0152613ef06000f3fe6080604052600436106101105760003560e01c80630ae941031461011557806313b5d9e61461014b5780631a8d37921461017a5780631fe4a3c41461019c57806327add159146101e257806332c20a731461023b5780633659cfe61461025b5780634d5799c21461027b5780634f1ef2861461029b57806352d1902d146102ae578063715018a6146102c35780637e4edf70146102d85780638da5cb5b146103055780639cc163e51461031a578063b2a3a9a01461032d578063bc2368141461034d578063c0c53b8b1461036d578063c4804ce21461038d578063ce4ff691146103a0578063ceab8e19146103c0578063d97883b9146103e0578063eb872150146103f3578063f2fde38b14610413575b600080fd5b34801561012157600080fd5b50610135610130366004612ebe565b610433565b6040516101429190612f96565b60405180910390f35b34801561015757600080fd5b5061016b610166366004612ebe565b6104f1565b60405161014293929190612fa5565b34801561018657600080fd5b5061019a6101953660046130d4565b6105bd565b005b3480156101a857600080fd5b506101d46101b736600461311a565b606860209081526000928352604080842090915290825290205481565b604051908152602001610142565b3480156101ee57600080fd5b506102236101fd366004613161565b60696020908152600092835260408084209091529082529020546001600160401b031681565b6040516001600160401b039091168152602001610142565b34801561024757600080fd5b5061019a6102563660046131bb565b61089d565b34801561026757600080fd5b5061019a610276366004613223565b610960565b34801561028757600080fd5b5061019a610296366004613240565b610a32565b61019a6102a9366004613278565b610b05565b3480156102ba57600080fd5b506101d4610bbf565b3480156102cf57600080fd5b5061019a610c6d565b3480156102e457600080fd5b506065546102f8906001600160a01b031681565b60405161014291906132b1565b34801561031157600080fd5b506102f8610c81565b61019a610328366004613330565b610c90565b34801561033957600080fd5b5061019a610348366004613161565b610f50565b34801561035957600080fd5b5061019a6103683660046133c8565b610fcb565b34801561037957600080fd5b5061019a61038836600461341e565b611325565b61019a61039b366004613469565b61145c565b3480156103ac57600080fd5b5061019a6103bb366004613547565b611498565b3480156103cc57600080fd5b5061019a6103db366004613223565b61154f565b61019a6103ee366004613589565b611597565b3480156103ff57600080fd5b506066546102f8906001600160a01b031681565b34801561041f57600080fd5b5061019a61042e366004613223565b6116c8565b61043b612e72565b50600090815260676020908152604091829020825161012081018452815465ffffffffffff8082168352600160301b8204811694830194909452600160601b810463ffffffff90811695830195909552600160801b81049094166060820152600160a01b80850484166080830152600160d01b90940490921660a083015260018101546001600160c01b031660c0830152600201546001600160a01b03811660e08301529190910460ff16151561010082015290565b6104f9612e72565b506000818152606760209081526040808320815161012081018352815465ffffffffffff8082168352600160301b8204811695830195909552600160601b810463ffffffff90811694830194909452600160801b81049093166060820152600160a01b80840485166080830152600160d01b90930490931660a084015260018101546001600160c01b031660c0840152600201546001600160a01b03811660e08401520460ff16151561010082015290806105b38461173e565b9395909450915050565b6065546001600160a01b031633146105df576105df639a04794d60e01b611956565b60008281526067602052604090205465ffffffffffff161561060b5761060b6366fa676560e11b611956565b6000806000806000806000808880602001905181019061062b919061366e565b9750975097509750975097509750975060006040518061012001604052808a65ffffffffffff1660001461065f578a610661565b425b65ffffffffffff1681526020018965ffffffffffff1681526020018863ffffffff1681526020018763ffffffff168152602001600065ffffffffffff1681526020018665ffffffffffff168152602001856001600160c01b03168152602001846001600160a01b03168152602001831515815250905080606760008d815260200190815260200160002060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548163ffffffff021916908363ffffffff16021790555060608201518160000160106101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555060a082015181600001601a6101000a81548165ffffffffffff021916908365ffffffffffff16021790555060c08201518160010160006101000a8154816001600160c01b0302191690836001600160c01b0316021790555060e08201518160020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160020160146101000a81548160ff0219169083151502179055509050508a7fd9071b4cbbc5a2bf37d9ab89668fdfd8aedc531318fefbbebfc2fdfbd370583660405160405180910390a25050505050505050505050565b6108a5611960565b604080516060810182526001600160a01b0395861681526001600160581b03948516602080830191825260008385018181528a8252606a8352858220945185549451915160ff16600160f81b026001600160f81b0392909a16600160a01b9081026001600160f81b0319909616918c16919091179490941716979097179092558251808401845294871685526001600160601b03938416858301908152978652606c9091529320915194511690910292909116919091179055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156109b25760405162461bcd60e51b81526004016109a99061371e565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109e46119bf565b6001600160a01b031614610a0a5760405162461bcd60e51b81526004016109a990613758565b610a13816119db565b60408051600080825260208201909252610a2f918391906119e3565b50565b6000610a3d83611b53565b9050336001600160a01b031681600001516001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf9190613792565b6001600160a01b031614158015610ad0575080516001600160a01b03163314155b15610ae457610ae46282b42960e81b611956565b6000838152606a602052604090208290610afe82826137af565b5050505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610b4e5760405162461bcd60e51b81526004016109a99061371e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b806119bf565b6001600160a01b031614610ba65760405162461bcd60e51b81526004016109a990613758565b610baf826119db565b610bbb828260016119e3565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c5a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b60648201526084016109a9565b50600080516020613e9d83398151915290565b610c75611960565b610c7f6000611bf3565b565b6033546001600160a01b031690565b6065546001600160a01b03163314610cb257610cb2639a04794d60e01b611956565b6000610cc16020850185613223565b6001600160a01b03161415610ce85760405162461bcd60e51b81526004016109a990613830565b6000606d81610cfa6020870187613223565b6001600160a01b0390811682526020820192909252604001600020541690508015610ec757600088815260676020908152604091829020825161012081018452815465ffffffffffff808216808452600160301b8304821695840195909552600160601b820463ffffffff90811696840196909652600160801b82049095166060830152600160a01b80820486166080840152600160d01b90910490941660a082015260018201546001600160c01b031660c08201526002909101546001600160a01b03811660e08301529290920460ff161515610100830152421080610e025750806020015165ffffffffffff1642118015610e025750602081015165ffffffffffff1615155b15610e435760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206d696e742074696d6560781b60448201526064016109a9565b6001600160a01b0382166313ec2b12348b610e6160208a018a613223565b8c8c8c8860e001518c8c6040518a63ffffffff1660e01b8152600401610e8e989796959493929190613887565b6000604051808303818588803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b50505050505050610f47565b610ee38888888686610ede368b90038b018b6138e4565b611c45565b6000888152606a6020908152604091829020825160608101845290546001600160a01b038116808352600160a01b82046001600160581b031693830193909352600160f81b900460ff169281019290925215610f4457610f4481878961205a565b50505b50505050505050565b610f58611960565b600080826001600160a01b03168460405160006040518083038185875af1925050503d8060008114610fa6576040519150601f19603f3d011682016040523d82523d6000602084013e610fab565b606091505b509150915081610fc557610fc5637cd69c3960e11b611956565b50505050565b6000610fd684611b53565b9050336001600160a01b031681600001516001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110489190613792565b6001600160a01b031614158015611069575080516001600160a01b03163314155b1561107d5761107d6282b42960e81b611956565b61108a6020830183613971565b156110e85761109c602084018461398e565b65ffffffffffff16156110bb576110b6602084018461398e565b6110bd565b425b6000858152606760205260409020805465ffffffffffff191665ffffffffffff929092169190911790555b6110f86040830160208401613971565b156111435761110d604084016020850161398e565b6000858152606760205260409020805465ffffffffffff92909216600160301b0265ffffffffffff60301b199092169190911790555b6111536060830160408401613971565b1561119a5761116860608401604085016139ab565b6000858152606760205260409020805463ffffffff92909216600160601b0263ffffffff60601b199092169190911790555b6111aa6080830160608401613971565b156111f1576111bf60808401606085016139ab565b6000858152606760205260409020805463ffffffff92909216600160801b0263ffffffff60801b199092169190911790555b61120160a0830160808401613971565b156112495761121660c0840160a0850161398e565b6000858152606760205260409020805465ffffffffffff92909216600160d01b026001600160d01b039092169190911790555b61125960c0830160a08401613971565b1561129f5761126f610100840160e08501613223565b600085815260676020526040902060020180546001600160a01b0319166001600160a01b03929092169190911790555b6112af60e0830160c08401613971565b156112f4576112c460e0840160c085016139c8565b600085815260676020526040902060010180546001600160c01b0319166001600160c01b03929092169190911790555b60405184907f8f51aba4b6528696425c6196300ea1a35d154c66ab7ba57631a42c6c2099886f90600090a250505050565b600054610100900460ff16158080156113455750600054600160ff909116105b80611366575061135430612164565b158015611366575060005460ff166001145b6113c95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109a9565b6000805460ff1916600117905580156113ec576000805461ff0019166101001790555b6113f68484612173565b606680546001600160a01b0319166001600160a01b0384161790558015610fc5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6065546001600160a01b0316331461147e5761147e639a04794d60e01b611956565b61148e63201dc6f560e01b611956565b5050505050505050565b336001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115049190613792565b6001600160a01b031614611521576115216282b42960e81b611956565b6001600160a01b039182166000908152606d6020526040902080546001600160a01b03191691909216179055565b611557611960565b6001600160a01b0381166115755761157563040b3bcf60e31b611956565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b8515806115ab57508465ffffffffffff1642115b806115bf57506001600160a01b0384163314155b156115d4576115d463201dc6f560e01b611956565b61164d8a8a8a888b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a81528c935091508a908a90819084018382808284376000920191909152506121c692505050565b600061165a8b898961235b565b905061166e8b8264ffffffffff168b6125c0565b846001600160a01b03168a8c7f99590ba27bc812a0f458b5e0494a93311f43d8ab83333716d2e42ce4822d95478c8a868a8f8f6040516116b3969594939291906139e5565b60405180910390a45050505050505050505050565b6116d0611960565b6001600160a01b0381166117355760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a9565b610a2f81611bf3565b600080600061174c84611b53565b80519091506001600160a01b03166117765760405162461bcd60e51b81526004016109a990613830565b806060015115611815578051602082015160405163ddf990f960e01b81526001600160601b0390911660048201526000916001600160a01b03169063ddf990f990602401600060405180830381865afa1580156117d7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117ff9190810190613a58565b9050806040015193508060200151925050611950565b80600001516001600160a01b031663047fc9aa6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611873575060408051601f3d908101601f1916820190925261187091810190613b1b565b60015b6118e45780600001516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118dd9190613b1b565b92506118e7565b92505b80600001516001600160a01b0316632ddcb21f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194d9190613b1b565b91505b50915091565b8060005260046000fd5b33611969610c81565b6001600160a01b031614610c7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109a9565b600080516020613e9d833981519152546001600160a01b031690565b610a2f611960565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611a1b57611a1683612752565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611a75575060408051601f3d908101601f19168201909252611a7291810190613b1b565b60015b611ad85760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016109a9565b600080516020613e9d8339815191528114611b475760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016109a9565b50611a168383836127ec565b6040805160c081018252600080825260208201819052818301819052606082018190526080820181905260a0820152606554915162820a0360e31b81526004810184905290916001600160a01b03169063041050189060240160c060405180830381865afa158015611bc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bed9190613b34565b92915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000868152606760209081526040808320815161012081018352815465ffffffffffff8082168352600160301b8204811683870152600160601b820463ffffffff90811684870152600160801b830481166060850152600160a01b80840483166080860152600160d01b90930490911660a084015260018401546001600160c01b031660c08401526002909301546001600160a01b0380821660e085015291900460ff1615156101008301528b865260698552838620908b16865290935290832054919291611d1f918816906001600160401b0316613bcb565b905060008585604051611d33929190613bf5565b604080519182900390912060008b815260686020908152838220838352905291822054909250611d64906001613c05565b905060008863ffffffff168560800151611d7e9190613bcb565b855190915065ffffffffffff16421080611db95750846020015165ffffffffffff1642118015611db95750602085015165ffffffffffff1615155b80611de95750606085015163ffffffff1615801590611de95750846060015163ffffffff168165ffffffffffff16115b80611e195750604085015163ffffffff1615801590611e195750846040015163ffffffff168465ffffffffffff16115b80611e4b575060a085015165ffffffffffff1615801590611e4b57508460a0015165ffffffffffff168963ffffffff16115b80611e5c575060018963ffffffff16115b15611e7157611e7163201dc6f560e01b611956565b8461010001518015611e84575081600114155b15611e9957611e9963182c13a560e31b611956565b60008963ffffffff168660c00151611eb19190613c1d565b6001600160c01b03169050611ed48c8760e00151836001600160c81b0316612811565b82606860008e815260200190815260200160002060008681526020019081526020016000208190555081606760008e815260200190815260200160002060000160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055508465ffffffffffff16606960008e815260200190815260200160002060008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160401b0302191690836001600160401b031602179055508a6001600160a01b03168c7f354d3134c0555e32d53f24f62fb8f105461add9bd41ed54372bb9a2d6e9e004a8860c001518d604051611ff39291906001600160c01b0392909216825263ffffffff16602082015260400190565b60405180910390a386600001516001600160a01b0316306001600160a01b03167fde7419673c62effe64ad212bc9516461b88f2fef1be631b974d6a148125315e18b8b604051612044929190613c4c565b60405180910390a3505050505050505050505050565b6040805160018082528183019092526000916020808301908036833701905050905083602001516001600160581b03168160008151811061209d5761209d613c60565b60209081029190910101526040805160018082528183019092526000918160200160208202803683370190505090508263ffffffff16856040015160ff166120e59190613c76565b816000815181106120f8576120f8613c60565b60209081029190910101528451604051633db0f8ab60e01b81526001600160a01b0390911690633db0f8ab9061213690879086908690600401613cd0565b600060405180830381600087803b15801561215057600080fd5b505af1158015610f44573d6000803e3d6000fd5b6001600160a01b03163b151590565b600054610100900460ff1661219a5760405162461bcd60e51b81526004016109a990613d06565b6121a26128e4565b606580546001600160a01b0319166001600160a01b038416179055610bbb81611bf3565b8251602080850191909120604080517f0aff526221658c9c881f6fab407e6f52fd10f7e24ba774f22e073cfe86311165818501528082018b9052606081018a905233608082015260a0810189905265ffffffffffff881660c082015260e0810186905261010080820193909352815180820390930183526101200190528051910120600061231760007fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726040805160208101929092527f09c9af81e3891cadc5a053f1eb03e6705e0610c3291a57ad2def1d0e8bd71e36908201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a08201527f4e5f43db88d0a2d2e6314edc3db06b85283dda4de0e21b22a5492c209ebd0d1560c082015260e00160405160208183030381529060405280519060200120905090565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610f44818a8a86612913565b6000838152606a60209081526040808320815160608101835290546001600160a01b038116808352600160a01b82046001600160581b031694830194909452600160f81b900460ff1691810191909152906123c0576123c063201dc6f560e01b611956565b600080808080806123d3898b018b613d66565b604080516001808252818301909252969c50949a50929850909650945092506000919060208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905088602001516001600160581b03168260008151811061244a5761244a613c60565b602090810291909101015261246764ffffffffff84166008613c76565b61247964ffffffffff86166010613c76565b61248b64ffffffffff88166020613c76565b61249d64ffffffffff8a166040613c76565b6124af64ffffffffff8c166080613c76565b6124c264ffffffffff8e16610100613c76565b6124cc9190613c05565b6124d69190613c05565b6124e09190613c05565b6124ea9190613c05565b6124f49190613c05565b8160008151811061250757612507613c60565b60209081029190910101528851604051631ac8311560e21b81526001600160a01b0390911690636b20c4549061254590339086908690600401613cd0565b600060405180830381600087803b15801561255f57600080fd5b505af1158015612573573d6000803e3d6000fd5b50505050828486888a8c6125879190613dda565b6125919190613dda565b61259b9190613dda565b6125a59190613dda565b6125af9190613dda565b9d9c50505050505050505050505050565b6000838152606c60209081526040918290208251808401909352546001600160a01b038116808452600160a01b9091046001600160601b0316918301919091526126145761261463201dc6f560e01b611956565b6000612627846602d79883d20000613c76565b9050600082602001516001600160601b0316856126449190613c76565b905034846126528385613c05565b61265c9190613c05565b1461267157612671637e2897ef60e11b611956565b600061267b610c81565b6001600160a01b031661268e8487613c05565b604051600081818185875af1925050503d80600081146126ca576040519150601f19603f3d011682016040523d82523d6000602084013e6126cf565b606091505b50509050806126e8576126e8637cd69c3960e11b611956565b83516040516000916001600160a01b03169084908381818185875af1925050503d8060008114612734576040519150601f19603f3d011682016040523d82523d6000602084013e612739565b606091505b505090508061148e5761148e637cd69c3960e11b611956565b61275b81612164565b6127bd5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016109a9565b600080516020613e9d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6127f58361297e565b6000825111806128025750805b15611a1657610fc583836129be565b3481111561282957612829637e2897ef60e11b611956565b600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114612877576040519150601f19603f3d011682016040523d82523d6000602084013e61287c565b606091505b50915091508161289657612896637cd69c3960e11b611956565b6040805184815261271060208201526001600160a01b0386169187917f85c9865ab0ecce036ed5a81b89057dd73326726ff0fb893aae5741f8e346fb33910160405180910390a35050505050565b600054610100900460ff1661290b5760405162461bcd60e51b81526004016109a990613d06565b610c7f6129ea565b600061291f8583612a1a565b90506001600160a01b038116158061293d575061293b81612a3e565b155b1561295257612952638baa579f60e01b611956565b6000848152606b6020526040902061296a9084612ab0565b610afe57610afe637d0e4a8f60e11b611956565b61298781612752565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606129e38383604051806060016040528060278152602001613ebd60279139612abc565b9392505050565b600054610100900460ff16612a115760405162461bcd60e51b81526004016109a990613d06565b610c7f33611bf3565b6000806000612a298585612b34565b91509150612a3681612b7a565b509392505050565b60655460405163717b358f60e11b81526000916001600160a01b03169063e2f66b1e90612a6f9085906004016132b1565b602060405180830381865afa158015612a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bed9190613dfa565b60006129e38383612cc3565b6060600080856001600160a01b031685604051612ad99190613e17565b600060405180830381855af49150503d8060008114612b14576040519150601f19603f3d011682016040523d82523d6000602084013e612b19565b606091505b5091509150612b2a86838387612d12565b9695505050505050565b600080825160411415612b6b5760208301516040840151606085015160001a612b5f87828585612d8e565b94509450505050612b73565b506000905060025b9250929050565b6000816004811115612b8e57612b8e613e33565b1415612b975750565b6001816004811115612bab57612bab613e33565b1415612bf45760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b60448201526064016109a9565b6002816004811115612c0857612c08613e33565b1415612c565760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109a9565b6003816004811115612c6a57612c6a613e33565b1415610a2f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109a9565b6000818152600183016020526040812054612d0a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611bed565b506000611bed565b60608315612d7c578251612d7557612d2985612164565b612d755760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109a9565b5081612d86565b612d868383612e48565b949350505050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115612dbb5750600090506003612e3f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612e0f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612e3857600060019250925050612e3f565b9150600090505b94509492505050565b815115612e585781518083602001fd5b8060405162461bcd60e51b81526004016109a99190613e49565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b600060208284031215612ed057600080fd5b5035919050565b65ffffffffffff8082511683528060208301511660208401525063ffffffff60408201511660408301526060810151612f18606084018263ffffffff169052565b506080810151612f32608084018265ffffffffffff169052565b5060a0810151612f4c60a084018265ffffffffffff169052565b5060c0810151612f6760c08401826001600160c01b03169052565b5060e0810151612f8260e08401826001600160a01b03169052565b506101008181015180151584830152610fc5565b6101208101611bed8284612ed7565b6101608101612fb48286612ed7565b6101208201939093526101400152919050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715612fff57612fff612fc7565b60405290565b604051608081016001600160401b0381118282101715612fff57612fff612fc7565b604051601f8201601f191681016001600160401b038111828210171561304f5761304f612fc7565b604052919050565b60006001600160401b0382111561307057613070612fc7565b50601f01601f191660200190565b600082601f83011261308f57600080fd5b81356130a261309d82613057565b613027565b8181528460208386010111156130b757600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156130e757600080fd5b8235915060208301356001600160401b0381111561310457600080fd5b6131108582860161307e565b9150509250929050565b6000806040838503121561312d57600080fd5b50508035926020909101359150565b6001600160a01b0381168114610a2f57600080fd5b803561315c8161313c565b919050565b6000806040838503121561317457600080fd5b8235915060208301356131868161313c565b809150509250929050565b6001600160581b0381168114610a2f57600080fd5b6001600160601b0381168114610a2f57600080fd5b600080600080600060a086880312156131d357600080fd5b8535945060208601356131e58161313c565b935060408601356131f581613191565b925060608601356132058161313c565b91506080860135613215816131a6565b809150509295509295909350565b60006020828403121561323557600080fd5b81356129e38161313c565b600080828403608081121561325457600080fd5b833592506060601f198201121561326a57600080fd5b506020830190509250929050565b6000806040838503121561328b57600080fd5b82356132968161313c565b915060208301356001600160401b0381111561310457600080fd5b6001600160a01b0391909116815260200190565b63ffffffff81168114610a2f57600080fd5b600060c082840312156132e957600080fd5b50919050565b60008083601f84011261330157600080fd5b5081356001600160401b0381111561331857600080fd5b602083019150836020828501011115612b7357600080fd5b6000806000806000806000610160888a03121561334c57600080fd5b87359650602088013561335e8161313c565b9550604088013561336e816132c5565b9450606088013561337e8161313c565b935061338d8960808a016132d7565b92506101408801356001600160401b038111156133a957600080fd5b6133b58a828b016132ef565b989b979a50959850939692959293505050565b60008060008385036102208112156133df57600080fd5b84359350610120601f19820112156133f657600080fd5b60208501925060e061013f198201121561340f57600080fd5b50610140840190509250925092565b60008060006060848603121561343357600080fd5b833561343e8161313c565b9250602084013561344e8161313c565b9150604084013561345e8161313c565b809150509250925092565b600080600080600080600080610160898b03121561348657600080fd5b8835975060208901356134988161313c565b965060408901356001600160401b03808211156134b457600080fd5b818b0191508b601f8301126134c857600080fd5b8135818111156134d757600080fd5b8c60208260051b85010111156134ec57600080fd5b602083019850965061350060608c01613151565b955061350f8c60808d016132d7565b94506101408b013591508082111561352657600080fd5b506135338b828c016132ef565b999c989b5096995094979396929594505050565b6000806040838503121561355a57600080fd5b82356135658161313c565b915060208301356131868161313c565b65ffffffffffff81168114610a2f57600080fd5b6000806000806000806000806000806101008b8d0312156135a957600080fd5b8a35995060208b0135985060408b0135975060608b01356001600160401b03808211156135d557600080fd5b6135e18e838f016132ef565b909950975060808d013591506135f682613575565b90955060a08c0135906136088261313c565b90945060c08c0135935060e08c0135908082111561362557600080fd5b506136328d828e016132ef565b915080935050809150509295989b9194979a5092959850565b6001600160c01b0381168114610a2f57600080fd5b8015158114610a2f57600080fd5b600080600080600080600080610100898b03121561368b57600080fd5b885161369681613575565b60208a01519098506136a781613575565b60408a01519097506136b8816132c5565b60608a01519096506136c9816132c5565b60808a01519095506136da81613575565b60a08a01519094506136eb8161364b565b60c08a01519093506136fc8161313c565b60e08a015190925061370d81613660565b809150509295985092959890939650565b6020808252602c90820152600080516020613e7d83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020613e7d83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156137a457600080fd5b81516129e38161313c565b81356137ba8161313c565b81546001600160a01b031981166001600160a01b0392909216918217835560208401356137e681613191565b600160a01b600160f81b0360a09190911b166001600160f81b031991821683178117845560408501359160ff8316831461381f57600080fd5b921760f89190911b90911617905550565b602080825260149082015273159958dd1bdc88191bd95cdb89dd08195e1a5cdd60621b604082015260600190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8881526001600160a01b038881166020830152878116604083015263ffffffff871660608301528581166080830152841660a082015260e060c082018190526000906138d6908301848661385e565b9a9950505050505050505050565b600060c082840312156138f657600080fd5b6138fe612fdd565b82356139098161313c565b81526020830135613919816131a6565b6020820152604083013561392c8161313c565b6040820152606083013561393f81613660565b6060820152608083013561395281613660565b608082015260a083013561396581613660565b60a08201529392505050565b60006020828403121561398357600080fd5b81356129e381613660565b6000602082840312156139a057600080fd5b81356129e381613575565b6000602082840312156139bd57600080fd5b81356129e3816132c5565b6000602082840312156139da57600080fd5b81356129e38161364b565b86815265ffffffffffff8616602082015264ffffffffff8516604082015283606082015260a060808201526000613a2060a08301848661385e565b98975050505050505050565b60005b83811015613a47578181015183820152602001613a2f565b83811115610fc55750506000910152565b60006020808385031215613a6b57600080fd5b82516001600160401b0380821115613a8257600080fd5b9084019060808287031215613a9657600080fd5b613a9e613005565b825182811115613aad57600080fd5b83019150601f82018713613ac057600080fd5b8151613ace61309d82613057565b8181528886838601011115613ae257600080fd5b613af182878301888701613a2c565b82525082840151938101939093525060408082015190830152606090810151908201529392505050565b600060208284031215613b2d57600080fd5b5051919050565b600060c08284031215613b4657600080fd5b613b4e612fdd565b8251613b598161313c565b81526020830151613b69816131a6565b60208201526040830151613b7c8161313c565b60408201526060830151613b8f81613660565b60608201526080830151613ba281613660565b608082015260a083015161396581613660565b634e487b7160e01b600052601160045260246000fd5b600065ffffffffffff808316818516808303821115613bec57613bec613bb5565b01949350505050565b8183823760009101908152919050565b60008219821115613c1857613c18613bb5565b500190565b60006001600160c01b0382811684821681151582840482111615613c4357613c43613bb5565b02949350505050565b602081526000612d8660208301848661385e565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615613c9057613c90613bb5565b500290565b600081518084526020808501945080840160005b83811015613cc557815187529582019590820190600101613ca9565b509495945050505050565b6001600160a01b0384168152606060208201819052600090613cf490830185613c95565b8281036040840152612b2a8185613c95565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b803564ffffffffff8116811461315c57600080fd5b60008060008060008060c08789031215613d7f57600080fd5b613d8887613d51565b9550613d9660208801613d51565b9450613da460408801613d51565b9350613db260608801613d51565b9250613dc060808801613d51565b9150613dce60a08801613d51565b90509295509295509295565b600064ffffffffff808316818516808303821115613bec57613bec613bb5565b600060208284031215613e0c57600080fd5b81516129e381613660565b60008251613e29818460208701613a2c565b9190910192915050565b634e487b7160e01b600052602160045260246000fd5b6020815260008251806020840152613e68816040850160208701613a2c565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c634300080a000a