14 txs
15 calls
constructor
constructor(uint256 _burnRate, address _funder, address _burnToken, address _claimToken, uint256 _startTime, uint256 _endTime, uint256 _maxTotalBurned)
functions
amountPerCode
viewfunction amountPerCode(string) view returns (uint256)
burnAmount
viewfunction burnAmount() view returns (uint256)
burnerCount
viewfunction burnerCount() view returns (uint32)
burnRate
viewfunction burnRate() view returns (uint256)
burnReceived
viewfunction burnReceived(address) view returns (uint256)
burnReceivedWithCode
viewfunction burnReceivedWithCode(address) view returns (uint256)
checkWhitelist
viewfunction checkWhitelist(address user, bytes32[] merkleProof, uint256 allocation) view returns (bool)
checkWhitelist
viewfunction checkWhitelist(address user, bytes32[] merkleProof) view returns (bool)
claimable
viewfunction claimable(address) view returns (uint256)
claimTokenSwitched
viewfunction claimTokenSwitched() view returns (uint256)
cliffPeriod
viewfunction cliffPeriod(uint256) view returns (uint256 claimTime, uint8 pct)
codes
viewfunction codes(uint256) view returns (string)
endTime
viewfunction endTime() view returns (uint256)
funder
viewfunction funder() view returns (address)
getCliffPeriod
viewfunction getCliffPeriod() view returns (tuple[])
getCurrentClaimableToken
viewfunction getCurrentClaimableToken(address user) view returns (uint256)
getMaxBurn
viewfunction getMaxBurn(address user, uint256 allocation) view returns (uint256)
getUnlockedToken
viewfunction getUnlockedToken(uint256 totalPurchased, uint256 claimable, address user) view returns (uint256)
hasPulled
viewfunction hasPulled() view returns (bool)
hasUsedCode
viewfunction hasUsedCode(address, string) view returns (bool)
hasWithdrawn
viewfunction hasWithdrawn(address) view returns (bool)
isBurnHalted
viewfunction isBurnHalted() view returns (bool)
isIntegerClaim
viewfunction isIntegerClaim() view returns (bool)
isIntegerPayment
viewfunction isIntegerPayment(uint256 burnAmount) view returns (bool)
isVestedGiveaway
viewfunction isVestedGiveaway() view returns (bool)
latestClaimTime
viewfunction latestClaimTime(address) view returns (uint256)
linearVestingEndTime
viewfunction linearVestingEndTime() view returns (uint256)
maxPromoCodePerUser
viewfunction maxPromoCodePerUser() view returns (uint256)
maxTotalBurnable
viewfunction maxTotalBurnable() view returns (uint256)
maxTotalBurned
viewfunction maxTotalBurned() view returns (uint256)
minTotalBurned
viewfunction minTotalBurned() view returns (uint256)
owner
viewfunction owner() view returns (address)
paymentReceivedWithEachCode
viewfunction paymentReceivedWithEachCode(address, string) view returns (uint256)
paymentToken
viewfunction paymentToken() view returns (address)
promoCodesPerUser
viewfunction promoCodesPerUser(address, uint256) view returns (string)
publicAllocation
viewfunction publicAllocation() view returns (uint256)
renounceOwnership
purefunction renounceOwnership() pure
startTime
viewfunction startTime() view returns (uint256)
totalBurned
viewfunction totalBurned(address) view returns (uint256)
totalBurnReceived
viewfunction totalBurnReceived() view returns (uint256)
uniqueUsePerCode
viewfunction uniqueUsePerCode(string) view returns (uint256)
vestingEditableOverride
viewfunction vestingEditableOverride() view returns (bool)
whitelistedBurn
purefunction whitelistedBurn(uint256, bytes32[]) pure
whitelistRootHash
viewfunction whitelistRootHash() view returns (bytes32)
whitelistSetter
viewfunction whitelistSetter() view returns (address)
withdrawDelay
viewfunction withdrawDelay() view returns (uint24)
withdrawer
viewfunction withdrawer() view returns (address)
withdrawerCount
viewfunction withdrawerCount() view returns (uint32)
withdrawGiveaway
purefunction withdrawGiveaway(bytes32[]) pure
withdrawTime
viewfunction withdrawTime() view returns (uint256)
burn
nonpayablefunction burn(uint256)
emergencyTokenRetrieve
nonpayablefunction emergencyTokenRetrieve(address token)
fund
nonpayablefunction fund(uint256 amount)
pull
nonpayablefunction pull()
setCliffPeriod
nonpayablefunction setCliffPeriod(uint256[] claimTimes, uint8[] pct)
setFunder
nonpayablefunction setFunder(address _funder)
setIsBurnHalted
nonpayablefunction setIsBurnHalted(bool _isBurnHalted)
setIsIntegerClaim
nonpayablefunction setIsIntegerClaim(bool _isIntegerClaim)
setLinearVestingEndTime
nonpayablefunction setLinearVestingEndTime(uint256 _vestingEndTime)
setMaxTotalBurnable
nonpayablefunction setMaxTotalBurnable(uint256 _maxTotalBurnable)
setMinTotalPayment
nonpayablefunction setMinTotalPayment(uint256 _minTotalPayment)
setPublicAllocation
nonpayablefunction setPublicAllocation(uint256 _publicAllocation)
setVestedGiveaway
nonpayablefunction setVestedGiveaway(bool _isVestedGiveaway)
setVestingEditable
nonpayablefunction setVestingEditable(bool _vestingEditableOverride)
setWhitelist
nonpayablefunction setWhitelist(bytes32 _whitelistRootHash)
setWhitelistSetter
nonpayablefunction setWhitelistSetter(address _whitelistSetter)
setWithdrawDelay
nonpayablefunction setWithdrawDelay(uint24 _withdrawDelay)
setWithdrawer
nonpayablefunction setWithdrawer(address _withdrawer)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
whitelistedBurn
nonpayablefunction whitelistedBurn(uint256 burnAmount, bytes32[] merkleProof, uint256 _allocation)
whitelistedBurnWithCode
nonpayablefunction whitelistedBurnWithCode(uint256 burnAmount, bytes32[] merkleProof, uint256 _allocation, string code)
withdraw
nonpayablefunction withdraw()
withdrawBurnToken
nonpayablefunction withdrawBurnToken(uint256 amount)
withdrawGiveaway
nonpayablefunction withdrawGiveaway(bytes32[] merkleProof, uint256 allocation)
withdrawGiveawayVested
nonpayablefunction withdrawGiveawayVested(bytes32[] merkleProof, uint256 allocation)
events
Burn
event Burn(address indexed sender, uint256 burnAmount)
BurnWithCode
event BurnWithCode(address indexed sender, uint256 burnAmount, string code)
EmergencyTokenRetrieve
event EmergencyTokenRetrieve(address indexed sender, uint256 amount)
Fund
event Fund(address indexed sender, uint256 amount)
OptInBuyback
event OptInBuyback(address indexed user)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetCliffVestingPeriod
event SetCliffVestingPeriod((uint256 claimTime, uint8 pct)[] indexed cliffPeriod)
SetFunder
event SetFunder(address indexed funder)
SetIsBurnHalted
event SetIsBurnHalted(bool indexed isBurnHalted)
SetLinearVestingEndTime
event SetLinearVestingEndTime(uint256 indexed linearVestingEndTime)
SetMaxTotalBurnable
event SetMaxTotalBurnable(uint256 indexed _maxTotalBurnable)
SetMinTotalPayment
event SetMinTotalPayment(uint256 indexed minTotalBurned)
SetWhitelist
event SetWhitelist(bytes32 indexed whitelistRootHash)
SetWhitelistSetter
event SetWhitelistSetter(address indexed whitelistSetter)
SetWithdrawDelay
event SetWithdrawDelay(uint24 indexed withdrawDelay)
SetWithdrawer
event SetWithdrawer(address indexed withdrawer)
Withdraw
event Withdraw(address indexed sender, uint256 amount)
Withdraw
event Withdraw(address indexed sender, uint256 burnTokenBalance, uint256 claimTokenBalance)
errors
No errors.
creation bytecode
0x6101206040526007805460ff1916905560326011556021805461ffff1916905560006022553480156200003157600080fd5b5060405162004aec38038062004aec833981016040819052620000549162000492565b85878686868686848484848a81858c886200006f3362000429565b60018055811580620000a1575081158015906200009457506001600160a01b03831615155b8015620000a15750818110155b620001275760405162461bcd60e51b815260206004820152604560248201527f7061796d656e74546f6b656e206f72206d6178546f74616c4275726e6564207360448201527f686f756c64206e6f742062652030207768656e206275726e526174652069732060648201526406e6f7420360dc1b608482015260a4015b60405180910390fd5b6002919091556001600160a01b0391821660805260035560139190915584811690861614156200019a5760405162461bcd60e51b815260206004820152601660248201527f636c61696d546f6b656e203d206275726e546f6b656e0000000000000000000060448201526064016200011e565b6001600160a01b038416620001e35760405162461bcd60e51b815260206004820152600e60248201526d183c181031b630b4b6aa37b5b2b760911b60448201526064016200011e565b824210620002345760405162461bcd60e51b815260206004820152601960248201527f73746172742074696d657374616d7020746f6f206561726c790000000000000060448201526064016200011e565b42620002456301e1853e856200050d565b106200029f5760405162461bcd60e51b815260206004820152602260248201527f73746172742074696d652068617320746f2062652077697468696e203120796560448201526130b960f11b60648201526084016200011e565b818310620003045760405162461bcd60e51b815260206004820152602b60248201527f656e642074696d657374616d70206d757374206265206166746572207374617260448201526a0742074696d657374616d760ac1b60648201526084016200011e565b82620003156312d1d76c846200050d565b106200036f5760405162461bcd60e51b815260206004820152602260248201527f656e642074696d652068617320746f2062652077697468696e20313020796561604482015261727360f01b60648201526084016200011e565b6001600160a01b038116620003b45760405162461bcd60e51b815260206004820152600a602482015269183c1810333ab73232b960b11b60448201526064016200011e565b601780546001600160a01b0319166001600160a01b0392831617905593841660e052919092166101005260a09190915260c052620003ef3390565b601d60046101000a8154816001600160a01b0302191690836001600160a01b03160217905550505050505050505050505050505062000533565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200048f57600080fd5b50565b600080600080600080600060e0888a031215620004ae57600080fd5b875196506020880151620004c28162000479565b6040890151909650620004d58162000479565b6060890151909550620004e88162000479565b809450506080880151925060a0880151915060c0880151905092959891949750929550565b6000828210156200052e57634e487b7160e01b600052601160045260246000fd5b500390565b60805160a05160c05160e051610100516144c56200062760003960008181611392015281816116990152818161175d0152612530015260008181610e4101528181610f24015281816115d1015261165201526000818161060801528181610b14015281816110d70152818161134e0152818161151e0152818161183c01528181611be40152818161224101526122de015260008181610821015281816117d001528181611b7f01528181611f79015281816120e4015281816121f60152818161227901528181612420015281816124ee015281816125ba0152612d6b0152600081816105e1015261385601526144c56000f3fe608060405234801561001057600080fd5b50600436106104495760003560e01c806374f5482611610241578063c32d55641161013b578063d390bcc7116100c3578063e80f150311610087578063e80f150314610a79578063e86613a714610a82578063e986806c14610a95578063f2fde38b14610aa8578063ff273b6614610abb57600080fd5b8063d390bcc714610a0b578063d6ca214d14610a4a578063d98b1f9d14610a5a578063db02b5f014610a63578063e5ffd59714610a7057600080fd5b8063caefd3581161010a578063caefd358146109a2578063cdc18424146109c2578063cddfb5fd146109d5578063d03df6dd146109e8578063d1a12d6a14610a0257600080fd5b8063c32d55641461095c578063c5b7f8701461096f578063c9a2ff431461097c578063ca1d209d1461098f57600080fd5b80638da5cb5b116101c9578063aacc557a1161018d578063aacc557a146108ff578063ae15150b14610912578063bae235bc14610937578063be85612c14610940578063bed998501461095357600080fd5b80638da5cb5b146108aa578063928e5f8b146108bb57806393560063146108cd578063a47ff99b146108d6578063a85ef66d146108f657600080fd5b806379e60afc1161021057806379e60afc146108435780637a6e66511461085157806385775a041461086457806389910cac146108775780638d4f6e8f1461088a57600080fd5b806374f54826146107b957806376078dbe146107f557806376ebbbc21461080857806378e979251461081c57600080fd5b80633ccfd60b1161035257806353cc973b116102da5780635dbb4dbd1161029e5780635dbb4dbd146107485780635dc1c0da146107725780635e2c19db1461077b578063642d0f701461079e578063715018a6146107b157600080fd5b806353cc973b146106d6578063547a5eee146106f55780635a9b7ece146107085780635b2ee4041461071b5780635cb9df201461073b57600080fd5b806342966c681161032157806342966c6814610695578063440bc7f3146106a857806345cb3dde146106bb578063486a7e6b146106c45780634ae0f543146106cd57600080fd5b80633ccfd60b146106455780633d9205c11461064d578063402914f514610662578063429028961461068257600080fd5b80631e937107116103d557806326c65482116103a457806326c65482146105c95780633013ce29146105dc5780633197cbb614610603578063329eb8391461062a5780633763326a1461063257600080fd5b80631e937107146105655780631fa3f435146105785780632270e82d146105a3578063252b99c5146105b657600080fd5b80630d174c241161041c5780630d174c24146104d05780630f36f572146104e357806310002d2a146104f65780631637cde01461052f5780631649a8a91461054257600080fd5b8063022a8b1a1461044e5780630288a39c14610463578063041ae880146104925780630acc8cd1146104bd575b600080fd5b61046161045c366004613b91565b610ace565b005b60185461047990600160a01b900462ffffff1681565b60405162ffffff90911681526020015b60405180910390f35b6017546104a5906001600160a01b031681565b6040516001600160a01b039091168152602001610489565b6104616104cb366004613bf8565b610cca565b6104616104de366004613bf8565b610d5f565b6104616104f1366004613c13565b610db1565b610521610504366004613cce565b8051602081830181018051600f8252928201919093012091525481565b604051908152602001610489565b61046161053d366004613d02565b610f93565b610555610550366004613d43565b611012565b6040519015158152602001610489565b610461610573366004613b91565b61109a565b610521610586366004613cce565b805160208183018101805160108252928201919093012091525481565b6104616105b1366004613da3565b6112cf565b6104616105c4366004613c13565b6112f6565b6104616105d7366004613bf8565b611331565b6104a57f000000000000000000000000000000000000000000000000000000000000000081565b6105217f000000000000000000000000000000000000000000000000000000000000000081565b610461611491565b610461610640366004613da3565b6117c6565b610461611827565b610655611953565b6040516104899190613dc0565b610521610670366004613bf8565b601f6020526000908152604090205481565b610461610690366004613da3565b6119c2565b6104616106a3366004613c13565b611a07565b6104616106b6366004613c13565b611a9b565b61052160135481565b610521601a5481565b61052160225481565b6105216106e4366004613bf8565b602080526000908152604090205481565b610461610703366004613bf8565b611b1d565b610461610716366004613e12565b611b7c565b610521610729366004613bf8565b60146020526000908152604090205481565b601b546105559060ff1681565b61075b610756366004613c13565b611c9e565b6040805192835260ff909116602083015201610489565b61052160045481565b610555610789366004613bf8565b60196020526000908152604090205460ff1681565b6105216107ac366004613e64565b611ccf565b610461611e8e565b6105216107c7366004613e99565b600a602090815260009283526040909220815180830184018051928152908401929093019190912091525481565b610555610803366004613ee6565b611ee1565b60125461055590600160201b900460ff1681565b6105217f000000000000000000000000000000000000000000000000000000000000000081565b6104616106a3366004613f20565b61046161085f366004613da3565b611f6f565b610461610872366004613c13565b611fc9565b610461610885366004613f52565b6120da565b610521610898366004613bf8565b60096020526000908152604090205481565b6000546001600160a01b03166104a5565b60215461055590610100900460ff1681565b610521601c5481565b6108e96108e4366004613fbd565b612133565b604051610489919061403f565b61052160035481565b61046161090d366004614052565b6121ec565b6012546109229063ffffffff1681565b60405163ffffffff9091168152602001610489565b61052160115481565b61046161094e366004614077565b612276565b61052160025481565b61046161096a366004613c13565b6123cf565b6007546105559060ff1681565b61052161098a366004613bf8565b612462565b61046161099d366004613c13565b612495565b6105216109b0366004613bf8565b60086020526000908152604090205481565b6018546104a5906001600160a01b031681565b6104616109e3366004613c13565b6125b0565b601d546104a590600160201b90046001600160a01b031681565b610521601e5481565b610555610a19366004613e99565b600c602090815260009283526040909220815180830184018051928152908401929093019190912091525460ff1681565b601d546109229063ffffffff1681565b61052160155481565b6021546105559060ff1681565b61052160065481565b61052160055481565b6108e9610a90366004613c13565b612600565b610521610aa3366004613fbd565b61262b565b610461610ab6366004613bf8565b612694565b610555610ac9366004613c13565b61270a565b60026001541415610afa5760405162461bcd60e51b8152600401610af190614125565b60405180910390fd5b6002600155601854610b3890600160a01b900462ffffff167f0000000000000000000000000000000000000000000000000000000000000000614172565b4211610b565760405162461bcd60e51b8152600401610af19061418a565b6021543390600161010090910460ff16151514610bac5760405162461bcd60e51b8152602060048201526014602482015273757365207769746864726177476976656177617960601b6044820152606401610af1565b60025415610bed5760405162461bcd60e51b815260206004820152600e60248201526d6e6f74206120676976656177617960901b6044820152606401610af1565b610bf981858585611ee1565b610c155760405162461bcd60e51b8152600401610af1906141d0565b6001600160a01b03811660009081526019602052604090205460ff16610c5c576001600160a01b0381166000908152601f6020908152604080832085905590805290208290555b6000610c6782612462565b905080610cb65760405162461bcd60e51b815260206004820152601a60248201527f776974686472617720676976656177617920616d6f756e7420300000000000006044820152606401610af1565b610cbf8161272a565b505060018055505050565b610cd2612765565b6001600160a01b038116610d155760405162461bcd60e51b815260206004820152600a602482015269183c1810333ab73232b960b11b6044820152606401610af1565b601780546001600160a01b0319166001600160a01b0383169081179091556040517f73e0366d7ceb5a21fb27f8b2aa2720e2a9dee755bd85bfb5dbccf2830753b02290600090a250565b610d67612765565b601880546001600160a01b0319166001600160a01b0383169081179091556040517f8d6a45a8c576788574f55a329c7f7769138a196f3e16506351cab562311c2be390600090a250565b6018546001600160a01b0316336001600160a01b03161480610ddd57506000546001600160a01b031633145b610e295760405162461bcd60e51b815260206004820152601e60248201527f63616c6c6572206e6f742077697468647261776572206f72206f776e657200006044820152606401610af1565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610e8b57600080fd5b505afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec391906141f7565b905081811015610f1f5760405162461bcd60e51b815260206004820152602160248201527f4e6f20656e6f756768206275726e20746f6b656e7320746f20776974686472616044820152607760f81b6064820152608401610af1565b610f537f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633846127c1565b604080518381526000602082015233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56891015b60405180910390a25050565b60405162461bcd60e51b815260206004820152604860248201527f557365207769746864726177476976656177617928627974657333325b5d206360448201527f616c6c64617461206d65726b6c6550726f6f662c2075696e7432353620616c6c6064820152676f636174696f6e2960c01b608482015260a401610af1565b6040516bffffffffffffffffffffffff19606085901b166020820152600090819060340160405160208183030381529060405280519060200120905061108f84848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050601e549150849050612829565b9150505b9392505050565b600260015414156110bd5760405162461bcd60e51b8152600401610af190614125565b60026001556018546110fb90600160a01b900462ffffff167f0000000000000000000000000000000000000000000000000000000000000000614172565b42116111195760405162461bcd60e51b8152600401610af19061418a565b6021543390610100900460ff16156111735760405162461bcd60e51b815260206004820152601a60248201527f75736520776974686472617747697665617761795665737465640000000000006044820152606401610af1565b600254156111b45760405162461bcd60e51b815260206004820152600e60248201526d6e6f74206120676976656177617960901b6044820152606401610af1565b6001600160a01b03811660009081526019602052604090205460ff16156112115760405162461bcd60e51b815260206004820152601160248201527030b63932b0b23c903bb4ba34323930bbb760791b6044820152606401610af1565b61121d81858585611ee1565b6112395760405162461bcd60e51b8152600401610af1906141d0565b6001600160a01b03811660009081526019602052604081205460ff1661128257506001600160a01b0381166000908152601f602090815260408083208590559080529020829055815b80610cb65760405162461bcd60e51b815260206004820152601a60248201527f776974686472617720676976656177617920616d6f756e7420300000000000006044820152606401610af1565b6112d7612765565b60128054911515600160201b0264ff0000000019909216919091179055565b6112fe612765565b600581905560405181907f4d893dbff365afe590ba8bf0f5d258598f5e63fde5b989dcd4902cf89d403c2f90600090a250565b611339612765565b60185461137290600160a01b900462ffffff167f0000000000000000000000000000000000000000000000000000000000000000614172565b42116113905760405162461bcd60e51b8152600401610af19061418a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614156113cf57600080fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b15801561141157600080fd5b505afa158015611425573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144991906141f7565b905061145f6001600160a01b03831633836127c1565b60405181815233907fb1d34d1c064a5cb36c65797ef779e448eefccf2b978edbcfd206cc687c8cea5a90602001610f87565b6018546001600160a01b0316336001600160a01b031614806114bd57506000546001600160a01b031633145b6115095760405162461bcd60e51b815260206004820152601e60248201527f63616c6c6572206e6f742077697468647261776572206f72206f776e657200006044820152606401610af1565b60185461154290600160a01b900462ffffff167f0000000000000000000000000000000000000000000000000000000000000000614172565b42116115605760405162461bcd60e51b8152600401610af19061418a565b601b5460ff16156115a45760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481c1d5b1b195960921b6044820152606401610af1565b601b805460ff191660011790556040516370a0823160e01b81523060048201526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561161357600080fd5b505afa158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b91906141f7565b90506116817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633836127c1565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156116e357600080fd5b505afa1580156116f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171b91906141f7565b9050600061172761283f565b9050600082601a541061173c57601a5461173e565b825b9050600061174c8383614210565b9050611784335b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690836127c1565b604080518681526020810183905233917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a25050505050565b6117ce612765565b7f0000000000000000000000000000000000000000000000000000000000000000421061180d5760405162461bcd60e51b8152600401610af190614227565b602180549115156101000261ff0019909216919091179055565b60185461186090600160a01b900462ffffff167f0000000000000000000000000000000000000000000000000000000000000000614172565b421161187e5760405162461bcd60e51b8152600401610af19061418a565b600260015414156118a15760405162461bcd60e51b8152600401610af190614125565b60026001819055546118ec5760405162461bcd60e51b8152602060048201526014602482015273757365207769746864726177476976656177617960601b6044820152606401610af1565b3360006118f882612462565b9050806119425760405162461bcd60e51b81526020600482015260186024820152773737903a37b5b2b7103a37903132903bb4ba34323930bbb760411b6044820152606401610af1565b61194b8161272a565b505060018055565b60606016805480602002602001604051908101604052809291908181526020016000905b828210156119b957600084815260209081902060408051808201909152600285029091018054825260019081015460ff16828401529083529092019101611977565b50505050905090565b6119ca612765565b6007805460ff19168215159081179091556040517f8532fbe9215fa540def4b8f1b1c93a28d2a0da17b572b9ec18d789983fd30a2390600090a250565b60405162461bcd60e51b815260206004820152605b60248201527f5573652077686974656c69737465644275726e2875696e74323536206275726e60448201527f416d6f756e742c20627974657333325b5d2063616c6c64617461206d65726b6c60648201527f6550726f6f662c2075696e7432353620616c6c6f636174696f6e290000000000608482015260a401610af1565b601d54600160201b90046001600160a01b0316336001600160a01b03161480611ace57506000546001600160a01b031633145b611aea5760405162461bcd60e51b8152600401610af190614256565b601e81905560405181907fc504a95022b9d01b3024e95b0a85c200d0c538f417160776512b95fcbf7b2daa90600090a250565b611b25612765565b601d8054640100000000600160c01b031916600160201b6001600160a01b038416908102919091179091556040517f7aba5fc71e3607d34203924738fbacc00b5782879615f86db108794b4bdcc95b90600090a250565b427f00000000000000000000000000000000000000000000000000000000000000001115611be25760405162461bcd60e51b815260206004820152601360248201527231b630b4b6903430b9903737ba103132b3bab760691b6044820152606401610af1565b7f0000000000000000000000000000000000000000000000000000000000000000421115611c3f5760405162461bcd60e51b815260206004820152600a60248201526931b630b4b69037bb32b960b11b6044820152606401610af1565b6022548215611c7d57611c5433858585611ee1565b611c705760405162461bcd60e51b8152600401610af1906141d0565b602254821115611c7d5750805b6000611c8a335b8361262b565b9050611c96868261287a565b505050505050565b60168181548110611cae57600080fd5b60009182526020909120600290910201805460019091015490915060ff1682565b6000426015541115611d3657601354601554611ceb9190614210565b6001600160a01b038316600090815260146020526040902054601354611d119190612963565b611d1b9042614210565b611d25908661429a565b611d2f91906142cf565b9050611093565b6016548015801590611d755750426016611d51600184614210565b81548110611d6157611d616142e3565b906000526020600020906002020160000154115b15611e85576000805b828160ff161015611e4f574260168260ff1681548110611da057611da06142e3565b9060005260206000209060020201600001541115611dbd57611e4f565b60168160ff1681548110611dd357611dd36142e3565b600091825260208083206002909202909101546001600160a01b038816835260149091526040909120541015611e3d5760168160ff1681548110611e1957611e196142e3565b6000918252602090912060016002909202010154611e3a9060ff16836142f9565b91505b80611e478161431e565b915050611d7e565b5060ff8116611e6357600092505050611093565b6064611e7260ff83168861429a565b611e7c91906142cf565b92505050611093565b50919392505050565b60405162461bcd60e51b815260206004820152602260248201527f6f776e6572736869702072656e756e63696174696f6e2069732064697361626c604482015261195960f21b6064820152608401610af1565b6040516bffffffffffffffffffffffff19606086901b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611f6585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050601e549150849050612829565b9695505050505050565b611f77612765565b7f00000000000000000000000000000000000000000000000000000000000000004210611fb65760405162461bcd60e51b8152600401610af190614227565b6021805460ff1916911515919091179055565b601d54600160201b90046001600160a01b0316336001600160a01b03161480611ffc57506000546001600160a01b031633145b6120185760405162461bcd60e51b8152600401610af190614256565b600254612025908261429a565b600681905560045411156120ac5760405162461bcd60e51b815260206004820152604260248201527f4d6178207075726368617361626c652073686f756c64206e6f74206265206c6f60448201527f776572207468616e2074686520616d6f756e74206f6620746f6b656e206275726064820152611b9960f21b608482015260a401610af1565b60405181907f08820e3192e0e082a1539c8afa824d03073788ccc17fbdf2137d2b7a8ecfd93c90600090a250565b6120e2612765565b7f000000000000000000000000000000000000000000000000000000000000000042106121215760405162461bcd60e51b8152600401610af190614227565b61212d8484848461297a565b50505050565b600b602052816000526040600020818154811061214f57600080fd5b9060005260206000200160009150915050805461216b9061433e565b80601f01602080910402602001604051908101604052809291908181526020018280546121979061433e565b80156121e45780601f106121b9576101008083540402835291602001916121e4565b820191906000526020600020905b8154815290600101906020018083116121c757829003601f168201915b505050505081565b6121f4612765565b7f000000000000000000000000000000000000000000000000000000000000000042106122335760405162461bcd60e51b8152600401610af190614227565b61226a61226562ffffff83167f0000000000000000000000000000000000000000000000000000000000000000614172565b601355565b61227381612d61565b50565b427f000000000000000000000000000000000000000000000000000000000000000011156122dc5760405162461bcd60e51b815260206004820152601360248201527231b630b4b6903430b9903737ba103132b3bab760691b6044820152606401610af1565b7f00000000000000000000000000000000000000000000000000000000000000004211156123395760405162461bcd60e51b815260206004820152600a60248201526931b630b4b69037bb32b960b11b6044820152606401610af1565b60225484156123775761234e33878787611ee1565b61236a5760405162461bcd60e51b8152600401610af1906141d0565b6022548411156123775750825b600061238233611c84565b90506123c5888286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e5d92505050565b5050505050505050565b601d54600160201b90046001600160a01b0316336001600160a01b0316148061240257506000546001600160a01b031633145b61241e5760405162461bcd60e51b8152600401610af190614256565b7f0000000000000000000000000000000000000000000000000000000000000000421061245d5760405162461bcd60e51b8152600401610af190614227565b602255565b6001600160a01b03811660009081526020808052604080832054601f90925282205461248f919084611ccf565b92915050565b6017546001600160a01b0316336001600160a01b0316146124ec5760405162461bcd60e51b815260206004820152601160248201527031b0b63632b9103737ba10333ab73232b960791b6044820152606401610af1565b7f0000000000000000000000000000000000000000000000000000000000000000421061252b5760405162461bcd60e51b8152600401610af190614227565b6125607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163330846131f3565b80601a60008282546125729190614172565b909155505060405181815233907fda8220a878ff7a89474ccffdaa31ea1ed1ffbb0207d5051afccc4fbaf81f9bcd906020015b60405180910390a250565b6125b8612765565b7f000000000000000000000000000000000000000000000000000000000000000042106125f75760405162461bcd60e51b8152600401610af190614227565b6122738161322b565b600d818154811061261057600080fd5b90600052602060002001600091509050805461216b9061433e565b600080670de0b6b3a76400006001600160401b03168360025461264e919061429a565b61265891906142cf565b905080600354101561266957506003545b6001600160a01b03841660009081526008602052604090205461268c9082614210565b949350505050565b61269c612765565b6001600160a01b0381166127015760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af1565b61227381613375565b60006002548261271a9190614379565b15801561248f5750506002541090565b336000908152601460209081526040808320429055601f90915281208054839290612756908490614210565b909155506122739050816133c5565b6000546001600160a01b031633146127bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610af1565b565b6040516001600160a01b03831660248201526044810182905261282490849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526134cf565b505050565b60008261283685846135a1565b14949350505050565b6000600254600014156128525750600090565b600254601c5461286b90670de0b6b3a76400009061429a565b61287591906142cf565b905090565b60215460ff16156128ee5761288e8261270a565b6128ee5760405162461bcd60e51b815260206004820152602b60248201527f63616e206f6e6c792062757920696e746567657220616d6f756e74206f66206360448201526a6c61696d20746f6b656e7360a81b6064820152608401610af1565b81601c60008282546129009190614172565b90915550612910905082826135ee565b6002543360009081526008602052604081205490919061293990670de0b6b3a76400009061429a565b61294391906142cf565b33600090815260208080526040808320849055601f909152902055505050565b6000818310156129735781611093565b5090919050565b612982612765565b601254600160201b900460ff168061299b575060135442105b6129e75760405162461bcd60e51b815260206004820152601d60248201527f43616e277420656469742076657374696e672061667465722073616c650000006044820152606401610af1565b828114612a365760405162461bcd60e51b815260206004820152601b60248201527f646174657320616e642070637420646f65736e2774206d6174636800000000006044820152606401610af1565b82612a745760405162461bcd60e51b815260206004820152600e60248201526d696e70757420697320656d70747960901b6044820152606401610af1565b6064831115612ac55760405162461bcd60e51b815260206004820152601e60248201527f696e707574206c656e6774682063616e6e6f74206578636565642031303000006044820152606401610af1565b612ad160166000613a6b565b60008060135486866000818110612aea57612aea6142e3565b9050602002013511612b5b5760405162461bcd60e51b815260206004820152603460248201527f666972737420636c61696d2074696d65206973206265666f726520656e642074604482015273696d65202b2077697468647261772064656c617960601b6064820152608401610af1565b60005b85811015612cbe57868682818110612b7857612b786142e3565b905060200201358310612bcd5760405162461bcd60e51b815260206004820152601c60248201527f6461746573206e6f7420696e20617363656e64696e67206f72646572000000006044820152606401610af1565b868682818110612bdf57612bdf6142e3565b905060200201359250848482818110612bfa57612bfa6142e3565b9050602002016020810190612c0f919061438d565b612c1990836142f9565b915060166040518060400160405280898985818110612c3a57612c3a6142e3565b905060200201358152602001878785818110612c5857612c586142e3565b9050602002016020810190612c6d919061438d565b60ff9081169091528254600181810185556000948552602094859020845160029093020191825593909201519190920180549190921660ff1990911617905580612cb6816143b0565b915050612b5e565b50612ccd6312d1d76c83614210565b60135411612ced5760405162461bcd60e51b8152600401610af1906143cb565b8060ff16606414612d545760405162461bcd60e51b815260206004820152602b60248201527f746f74616c20696e7075742070657263656e7461676520646f65736e2774206560448201526a07175616c20746f203130360ac1b6064820152608401610af1565b5050600060155550505050565b612d69612765565b7f00000000000000000000000000000000000000000000000000000000000000004210612da85760405162461bcd60e51b8152600401610af190614227565b6309679a3662ffffff821610612e0f5760405162461bcd60e51b815260206004820152602660248201527f776974686472617744656c61792068617320746f2062652077697468696e203560448201526520796561727360d01b6064820152608401610af1565b6018805462ffffff60a01b1916600160a01b62ffffff8416908102919091179091556040517f0dac7b34fe917a51c24c51f379615699f5c23ce9168eaed469bc161c9002860890600090a250565b6000815111612e9e5760405162461bcd60e51b815260206004820152600d60248201526c636f646520697320656d70747960981b6044820152606401610af1565b604081511115612ee35760405162461bcd60e51b815260206004820152601060248201526f636f646520697320746f6f206c6f6e6760801b6044820152606401610af1565b612eed838361287a565b600e81604051612efd9190614415565b9081526040519081900360200190205460ff16612f8b576001600e82604051612f269190614415565b90815260405160209181900382019020805460ff191692151592909217909155600d80546001810182556000919091528251612f89927fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb590920191840190613a8c565b505b336000908152600c6020526040908190209051612fa9908390614415565b9081526040519081900360200190205460ff166130ae57601154336000908152600b6020526040902054106130205760405162461bcd60e51b815260206004820152601f60248201527f6d61782070726f6d6f20636f64652070657220757365722072656163686564006044820152606401610af1565b336000908152600c602052604090819020905160019190613042908490614415565b908152604051908190036020019020805491151560ff19909216919091179055600b600061306d3390565b6001600160a01b03168152602080820192909252604001600090812080546001810182559082529082902083516130ac93919092019190840190613a8c565b505b82600f826040516130bf9190614415565b908152602001604051809103902060008282546130dc9190614172565b9091555050336000908152600a60205260409081902090516130ff908390614415565b9081526020016040518091039020546000141561314b5760016010826040516131289190614415565b908152602001604051809103902060008282546131459190614172565b90915550505b336000908152600960205260408120805485929061316a908490614172565b9091555050336000908152600a6020526040908190209051849190613190908490614415565b908152602001604051809103902060008282546131ad9190614172565b909155505060405133907fd482b7f00440fd5a8a31c2e6773a9ad935ff45e3579eb8c9d8468fab11f470bb906131e69086908590614431565b60405180910390a2505050565b6040516001600160a01b038085166024830152831660448201526064810182905261212d9085906323b872dd60e01b906084016127ed565b613233612765565b601254600160201b900460ff168061324c575060135442105b6132985760405162461bcd60e51b815260206004820152601d60248201527f43616e277420656469742076657374696e672061667465722073616c650000006044820152606401610af1565b60135481116133085760405162461bcd60e51b815260206004820152603660248201527f76657374696e6720656e642074696d652068617320746f206265206166746572604482015275207769746864726177616c2073746172742074696d6560501b6064820152608401610af1565b6133166312d1d76c82614210565b601354116133365760405162461bcd60e51b8152600401610af1906143cb565b601581905561334760166000613a6b565b60405181907f83d190eb78c1206ea1abb0222d475a5f70b7f63bcd534ab65e9404b39016c7a490600090a250565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8061340d5760405162461bcd60e51b81526020600482015260186024820152773737903a37b5b2b7103a37903132903bb4ba34323930bbb760411b6044820152606401610af1565b3360009081526019602052604090205460ff1661349457601d80546001919060009061344090849063ffffffff1661444a565b92506101000a81548163ffffffff021916908363ffffffff16021790555060016019600061346b3390565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b61349d33611753565b60405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364906020016125a5565b6000613524826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138c39092919063ffffffff16565b80519091501561282457808060200190518101906135429190614472565b6128245760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610af1565b600081815b84518110156135e6576135d2828683815181106135c5576135c56142e3565b60200260200101516138d2565b9150806135de816143b0565b9150506135a6565b509392505050565b600260015414156136115760405162461bcd60e51b8152600401610af190614125565b600260015560075460ff161561365a5760405162461bcd60e51b815260206004820152600e60248201526d189d5c9b881a5cc81a185b1d195960921b6044820152606401610af1565b6000600254116136a05760405162461bcd60e51b81526020600482015260116024820152706275726e2072617465206973207a65726f60781b6044820152606401610af1565b6005548210156136e55760405162461bcd60e51b815260206004820152601060248201526f30b6b7bab73a103132b637bb9036b4b760811b6044820152606401610af1565b8082111561372b5760405162461bcd60e51b8152602060048201526013602482015272195e18d959591cc81b585e081c185e5b595b9d606a1b6044820152606401610af1565b8161376e5760405162461bcd60e51b81526020600482015260136024820152721e995c9bc81c185e5b595b9d08185b5bdd5b9d606a1b6044820152606401610af1565b81600460008282546137809190614172565b90915550506006541580613798575060045460065410155b6137dd5760405162461bcd60e51b8152602060048201526016602482015275657863656564206d6178207075726368617361626c6560501b6044820152606401610af1565b3360009081526008602052604090205461382c57601280546001919060009061380d90849063ffffffff1661444a565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b336000908152600860205260408120805484929061384b908490614172565b9091555061388690507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163330856131f3565b60405182815233907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59060200160405180910390a2505060018055565b606061268c8484600085613901565b60008183106138ee576000828152602084905260409020611093565b6000838152602083905260409020611093565b6060824710156139625760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610af1565b6001600160a01b0385163b6139b95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610af1565b600080866001600160a01b031685876040516139d59190614415565b60006040518083038185875af1925050503d8060008114613a12576040519150601f19603f3d011682016040523d82523d6000602084013e613a17565b606091505b5091509150613a27828286613a32565b979650505050505050565b60608315613a41575081611093565b825115613a515782518084602001fd5b8160405162461bcd60e51b8152600401610af1919061403f565b50805460008255600202906000526020600020908101906122739190613b10565b828054613a989061433e565b90600052602060002090601f016020900481019282613aba5760008555613b00565b82601f10613ad357805160ff1916838001178555613b00565b82800160010185558215613b00579182015b82811115613b00578251825591602001919060010190613ae5565b50613b0c929150613b31565b5090565b5b80821115613b0c576000815560018101805460ff19169055600201613b11565b5b80821115613b0c5760008155600101613b32565b60008083601f840112613b5857600080fd5b5081356001600160401b03811115613b6f57600080fd5b6020830191508360208260051b8501011115613b8a57600080fd5b9250929050565b600080600060408486031215613ba657600080fd5b83356001600160401b03811115613bbc57600080fd5b613bc886828701613b46565b909790965060209590950135949350505050565b80356001600160a01b0381168114613bf357600080fd5b919050565b600060208284031215613c0a57600080fd5b61109382613bdc565b600060208284031215613c2557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613c5357600080fd5b81356001600160401b0380821115613c6d57613c6d613c2c565b604051601f8301601f19908116603f01168101908282118183101715613c9557613c95613c2c565b81604052838152866020858801011115613cae57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215613ce057600080fd5b81356001600160401b03811115613cf657600080fd5b61268c84828501613c42565b60008060208385031215613d1557600080fd5b82356001600160401b03811115613d2b57600080fd5b613d3785828601613b46565b90969095509350505050565b600080600060408486031215613d5857600080fd5b613d6184613bdc565b925060208401356001600160401b03811115613d7c57600080fd5b613d8886828701613b46565b9497909650939450505050565b801515811461227357600080fd5b600060208284031215613db557600080fd5b813561109381613d95565b602080825282518282018190526000919060409081850190868401855b82811015613e055781518051855286015160ff16868501529284019290850190600101613ddd565b5091979650505050505050565b60008060008060608587031215613e2857600080fd5b8435935060208501356001600160401b03811115613e4557600080fd5b613e5187828801613b46565b9598909750949560400135949350505050565b600080600060608486031215613e7957600080fd5b8335925060208401359150613e9060408501613bdc565b90509250925092565b60008060408385031215613eac57600080fd5b613eb583613bdc565b915060208301356001600160401b03811115613ed057600080fd5b613edc85828601613c42565b9150509250929050565b60008060008060608587031215613efc57600080fd5b613f0585613bdc565b935060208501356001600160401b03811115613e4557600080fd5b600080600060408486031215613f3557600080fd5b8335925060208401356001600160401b03811115613d7c57600080fd5b60008060008060408587031215613f6857600080fd5b84356001600160401b0380821115613f7f57600080fd5b613f8b88838901613b46565b90965094506020870135915080821115613fa457600080fd5b50613fb187828801613b46565b95989497509550505050565b60008060408385031215613fd057600080fd5b613fd983613bdc565b946020939093013593505050565b60005b83811015614002578181015183820152602001613fea565b8381111561212d5750506000910152565b6000815180845261402b816020860160208601613fe7565b601f01601f19169290920160200192915050565b6020815260006110936020830184614013565b60006020828403121561406457600080fd5b813562ffffff8116811461109357600080fd5b6000806000806000806080878903121561409057600080fd5b8635955060208701356001600160401b03808211156140ae57600080fd5b6140ba8a838b01613b46565b90975095506040890135945060608901359150808211156140da57600080fd5b818901915089601f8301126140ee57600080fd5b8135818111156140fd57600080fd5b8a602082850101111561410f57600080fd5b6020830194508093505050509295509295509295565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156141855761418561415c565b500190565b60208082526026908201527f63616e2774207769746864726177206265666f726520636c61696d20697320736040820152651d185c9d195960d21b606082015260800190565b6020808252600d908201526c1c1c9bdbd9881a5b9d985b1a59609a1b604082015260600190565b60006020828403121561420957600080fd5b5051919050565b6000828210156142225761422261415c565b500390565b60208082526015908201527418db185a5b48185b1c9958591e481cdd185c9d1959605a1b604082015260600190565b60208082526024908201527f63616c6c6572206e6f742077686974656c69737420736574746572206f72206f6040820152633bb732b960e11b606082015260800190565b60008160001904831182151516156142b4576142b461415c565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826142de576142de6142b9565b500490565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff84168060ff038211156143165761431661415c565b019392505050565b600060ff821660ff8114156143355761433561415c565b60010192915050565b600181811c9082168061435257607f821691505b6020821081141561437357634e487b7160e01b600052602260045260246000fd5b50919050565b600082614388576143886142b9565b500690565b60006020828403121561439f57600080fd5b813560ff8116811461109357600080fd5b60006000198214156143c4576143c461415c565b5060010190565b6020808252602a908201527f76657374696e6720656e642074696d652068617320746f2062652077697468696040820152696e20313020796561727360b01b606082015260800190565b60008251614427818460208701613fe7565b9190910192915050565b82815260406020820152600061268c6040830184614013565b600063ffffffff8083168185168083038211156144695761446961415c565b01949350505050565b60006020828403121561448457600080fd5b815161109381613d9556fea2646970667358221220d130cb916628c8cc5197520d56014cad59244ea2e77c8d6c80d9bacffa6e8c3d64736f6c6343000809003300000000000000000000000000000000000000000000027f231e45e71f78000000000000000000000000000091e2304f860914348d7b1b1a91cf1cc3d3cf32110000000000000000000000000b15ddf19d47e6a86a56148fb4afffc6929bcb890000000000000000000000000fba611eef20ea7e35db8fb0a0c42f71f574380400000000000000000000000000000000000000000000000000000000677ced10000000000000000000000000000000000000000000000000000000006780e19000000000000000000000000000000000000000ffffffffffffffffffffffffff