77 txs
186 calls
constructor
constructor(address newOwner, address signerEarlyAccess, address signerPublic, string baseTokenURI, (uint64 signedMintOpeningTimestamp, uint64 publicMintOpeningTimestamp, uint64 mintClosingTimestamp) config, address[] payees, uint256[] shares, uint256[] sharesRoyalties)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getSigners
viewfunction getSigners(uint8 stage) view returns (address[] signers)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
MAX_NUM_TOKENS
viewfunction MAX_NUM_TOKENS() view returns (uint32)
MINT_PRICE
viewfunction MINT_PRICE() view returns (uint256)
mintConfig
viewfunction mintConfig() view returns (uint64 signedMintOpeningTimestamp, uint64 publicMintOpeningTimestamp, uint64 mintClosingTimestamp)
name
viewfunction name() view returns (string)
numEarlyAccessMintsFrom
viewfunction numEarlyAccessMintsFrom(bytes32) view returns (uint256)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
paused
viewfunction paused() view returns (bool)
paymentSplitter
viewfunction paymentSplitter() view returns (address)
paymentSplitterRoyalties
viewfunction paymentSplitterRoyalties() view returns (address)
royaltyInfo
viewfunction royaltyInfo(uint256, uint256 salePrice) view returns (address receiver, uint256 royaltyAmount)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenSeed
viewfunction tokenSeed(uint256 tokenId) view returns (bytes32)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint32)
approve
nonpayablefunction approve(address to, uint256 tokenId)
changeSigners
nonpayablefunction changeSigners(uint8 stage, address[] delSigners, address[] addSigners)
mintEarlyAccess
payablefunction mintEarlyAccess(address to, uint16 num, uint16 numMax, uint128 nonce, bytes signature) payable
mintPublic
payablefunction mintPublic(uint16 num, uint16 numMax, uint128 nonce, bytes signature) payable
mintReserve
nonpayablefunction mintReserve(tuple[] receivers)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseTokenURI
nonpayablefunction setBaseTokenURI(string uri)
setMintConfig
nonpayablefunction setMintConfig(tuple config)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Unpaused
event Unpaused(address account)
errors
InsufficientTokensRemanining
error InsufficientTokensRemanining()
InvalidPayment
error InvalidPayment()
MintDisabled
error MintDisabled()
OnlyEOA
error OnlyEOA()
SignatureAlreadyUsed
error SignatureAlreadyUsed()
TooManyMintsRequested
error TooManyMintsRequested()
WrongMintingStage
error WrongMintingStage()
WrongNumberOfReserveMints
error WrongNumberOfReserveMints()
creation bytecode
0x60c06040523480156200001157600080fd5b5060405162004016380380620040168339810160408190526200003491620008af565b604080518082018252601481527f4b6f7269706f206279205269636820506f6f6c650000000000000000000000006020808301918252835180850190945260068452654b4f5249504f60d01b908401528151919291839183916200009b916000916200057f565b508051620000b19060019060208401906200057f565b505050620000ce620000c8620002e660201b60201c565b620002ea565b50506006805460ff60a01b191690556001600755620000fb600d886200033c602090811b6200122a17901c565b506200011786600f6200033c60201b6200122a1790919060201c565b5084516200012d9060119060208801906200057f565b508351600a805460208088015160408901516001600160401b03908116600160801b02600160801b600160c01b031992821668010000000000000000026001600160801b0319909516919096161792909217919091169290921790556200019d906200123f6200035c821b17901c565b6001600160a01b0316634f62f4d184846040518363ffffffff1660e01b8152600401620001cc929190620009b7565b6020604051808303816000875af1158015620001ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000212919062000a3f565b6001600160a01b0316608052620002346200035c602090811b6200123f17901c565b6001600160a01b0316634f62f4d184836040518363ffffffff1660e01b815260040162000263929190620009b7565b6020604051808303816000875af115801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a9919062000a3f565b6001600160a01b031660a08190526c01000000000000000000000000026102ee17600855620002d8886200045c565b505050505050505062000a9a565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600062000353836001600160a01b0384166200052d565b90505b92915050565b60008046600181146200038257600481146200039f576105398114620003bc57620003d4565b73f034d6a4b1a64f0e6038632d87746ca24b79d3259150620003d4565b73633dc916d9f59cf4aa117de2bb8edf7752270ec09150620003d4565b73a516d2c64ed7fe2004a93bc123854b229f3bb73891505b506001600160a01b038116620004575760405162461bcd60e51b815260206004820152603560248201527f5061796d656e7453706c6974746572466163746f72793a206e6f74206465706c60448201527f6f796564206f6e2063757272656e7420636861696e000000000000000000000060648201526084015b60405180910390fd5b919050565b6006546001600160a01b03163314620004b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200044e565b6001600160a01b0381166200051f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200044e565b6200052a81620002ea565b50565b6000818152600183016020526040812054620005765750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000356565b50600062000356565b8280546200058d9062000a5d565b90600052602060002090601f016020900481019282620005b15760008555620005fc565b82601f10620005cc57805160ff1916838001178555620005fc565b82800160010185558215620005fc579182015b82811115620005fc578251825591602001919060010190620005df565b506200060a9291506200060e565b5090565b5b808211156200060a57600081556001016200060f565b80516001600160a01b03811681146200045757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200067e576200067e6200063d565b604052919050565b600082601f8301126200069857600080fd5b81516001600160401b03811115620006b457620006b46200063d565b6020620006ca601f8301601f1916820162000653565b8281528582848701011115620006df57600080fd5b60005b83811015620006ff578581018301518282018401528201620006e2565b83811115620007115760008385840101525b5095945050505050565b80516001600160401b03811681146200045757600080fd5b6000606082840312156200074657600080fd5b604051606081016001600160401b03811182821017156200076b576200076b6200063d565b6040529050806200077c836200071b565b81526200078c602084016200071b565b60208201526200079f604084016200071b565b60408201525092915050565b60006001600160401b03821115620007c757620007c76200063d565b5060051b60200190565b600082601f830112620007e357600080fd5b81516020620007fc620007f683620007ab565b62000653565b82815260059290921b840181019181810190868411156200081c57600080fd5b8286015b848110156200084257620008348162000625565b835291830191830162000820565b509695505050505050565b600082601f8301126200085f57600080fd5b8151602062000872620007f683620007ab565b82815260059290921b840181019181810190868411156200089257600080fd5b8286015b8481101562000842578051835291830191830162000896565b600080600080600080600080610140898b031215620008cd57600080fd5b620008d88962000625565b9750620008e860208a0162000625565b9650620008f860408a0162000625565b60608a01519096506001600160401b03808211156200091657600080fd5b620009248c838d0162000686565b9650620009358c60808d0162000733565b955060e08b01519150808211156200094c57600080fd5b6200095a8c838d01620007d1565b94506101008b01519150808211156200097257600080fd5b620009808c838d016200084d565b93506101208b01519150808211156200099857600080fd5b50620009a78b828c016200084d565b9150509295985092959890939650565b604080825283519082018190526000906020906060840190828701845b82811015620009fb5781516001600160a01b031684529284019290840190600101620009d4565b5050508381038285015284518082528583019183019060005b8181101562000a325783518352928401929184019160010162000a14565b5090979650505050505050565b60006020828403121562000a5257600080fd5b620003538262000625565b600181811c9082168062000a7257607f821691505b6020821081141562000a9457634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161354f62000ac7600039600061059f0152600081816106a20152611f93015261354f6000f3fe6080604052600436106102045760003560e01c806370a0823111610118578063bf964b4e116100a0578063e7cc72441161006f578063e7cc724414610610578063e985e9c514610670578063ed4a6b0c14610690578063ed92d4f7146106c4578063f2fde38b146106e457600080fd5b8063bf964b4e1461058d578063c002d23d146105c1578063c615a7b2146105dd578063c87b56dd146105f057600080fd5b80638da5cb5b116100e75780638da5cb5b1461050757806395d89b4114610525578063a22cb4651461053a578063b88d4fde1461055a578063bd2e4abd1461057a57600080fd5b806370a08231146104a7578063715018a6146104c7578063718e6adb146104dc5780638456cb59146104f257600080fd5b806328c5846f1161019b57806342842e0e1161016a57806342842e0e146104085780635c975abb146104285780635f516836146104475780636352211e146104675780636b7813ee1461048757600080fd5b806328c5846f146103595780632a55205a1461039457806330176e13146103d35780633f4ba83a146103f357600080fd5b80630ae9f4ae116101d75780630ae9f4ae146102ba57806318160ddd146102da57806323b872dd1461030c578063249c4b481461032c57600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b506102296102243660046129ec565b610704565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b50610253610715565b6040516102359190612a61565b34801561026c57600080fd5b5061028061027b366004612a74565b6107a7565b6040516001600160a01b039091168152602001610235565b3480156102a457600080fd5b506102b86102b3366004612aa2565b610841565b005b3480156102c657600080fd5b506102b86102d5366004612ace565b610957565b3480156102e657600080fd5b506009546102f79063ffffffff1681565b60405163ffffffff9091168152602001610235565b34801561031857600080fd5b506102b8610327366004612b42565b610a9d565b34801561033857600080fd5b5061034c610347366004612b92565b610ace565b6040516102359190612bad565b34801561036557600080fd5b50610386610374366004612a74565b600b6020526000908152604090205481565b604051908152602001610235565b3480156103a057600080fd5b506103b46103af366004612bfa565b610b85565b604080516001600160a01b039093168352602083019190915201610235565b3480156103df57600080fd5b506102b86103ee366004612c5d565b610bce565b3480156103ff57600080fd5b506102b8610c04565b34801561041457600080fd5b506102b8610423366004612b42565b610c38565b34801561043457600080fd5b50600654600160a01b900460ff16610229565b34801561045357600080fd5b50610386610462366004612a74565b610c53565b34801561047357600080fd5b50610280610482366004612a74565b610ca1565b34801561049357600080fd5b506102b86104a2366004612c9e565b610d18565b3480156104b357600080fd5b506103866104c2366004612cb0565b610d4f565b3480156104d357600080fd5b506102b8610dd6565b3480156104e857600080fd5b506102f76103e781565b3480156104fe57600080fd5b506102b8610e0a565b34801561051357600080fd5b506006546001600160a01b0316610280565b34801561053157600080fd5b50610253610e3c565b34801561054657600080fd5b506102b8610555366004612ccd565b610e4b565b34801561056657600080fd5b506102b8610575366004612d21565b610e5a565b6102b8610588366004612e29565b610e8c565b34801561059957600080fd5b506102807f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cd57600080fd5b50610386670214e8348c4f000081565b6102b86105eb366004612eb0565b610f77565b3480156105fc57600080fd5b5061025361060b366004612a74565b610fff565b34801561061c57600080fd5b50600a54610646906001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b0394851681529284166020840152921691810191909152606001610235565b34801561067c57600080fd5b5061022961068b366004612f25565b611072565b34801561069c57600080fd5b506102807f000000000000000000000000000000000000000000000000000000000000000081565b3480156106d057600080fd5b506102b86106df366004612f97565b6110b4565b3480156106f057600080fd5b506102b86106ff366004612cb0565b61118f565b600061070f8261132b565b92915050565b60606000805461072490613006565b80601f016020809104026020016040519081016040528092919081815260200182805461075090613006565b801561079d5780601f106107725761010080835404028352916020019161079d565b820191906000526020600020905b81548152906001019060200180831161078057829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166108255760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061084c82610ca1565b9050806001600160a01b0316836001600160a01b031614156108ba5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161081c565b336001600160a01b03821614806108d657506108d68133611072565b6109485760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161081c565b6109528383611350565b505050565b6006546001600160a01b031633146109815760405162461bcd60e51b815260040161081c9061303b565b600954640100000000900460ff16156109ad576040516317efbd6b60e01b815260040160405180910390fd5b6009805464ff000000001916640100000000179055806000805b82811015610a75578484828181106109e1576109e1613070565b90506040020160200160208101906109f99190613086565b610a099063ffffffff16836130c2565b9150610a65858583818110610a2057610a20613070565b610a369260206040909202019081019150612cb0565b868684818110610a4857610a48613070565b9050604002016020016020810190610a609190613086565b6113be565b610a6e816130da565b90506109c7565b5060068114610a97576040516378e2ffa360e01b815260040160405180910390fd5b50505050565b610aa73382611479565b610ac35760405162461bcd60e51b815260040161081c906130f5565b610952838383611550565b60606000610adb836116fb565b90506000610ae882611759565b9050806001600160401b03811115610b0257610b02612d0b565b604051908082528060200260200182016040528015610b2b578160200160208202803683370190505b50925060005b81811015610b7d57610b438382611763565b848281518110610b5557610b55613070565b6001600160a01b0390921660209283029190910190910152610b76816130da565b9050610b31565b505050919050565b60085460009081906bffffffffffffffffffffffff16610ba76127108561315c565b610bb19190613170565b600854600160601b90046001600160a01b03169590945092505050565b6006546001600160a01b03163314610bf85760405162461bcd60e51b815260040161081c9061303b565b6109526011838361293d565b6006546001600160a01b03163314610c2e5760405162461bcd60e51b815260040161081c9061303b565b610c3661176f565b565b61095283838360405180602001604052806000815250610e5a565b60008181526002602052604081205482906001600160a01b0316610c895760405162461bcd60e51b815260040161081c9061318f565b60008381526012602052604090205491505b50919050565b6000818152600260205260408120546001600160a01b03168061070f5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161081c565b6006546001600160a01b03163314610d425760405162461bcd60e51b815260040161081c9061303b565b80600a61095282826131e9565b60006001600160a01b038216610dba5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161081c565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610e005760405162461bcd60e51b815260040161081c9061303b565b610c36600061180c565b6006546001600160a01b03163314610e345760405162461bcd60e51b815260040161081c9061303b565b610c3661185e565b60606001805461072490613006565b610e563383836118e6565b5050565b610e643383611479565b610e805760405162461bcd60e51b815260040161081c906130f5565b610a97848484846119b5565b600a546001600160401b0316421080610eb65750600a54600160401b90046001600160401b031642115b15610ed4576040516317efbd6b60e01b815260040160405180910390fd5b60026007541415610f275760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161081c565b6002600755610f346119e8565b8561ffff161115610f5857604051630f196e0f60e21b815260040160405180910390fd5b610f6a868686868686600d600b611a32565b5050600160075550505050565b600a54600160401b90046001600160401b0316421080610fa85750600a54600160801b90046001600160401b031642115b15610fc6576040516317efbd6b60e01b815260040160405180910390fd5b323314610fe657604051639f8129d160e01b815260040160405180910390fd5b610ff8338686868686600f600c611a32565b5050505050565b606081611023816000908152600260205260409020546001600160a01b0316151590565b61103f5760405162461bcd60e51b815260040161081c9061318f565b601161104a84611b75565b60405160200161105b929190613290565b604051602081830303815290604052915050919050565b6001600160a01b03808316600090815260056020908152604080832093851683529290529081205460ff16806110ad57506110ad8383611c72565b9392505050565b6006546001600160a01b031633146110de5760405162461bcd60e51b815260040161081c9061303b565b60006110e9866116fb565b905060005b848110156111385761112786868381811061110b5761110b613070565b90506020020160208101906111209190612cb0565b8390611cb1565b50611131816130da565b90506110ee565b5060005b828110156111865761117584848381811061115957611159613070565b905060200201602081019061116e9190612cb0565b839061122a565b5061117f816130da565b905061113c565b50505050505050565b6006546001600160a01b031633146111b95760405162461bcd60e51b815260040161081c9061303b565b6001600160a01b03811661121e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081c565b6112278161180c565b50565b60006110ad836001600160a01b038416611cc6565b6000804660018114611261576004811461127d576105398114611299576112b1565b73f034d6a4b1a64f0e6038632d87746ca24b79d32591506112b1565b73633dc916d9f59cf4aa117de2bb8edf7752270ec091506112b1565b73a516d2c64ed7fe2004a93bc123854b229f3bb73891505b506001600160a01b0381166113265760405162461bcd60e51b815260206004820152603560248201527f5061796d656e7453706c6974746572466163746f72793a206e6f74206465706c60448201527437bcb2b21037b71031bab93932b73a1031b430b4b760591b606482015260840161081c565b919050565b60006001600160e01b0319821663152a902d60e11b148061070f575061070f82611d15565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061138582610ca1565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60095463ffffffff166103e76113d48383613352565b63ffffffff1611156113f957604051630f196e0f60e21b815260040160405180910390fd5b60005b8263ffffffff1681101561145a5761141a848363ffffffff16611d20565b6114248483611d3a565b63ffffffff8316600090815260126020526040902055816114448161337a565b9250508080611452906130da565b9150506113fc565b506009805463ffffffff191663ffffffff929092169190911790555050565b6000818152600260205260408120546001600160a01b03166114f25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161081c565b60006114fd83610ca1565b9050806001600160a01b0316846001600160a01b031614806115385750836001600160a01b031661152d846107a7565b6001600160a01b0316145b8061154857506115488185611072565b949350505050565b826001600160a01b031661156382610ca1565b6001600160a01b0316146115cb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b606482015260840161081c565b6001600160a01b03821661162d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161081c565b611638838383611db4565b611643600082611350565b6001600160a01b038316600090815260036020526040812080546001929061166c90849061339e565b90915550506001600160a01b038216600090815260036020526040812080546001929061169a9084906130c2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080826001811115611710576117106133b5565b141561171e5750600d919050565b6001826001811115611732576117326133b5565b14156117405750600f919050565b6040516327d0b10d60e01b815260040160405180910390fd5b600061070f825490565b60006110ad8383611dbf565b600654600160a01b900460ff166117bf5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161081c565b6006805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600654600160a01b900460ff16156118ab5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161081c565b6006805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586117ef3390565b816001600160a01b0316836001600160a01b031614156119485760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161081c565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6119c0848484611550565b6119cc84848484611de9565b610a975760405162461bcd60e51b815260040161081c906133cb565b6009546000908190640100000000900460ff16611a0757610258611a14565b611a146006610258613352565b60095463ffffffff9182169250611a2c91168261339e565b91505090565b34611a49670214e8348c4f000061ffff8a16613170565b14611a675760405163078d696560e31b815260040160405180910390fd5b6040516bffffffffffffffffffffffff1930606090811b821660208401528a901b1660348201526001600160f01b031960f088901b1660488201526fffffffffffffffffffffffffffffffff19608087901b16604a820152600090611add90605a01604051602081830303815290604052611ee7565b60008181526020849052604090205490915061ffff80891691611b01918b166130c2565b1115611b205760405163342e754760e21b815260040160405180910390fd5b611b2c83828787611f22565b6000818152602083905260408120805461ffff8b169290611b4e9084906130c2565b90915550611b5c9050611f86565b611b6a898961ffff166113be565b505050505050505050565b606081611b995750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611bc35780611bad816130da565b9150611bbc9050600a8361315c565b9150611b9d565b6000816001600160401b03811115611bdd57611bdd612d0b565b6040519080825280601f01601f191660200182016040528015611c07576020820181803683370190505b5090505b841561154857611c1c60018361339e565b9150611c29600a8661341d565b611c349060306130c2565b60f81b818381518110611c4957611c49613070565b60200101906001600160f81b031916908160001a905350611c6b600a8661315c565b9450611c0b565b600080611c7e84611fb9565b90506001600160a01b038116158015906115485750826001600160a01b0316816001600160a01b03161491505092915050565b60006110ad836001600160a01b038416612110565b6000818152600183016020526040812054611d0d5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561070f565b50600061070f565b600061070f82612203565b610e56828260405180602001604052806000815250612253565b60003044611d4960014361339e565b6040516bffffffffffffffffffffffff19606094851b811660208301526034820193909352904060548201529185901b1660748201526001600160e01b031960e084901b166088820152608c0160405160208183030381529060405280519060200120905092915050565b610952838383612286565b6000826000018281548110611dd657611dd6613070565b9060005260206000200154905092915050565b60006001600160a01b0384163b15611edc57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e2d903390899088908890600401613431565b6020604051808303816000875af1925050508015611e68575060408051601f3d908101601f19168201909252611e659181019061346e565b60015b611ec2573d808015611e96576040519150601f19603f3d011682016040523d82523d6000602084013e611e9b565b606091505b508051611eba5760405162461bcd60e51b815260040161081c906133cb565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611548565b506001949350505050565b6000611ef38251611b75565b82604051602001611f0592919061348b565b604051602081830303815290604052805190602001209050919050565b611f2e848484846122f4565b610a975760405162461bcd60e51b815260206004820152602360248201527f5369676e6174757265436865636b65723a20496e76616c6964207369676e617460448201526275726560e81b606482015260840161081c565b610c366001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001634612349565b600080468060018114611fee576089811461200a57600481146120265762013881811461204257610539811461205e57612076565b73a5409ec958c83c3f309868babaca7c86dcb077c19250612076565b7358807bad0b376efc12f5ad86aac70e78ed67deae9250612076565b73f57b2c51ded3a29e6891aba85459d600256cf3179250612076565b73ff7ca10af37178bdd056628ef42fd7f799fac77c9250612076565b73e1a2bbc877b29adbc56d2659dbcb0ae14ee6207192505b506001600160a01b038216158061208d5750806089145b8061209a57508062013881145b156120a6575092915050565b60405163c455279160e01b81526001600160a01b03858116600483015283169063c455279190602401602060405180830381865afa1580156120ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154891906134e6565b600081815260018301602052604081205480156121f957600061213460018361339e565b85549091506000906121489060019061339e565b90508181146121ad57600086600001828154811061216857612168613070565b906000526020600020015490508087600001848154811061218b5761218b613070565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806121be576121be613503565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061070f565b600091505061070f565b60006001600160e01b031982166380ac58cd60e01b148061223457506001600160e01b03198216635b5e139f60e01b145b8061070f57506301ffc9a760e01b6001600160e01b031983161461070f565b61225d8383612462565b61226a6000848484611de9565b6109525760405162461bcd60e51b815260040161081c906133cb565b600654600160a01b900460ff16156109525760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201526a1a1a5b19481c185d5cd95960aa1b606482015260840161081c565b60006123406123398585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506125b092505050565b86906125d4565b95945050505050565b804710156123995760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161081c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146123e6576040519150601f19603f3d011682016040523d82523d6000602084013e6123eb565b606091505b50509050806109525760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161081c565b6001600160a01b0382166124b85760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161081c565b6000818152600260205260409020546001600160a01b03161561251d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161081c565b61252960008383611db4565b6001600160a01b03821660009081526003602052604081208054600192906125529084906130c2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008060006125bf85856125f6565b915091506125cc81612666565b509392505050565b6001600160a01b038116600090815260018301602052604081205415156110ad565b60008082516041141561262d5760208301516040840151606085015160001a61262187828585612821565b9450945050505061265f565b825160401415612657576020830151604084015161264c86838361290e565b93509350505061265f565b506000905060025b9250929050565b600081600481111561267a5761267a6133b5565b14156126835750565b6001816004811115612697576126976133b5565b14156126e55760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161081c565b60028160048111156126f9576126f96133b5565b14156127475760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161081c565b600381600481111561275b5761275b6133b5565b14156127b45760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161081c565b60048160048111156127c8576127c86133b5565b14156112275760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161081c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156128585750600090506003612905565b8460ff16601b1415801561287057508460ff16601c14155b156128815750600090506004612905565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156128d5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166128fe57600060019250925050612905565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b0161292f87828885612821565b935093505050935093915050565b82805461294990613006565b90600052602060002090601f01602090048101928261296b57600085556129b1565b82601f106129845782800160ff198235161785556129b1565b828001600101855582156129b1579182015b828111156129b1578235825591602001919060010190612996565b506129bd9291506129c1565b5090565b5b808211156129bd57600081556001016129c2565b6001600160e01b03198116811461122757600080fd5b6000602082840312156129fe57600080fd5b81356110ad816129d6565b60005b83811015612a24578181015183820152602001612a0c565b83811115610a975750506000910152565b60008151808452612a4d816020860160208601612a09565b601f01601f19169290920160200192915050565b6020815260006110ad6020830184612a35565b600060208284031215612a8657600080fd5b5035919050565b6001600160a01b038116811461122757600080fd5b60008060408385031215612ab557600080fd5b8235612ac081612a8d565b946020939093013593505050565b60008060208385031215612ae157600080fd5b82356001600160401b0380821115612af857600080fd5b818501915085601f830112612b0c57600080fd5b813581811115612b1b57600080fd5b8660208260061b8501011115612b3057600080fd5b60209290920196919550909350505050565b600080600060608486031215612b5757600080fd5b8335612b6281612a8d565b92506020840135612b7281612a8d565b929592945050506040919091013590565b80356002811061132657600080fd5b600060208284031215612ba457600080fd5b6110ad82612b83565b6020808252825182820181905260009190848201906040850190845b81811015612bee5783516001600160a01b031683529284019291840191600101612bc9565b50909695505050505050565b60008060408385031215612c0d57600080fd5b50508035926020909101359150565b60008083601f840112612c2e57600080fd5b5081356001600160401b03811115612c4557600080fd5b60208301915083602082850101111561265f57600080fd5b60008060208385031215612c7057600080fd5b82356001600160401b03811115612c8657600080fd5b612c9285828601612c1c565b90969095509350505050565b600060608284031215610c9b57600080fd5b600060208284031215612cc257600080fd5b81356110ad81612a8d565b60008060408385031215612ce057600080fd5b8235612ceb81612a8d565b915060208301358015158114612d0057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215612d3757600080fd5b8435612d4281612a8d565b93506020850135612d5281612a8d565b92506040850135915060608501356001600160401b0380821115612d7557600080fd5b818701915087601f830112612d8957600080fd5b813581811115612d9b57612d9b612d0b565b604051601f8201601f19908116603f01168101908382118183101715612dc357612dc3612d0b565b816040528281528a6020848701011115612ddc57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b803561ffff8116811461132657600080fd5b80356001600160801b038116811461132657600080fd5b60008060008060008060a08789031215612e4257600080fd5b8635612e4d81612a8d565b9550612e5b60208801612e00565b9450612e6960408801612e00565b9350612e7760608801612e12565b925060808701356001600160401b03811115612e9257600080fd5b612e9e89828a01612c1c565b979a9699509497509295939492505050565b600080600080600060808688031215612ec857600080fd5b612ed186612e00565b9450612edf60208701612e00565b9350612eed60408701612e12565b925060608601356001600160401b03811115612f0857600080fd5b612f1488828901612c1c565b969995985093965092949392505050565b60008060408385031215612f3857600080fd5b8235612f4381612a8d565b91506020830135612d0081612a8d565b60008083601f840112612f6557600080fd5b5081356001600160401b03811115612f7c57600080fd5b6020830191508360208260051b850101111561265f57600080fd5b600080600080600060608688031215612faf57600080fd5b612fb886612b83565b945060208601356001600160401b0380821115612fd457600080fd5b612fe089838a01612f53565b90965094506040880135915080821115612ff957600080fd5b50612f1488828901612f53565b600181811c9082168061301a57607f821691505b60208210811415610c9b57634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561309857600080fd5b813563ffffffff811681146110ad57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156130d5576130d56130ac565b500190565b60006000198214156130ee576130ee6130ac565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261316b5761316b613146565b500490565b600081600019048311821515161561318a5761318a6130ac565b500290565b60208082526021908201527f455243373231436f6d6d6f6e3a20546f6b656e20646f65736e277420657869736040820152601d60fa1b606082015260800190565b600081356001600160401b038116811461070f57600080fd5b6001600160401b036131fa836131d0565b168154816001600160401b031982161783556fffffffffffffffff0000000000000000613229602086016131d0565b60401b1680836001600160801b03198416171784556001600160401b0360801b613255604087016131d0565b60801b16836001600160401b0360c01b84161782171784555050505050565b60008151613286818560208601612a09565b9290920192915050565b600080845481600182811c9150808316806132ac57607f831692505b60208084108214156132cc57634e487b7160e01b86526022600452602486fd5b8180156132e057600181146132f15761331e565b60ff1986168952848901965061331e565b60008b81526020902060005b868110156133165781548b8201529085019083016132fd565b505084890196505b50505050505061234061334161333b83602f60f81b815260010190565b86613274565b64173539b7b760d91b815260050190565b600063ffffffff808316818516808303821115613371576133716130ac565b01949350505050565b600063ffffffff80831681811415613394576133946130ac565b6001019392505050565b6000828210156133b0576133b06130ac565b500390565b634e487b7160e01b600052602160045260246000fd5b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008261342c5761342c613146565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061346490830184612a35565b9695505050505050565b60006020828403121561348057600080fd5b81516110ad816129d6565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152600083516134c381601a850160208801612a09565b8351908301906134da81601a840160208801612a09565b01601a01949350505050565b6000602082840312156134f857600080fd5b81516110ad81612a8d565b634e487b7160e01b600052603160045260246000fdfea26469706673582212206582dbe6ae4ab2905566bca825e202cbca0b3dcfc675006246314b75f5ef29a664736f6c634300080b0033000000000000000000000000edb7c032fef116163214fcdb6ca481e94794b187000000000000000000000000279629bfb709143aa2ef38d04353feeaaa1dbbe700000000000000000000000018da35512b436e3d63f5600bc39e87d2098e4dc40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000006272247000000000000000000000000000000000000000000000000000000000627294f000000000000000000000000000000000000000000000000000000000627bcf7000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000003168747470733a2f2f6170692e676d73747564696f2e6172742f636f6c6c656374696f6e732f6b6f7269706f2f746f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000e1a4cb40a1d672bb7901b646bb18eb7b70bd59520000000000000000000000007c228e74d601ee9414277a674abf9b58950e87cc000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002