0 txs
142.3k calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
botProtectionDurationInSeconds
viewfunction botProtectionDurationInSeconds() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
fundedDate
viewfunction fundedDate() view returns (uint32)
isLiquidityPool
viewfunction isLiquidityPool(address queryAddress_) view returns (bool)
liquidityPools
viewfunction liquidityPools() view returns (address[] liquidityPools_)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pairToken
viewfunction pairToken() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
projectBuyTaxBasisPoints
viewfunction projectBuyTaxBasisPoints() view returns (uint16)
projectSellTaxBasisPoints
viewfunction projectSellTaxBasisPoints() view returns (uint16)
projectTaxPaid
viewfunction projectTaxPaid() view returns (uint128)
projectTaxRecipient
viewfunction projectTaxRecipient() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalBuyTaxBasisPoints
viewfunction totalBuyTaxBasisPoints() view returns (uint256)
totalSellTaxBasisPoints
viewfunction totalSellTaxBasisPoints() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
uniswapV2Pair
viewfunction uniswapV2Pair() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
addInitialLiquidity
nonpayablefunction addInitialLiquidity(address lpOwner)
addLiquidityPool
nonpayablefunction addLiquidityPool(address newLiquidityPool_)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(uint256 value)
burnFrom
nonpayablefunction burnFrom(address account, uint256 value)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address[3] integrationAddresses_, bytes baseParams_, uint256 lpSupply_, bytes taxParams_)
mint
nonpayablefunction mint(address account, uint256 amount)
removeLiquidityPool
nonpayablefunction removeLiquidityPool(address removedLiquidityPool_)
renounceOwnership
nonpayablefunction renounceOwnership()
setProjectTaxRates
nonpayablefunction setProjectTaxRates(uint16 newProjectBuyTaxBasisPoints_, uint16 newProjectSellTaxBasisPoints_)
setProjectTaxRecipient
nonpayablefunction setProjectTaxRecipient(address projectTaxRecipient_)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawERC20
nonpayablefunction withdrawERC20(address token_, uint256 amount_)
withdrawETH
nonpayablefunction withdrawETH(uint256 amount_)
withdrawTax
nonpayablefunction withdrawTax()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
AutoSwapThresholdUpdated
event AutoSwapThresholdUpdated(uint256 oldThreshold, uint256 newThreshold)
ExternalCallError
event ExternalCallError(uint256 identifier)
Initialized
event Initialized(uint64 version)
InitialLiquidityAdded
event InitialLiquidityAdded(uint256 tokenA, uint256 tokenB, uint256 lpToken)
LimitsUpdated
event LimitsUpdated(uint256 oldMaxTokensPerTransaction, uint256 newMaxTokensPerTransaction, uint256 oldMaxTokensPerWallet, uint256 newMaxTokensPerWallet)
LiquidityPoolAdded
event LiquidityPoolAdded(address addedPool)
LiquidityPoolCreated
event LiquidityPoolCreated(address addedPool)
LiquidityPoolRemoved
event LiquidityPoolRemoved(address removedPool)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
ProjectTaxBasisPointsChanged
event ProjectTaxBasisPointsChanged(uint256 oldBuyBasisPoints, uint256 newBuyBasisPoints, uint256 oldSellBasisPoints, uint256 newSellBasisPoints)
ProjectTaxRecipientUpdated
event ProjectTaxRecipientUpdated(address treasury)
RevenueAutoSwap
event RevenueAutoSwap()
TaxWithdrawn
event TaxWithdrawn(address indexed recipient, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AllowanceDecreasedBelowZero
error AllowanceDecreasedBelowZero()
ApproveFromTheZeroAddress
error ApproveFromTheZeroAddress()
ApproveToTheZeroAddress
error ApproveToTheZeroAddress()
BurnExceedsBalance
error BurnExceedsBalance()
BurnFromTheZeroAddress
error BurnFromTheZeroAddress()
CallerIsNotAdminNorFactory
error CallerIsNotAdminNorFactory()
CannotWithdrawThisToken
error CannotWithdrawThisToken()
FailedInnerCall
error FailedInnerCall()
InitialLiquidityAlreadyAdded
error InitialLiquidityAlreadyAdded()
InitialLiquidityNotYetAdded
error InitialLiquidityNotYetAdded()
InsufficientAllowance
error InsufficientAllowance()
InvalidAddress
error InvalidAddress()
InvalidInitialization
error InvalidInitialization()
InvalidTaxRate
error InvalidTaxRate()
LiquidityPoolAlreadyExists
error LiquidityPoolAlreadyExists()
LiquidityPoolCannotBeAddressZero
error LiquidityPoolCannotBeAddressZero()
LiquidityPoolDoesNotExist
error LiquidityPoolDoesNotExist()
LiquidityPoolMustBeAContractAddress
error LiquidityPoolMustBeAContractAddress()
MintToZeroAddress
error MintToZeroAddress()
NoTaxToWithdraw
error NoTaxToWithdraw()
NotInitializing
error NotInitializing()
NoTokenForLiquidityPair
error NoTokenForLiquidityPair()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TransferAmountExceedsBalance
error TransferAmountExceedsBalance()
TransferFailed
error TransferFailed()
TransferFromZeroAddress
error TransferFromZeroAddress()
TransferToZeroAddress
error TransferToZeroAddress()
creation bytecode
0x608080604052346100b8577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100a957506001600160401b036002600160401b031982821601610064575b60405161268f90816100bd8239f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610055565b63f92ee8a960e01b8152600490fd5b5f80fdfe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c908163038272b614611c635750806306fdde0314611bda578063095ea7b314611bb457806310b828c914611b8e57806318160ddd14611b7157806323b872dd14611b1e578063313ce56714611b035780633950935114611ab65780633de35b7914611a8e57806340c10f1914611a3057806342966c6814611a1357806343c0f4cf146119eb57806349bd5a5e146119c457806359cabbe41461143a57806363a9c1f21461141d57806370a08231146113e5578063715018a61461136857806379ba50971461131757806379cc6790146112e75780638da5cb5b146112b3578063936b2934146111af57806395d89b41146110f55780639808751d1461105f578063a1db978214610fe7578063a457c2d714610f85578063a45cae02146102ef578063a9059cbb14610f32578063ae22107f14610e95578063b2c5c9eb14610e71578063d6efd7c314610dd4578063d78214e014610574578063dd62ed3e14610527578063dfa20f0a1461046a578063e30c397814610436578063e85455d714610409578063ea8b2424146103e1578063ee6a934c14610313578063eeae0f97146102ef578063f14210a6146102685763f2fde38b146101e0575f61000f565b34610264576020366003190112610264576101f9611cd1565b61020161227b565b5f8051602061263a83398151915280546001600160a01b0319166001600160a01b039283169081179091555f805160206125fa833981519152549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b5f80fd5b34610264576020366003190112610264575f805160206125fa83398151915254336001600160a01b03918216141590816102e0575b506102ce575f808080600435335af16102b4611e22565b50156102bc57005b6040516312171d8360e31b8152600490fd5b60405163faa39fbf60e01b8152600490fd5b600d541633141590508161029d565b34610264575f36600319011261026457602061ffff60025460c81c16604051908152f35b346102645760203660031901126102645761032c611cd1565b5f805160206125fa833981519152546001600160a01b03908116331415806103d3575b6102ce5781169081156103c1573b156103af5761036b81612543565b1561039d5760207fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d8991604051908152a1005b604051631da01aeb60e11b8152600490fd5b604051630f9da0c760e41b8152600490fd5b60405163b47cdee560e01b8152600490fd5b503381600d5416141561034f565b34610264575f366003190112610264576004546040516001600160a01b039091168152602090f35b3461026457602036600319011261026457602061042c610427611cd1565b611df3565b6040519015158152f35b34610264575f366003190112610264575f8051602061263a833981519152546040516001600160a01b039091168152602090f35b34610264575f366003190112610264575f805160206125fa833981519152546001600160a01b0390811633141580610519575b6102ce576005546001600160801b03811691908215610507576001600160801b0319166005556004547f7c92e98c5b2af24a95052353679ff5120823a95efc7ab8c5ffbd698449edbce2916020916104f9908590831630612306565b6004541692604051908152a2005b604051630f36cfff60e01b8152600490fd5b503381600d5416141561049d565b3461026457604036600319011261026457610540611cd1565b610548611ce7565b9060018060a01b038091165f52600a60205260405f2091165f52602052602060405f2054604051908152f35b346102645760c03660031901126102645736602312156102645760405161059a81611cfd565b80606436606411610264576004915b818310610db457836064356001600160401b038111610264576105d0903690600401611d54565b60a4356001600160401b038111610264576105ef903690600401611d54565b907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00928354916001600160401b03831680159081610da4575b6001149081610d9a575b159081610d91575b50610d7f5760016001600160401b0319841617855560ff8360401c1615610d60575b81516001600160a01b0316158015610d4b575b8015610d36575b610d2457815161068e906001600160a01b031661229b565b8051810190604081602084019303126102645760208101516001600160401b038111610264578260206106c3928401016123a7565b916040820151916001600160401b038311610264576106e592016020016123a7565b8051906001600160401b038211610c0f578190610703600754611d9a565b601f8111610cb6575b50602090601f8311600114610c2e575f92610c23575b50508160011b915f199060031b1c1916176007555b8051906001600160401b038211610c0f578190610755600654611d9a565b601f8111610ba1575b50602090601f8311600114610b1d575f92610b12575b50508160011b915f199060031b1c1916176006555b602081015160028054610100600160a81b03191660089290921b610100600160a81b031691909117905560400151600380546001600160a01b03199081166001600160a01b039390931692909217905582519092906060908201829003126102645761082361081760606040519361080085611cfd565b602081015185526040810151602086015201611ddf565b918260408201526123ec565b151560ff80196002541691161760025560018060a01b0316826004541617600455608435610b01575b60025460405163c45a015560e01b80825260089290921c6001600160a01b03169391602082600481885afa918215610a3a575f92610ac5575b5060018060a01b0360035416906020604051809463e6a4390560e01b825281806108b387306004840161222e565b03916001600160a01b03165afa928315610a3a575f93610a89575b506001600160a01b03831615610960575b5060ff9450506001600160a01b03166108f781612543565b50815f5416175f553390600d541617600d55600160a01b8260a01b19600354161760035560401c161561092657005b805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b602091925060046040518097819382525afa938415610a3a575f94610a45575b506109a65f946020926040519687809481936364e329cb60e11b8352306004840161222e565b03926001600160a01b03165af18015610a3a575f90610a00575b6040516001600160a01b038216815260ff94507f969ffc8569f9af3993220e04ac05164e5db4e3d9f8b1a47f64e7de9a04b8ea2f90602090a185806108df565b506020833d602011610a32575b81610a1a60209383611d18565b8101031261026457610a2d60ff93611ddf565b6109c0565b3d9150610a0d565b6040513d5f823e3d90fd5b93506020843d602011610a81575b81610a6060209383611d18565b81010312610264576109a6602091610a785f96611ddf565b95509150610980565b3d9150610a53565b9092506020813d602011610abd575b81610aa560209383611d18565b8101031261026457610ab690611ddf565b91876108ce565b3d9150610a98565b9091506020813d602011610af9575b81610ae160209383611d18565b8101031261026457610af290611ddf565b9086610885565b3d9150610ad4565b610b0d60843530612148565b61084c565b015190508680610774565b60065f9081527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9350601f198516905b818110610b895750908460019594939210610b71575b505050811b01600655610789565b01515f1960f88460031b161c19169055868080610b63565b92936020600181928786015181550195019301610b4d565b60065f529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c81019160208510610c05575b90601f859493920160051c01905b818110610bf7575061075e565b5f8155849350600101610bea565b9091508190610bdc565b634e487b7160e01b5f52604160045260245ffd5b015190508780610722565b60075f90815293507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68891905b601f1984168510610c9b576001945083601f19811610610c83575b505050811b01600755610737565b01515f1960f88460031b161c19169055878080610c75565b81810151835560209485019460019093019290910190610c5a565b60075f529091507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c81019160208510610d1a575b90601f859493920160051c01905b818110610d0c575061070c565b5f8155849350600101610cff565b9091508190610cf1565b60405163e6c4247b60e01b8152600490fd5b5060408201516001600160a01b031615610676565b5060208201516001600160a01b03161561066f565b68ffffffffffffffffff1983166801000000000000000117855561065c565b60405163f92ee8a960e01b8152600490fd5b9050158661063a565b303b159150610632565b604085901c60ff16159150610628565b82356001600160a01b0381168103610264578152602092830192016105a9565b34610264575f3660031901126102645760405180600b5480835260208093018091600b5f52845f20905f5b86828210610e5d578686610e1582880383611d18565b60405192839281840190828552518091526040840192915f5b828110610e3d57505050500390f35b83516001600160a01b031685528695509381019392810192600101610e2e565b835485529093019260019283019201610dff565b34610264575f36600319011261026457602061ffff60025460d81c16604051908152f35b3461026457602036600319011261026457610eae611cd1565b5f805160206125fa833981519152546001600160a01b039190821633141580610f24575b6102ce5716610ee08161246e565b15610f125760207f59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee6091604051908152a1005b604051632467643d60e21b8152600490fd5b503382600d54161415610ed2565b3461026457604036600319011261026457610f69610f4e611cd1565b610f5733611df3565b908115610f74575b6024359033611f3f565b602060405160018152f35b9050610f7f81611df3565b90610f5f565b3461026457604036600319011261026457610f9e611cd1565b60243590335f52600a60205260405f2060018060a01b0382165f5260205260405f205491808310610fd557610f6992039033611e51565b604051637b5591b560e11b8152600490fd5b3461026457604036600319011261026457611000611cd1565b5f805160206125fa833981519152546001600160a01b039190821633141580611051575b6102ce571630811461103f5761001a90602435903390612306565b60405163992501b360e01b8152600490fd5b503382600d54161415611024565b3461026457602036600319011261026457611078611cd1565b5f805160206125fa833981519152546001600160a01b0391908216331415806110e7575b6102ce57168015610d2457600480546001600160a01b031916821790556040519081527fa4eea51cd2f21eac6612ba054a363ae2fd59698fc258ab414313cd73f69f2b8590602090a1005b503382600d5416141561109c565b34610264575f366003190112610264576040515f9060075461111681611d9a565b80835260209160019081811690811561118f5750600114611152575b61114e8461114281880382611d18565b60405191829182611ca5565b0390f35b91935060075f52835f20915f925b82841061117c575050508161114e936111429282010193611132565b8054858501870152928501928101611160565b60ff1916858501525050151560051b82010191506111428161114e611132565b346102645760403660031901126102645761ffff600435818116808203610264576024359280841690818503610264575f805160206125fa83398151915254336001600160a01b03918216141590816112a4575b506102ce5760025482840194828611611290577f8da1f77a22734510b762a9625e69e737d7c0cc48984e810e5802fb341eb80a3e9660ff84608098161515169161ffff60c81b9060c81b1660ff63ffffffff60c81b01198416179061ffff60d81b9060d81b16171760025560405193828260c81c168552602085015260d81c1660408301526060820152a1005b634e487b7160e01b5f52601160045260245ffd5b600d5416331415905086611203565b34610264575f366003190112610264575f805160206125fa833981519152546040516001600160a01b039091168152602090f35b346102645760403660031901126102645761001a611303611cd1565b60243590611312823383611ed2565b6121ac565b34610264575f366003190112610264575f8051602061263a83398151915254336001600160a01b03909116036113505761001a3361229b565b60405163118cdaa760e01b8152336004820152602490fd5b34610264575f3660031901126102645761138061227b565b5f8051602061263a83398151915280546001600160a01b03199081169091555f805160206125fa833981519152805491821690555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610264576020366003190112610264576001600160a01b03611406611cd1565b165f526009602052602060405f2054604051908152f35b34610264575f366003190112610264576020600154604051908152f35b346102645760208060031936011261026457611454611cd1565b5f805160206125fa833981519152546001600160a01b0391908216331415806119b6575b6102ce576002549063ffffffff91828160a81c166119a45763ffffffff60a81b4260a81b1663ffffffff60a81b198216179182600255305f526009865260405f2054156119925760405163c45a015560e01b8152928684600481600885901c8a165afa938415610a3a575f9461195b575b50600354908682169188604051809763e6a4390560e01b8252818b8161151389306004840161222e565b0392165afa948515610a3a575f95611924575b60249650305f5260098a528960405f205494604051988980926370a0823160e01b82523060048301525afa968715610a3a575f976118f5575b50885f54169789871698891490816118ed575b816118df575b506118cd5730156118bb5787156118a957305f5260098a5260405f205491848310611897578893859160ff839416908161188f575b81611880575b5061176c575b506115c49192611f32565b305f5260098a5260405f2055815f5260405f206115e2828254611dd2565b90556040519081525f8051602061261a833981519152893092a3856003541694876040518097815f816116248b63a9059cbb60e01b9b8c845260048401612260565b03925af1908115610a3a575f96899261174f575b506024604051809881936335313c2160e11b83523060048401525af1938415610a3a5787955f956116fc575b50957fbf59dda00152e02f20e18cab7307c8afe0714e7f69cf24a1377cbbddcb40f9bb60605f936116c69960405191825289820152876040820152a160ff60a01b19600354166003558154169260405196879586948593845260048401612260565b03925af18015610a3a576116d657005b8161001a92903d106116f5575b6116ed8183611d18565b810190612248565b503d6116e3565b868193979296503d8311611748575b6117158183611d18565b810103126102645751869490937fbf59dda00152e02f20e18cab7307c8afe0714e7f69cf24a1377cbbddcb40f9bb611664565b503d61170b565b61176590833d85116116f5576116ed8183611d18565b5089611638565b5f9061177789611df3565b80611870575b1561180a575061ffff60025460d81c16806117d3575b505b80156115b9576115c49250305f5260098c5260405f208181540190558b6040518281525f8051602061261a83398151915230923092a38103916115b9565b60058054612710928502929092046001600160801b0381811681851601166001600160801b0319909316929092179055018c611793565b61181330611df3565b80611860575b611824575b50611795565b60c81c61ffff16801561181e57612710915082020460018060801b036005549080831681831601169060018060801b031916176005558c61181e565b5061ffff8160c81c161515611819565b5061ffff8160d81c16151561177d565b60ff915060a01c16158d6115b3565b5f91506115ad565b604051635dd58b8b60e01b8152600490fd5b604051633a954ecd60e21b8152600490fd5b604051630b07e54560e11b8152600490fd5b604051630d970b4560e21b8152600490fd5b90508360a81c16158b611578565b5f9150611572565b9096508981813d831161191d575b61190d8183611d18565b810103126102645751958a61155f565b503d611903565b94508886813d8311611954575b61193b8183611d18565b810103126102645761194e602496611ddf565b94611526565b503d611931565b9093508681813d831161198b575b6119738183611d18565b810103126102645761198490611ddf565b92876114e9565b503d611969565b6040516330d86fb160e11b8152600490fd5b60405163b1f3376760e01b8152600490fd5b503382600d54161415611478565b34610264575f366003190112610264575f546040516001600160a01b039091168152602090f35b34610264575f366003190112610264576005546040516001600160801b039091168152602090f35b346102645760203660031901126102645761001a600435336121ac565b3461026457604036600319011261026457611a49611cd1565b5f805160206125fa83398151915254336001600160a01b0391821614159081611a7f575b506102ce5761001a9060243590612148565b600d5416331415905082611a6d565b34610264575f366003190112610264576003546040516001600160a01b039091168152602090f35b3461026457604036600319011261026457610f69611ad2611cd1565b335f52600a60205260405f2060018060a01b0382165f52602052611afc60243560405f2054611dd2565b9033611e51565b34610264575f36600319011261026457602060405160128152f35b3461026457606036600319011261026457610f69611b3a611cd1565b611b42611ce7565b60443590611b51823385611ed2565b611b5a83611df3565b9283611f3f579250611b6b81611df3565b92611f3f565b34610264575f366003190112610264576020600854604051908152f35b34610264575f36600319011261026457602063ffffffff60025460a81c16604051908152f35b3461026457604036600319011261026457610f69611bd0611cd1565b6024359033611e51565b34610264575f366003190112610264576040515f90600654611bfb81611d9a565b80835260209160019081811690811561118f5750600114611c265761114e8461114281880382611d18565b91935060065f52835f20915f925b828410611c50575050508161114e936111429282010193611132565b8054858501870152928501928101611c34565b34610264575f3660031901126102645760209061ffff60025460d81c168152f35b5f5b838110611c955750505f910152565b8181015183820152602001611c86565b60409160208252611cc58151809281602086015260208686019101611c84565b601f01601f1916010190565b600435906001600160a01b038216820361026457565b602435906001600160a01b038216820361026457565b606081019081106001600160401b03821117610c0f57604052565b90601f801991011681019081106001600160401b03821117610c0f57604052565b6001600160401b038111610c0f57601f01601f191660200190565b81601f8201121561026457803590611d6b82611d39565b92611d796040519485611d18565b8284526020838301011161026457815f926020809301838601378301015290565b90600182811c92168015611dc8575b6020831014611db457565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611da9565b9190820180921161129057565b51906001600160a01b038216820361026457565b5f546001600160a01b0391821691168114908115611e0f575090565b90505f52600c60205260405f2054151590565b3d15611e4c573d90611e3382611d39565b91611e416040519384611d18565b82523d5f602084013e565b606090565b6001600160a01b03908116918215611ec05716918215611eae5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f52600a825260405f20855f5282528060405f2055604051908152a3565b60405163b2fa1ef360e01b8152600490fd5b6040516356fdae6560e11b8152600490fd5b9060018060a01b038083165f52600a60205260405f209082165f5260205260405f2054925f198403611f05575b50505050565b808410611f2057611f17930391611e51565b5f808080611eff565b6040516313be252b60e01b8152600490fd5b9190820391821161129057565b5f546001600160a01b03808416959492939291811686148061213c575b80612129575b6118cd5783169384156118bb5785156118a957845f526009602052604092835f20549183831061211857915f8051602061261a8339815191529593916020959383956002549160ff83169081612110575b5080612100575b611ff1575b50505090611fcc91611f32565b855f5260098452815f2055855f52805f20611fe8838254611dd2565b905551908152a3565b611ffb5f93611df3565b806120f0575b1561208a57505061ffff60025460d81c1680612053575b505b80612027575b8080611fbf565b611fcc92919450305f5260098652835f2081815401905583518181528888883093a38103939091612020565b60058054612710928602929092046001600160801b0381811681851601166001600160801b0319909316929092179055015f612018565b61209390611df3565b806120e0575b6120a4575b5061201a565b60c81c61ffff16801561209e57612710915083020460018060801b036005549080831681831601169060018060801b031916176005555f61209e565b5061ffff8160c81c161515612099565b5061ffff8260d81c161515612001565b5060ff60035460a01c1615611fba565b90505f611fb3565b8451635dd58b8b60e01b8152600490fd5b5063ffffffff60025460a81c1615611f62565b50308185161415611f5c565b6001600160a01b031690811561219b575f8051602061261a83398151915260205f9261217e60018060801b038216600854611dd2565b6008558484526009825260408420818154019055604051908152a3565b604051622e076360e81b8152600490fd5b6001600160a01b0316801561221c57805f52600960205260405f20549180831061220a576020815f8051602061261a833981519152925f958587526009845203604086205560018060801b03811660085403600855604051908152a3565b60405163588569f760e01b8152600490fd5b6040516304fca6bd60e41b8152600490fd5b6001600160a01b0391821681529116602082015260400190565b90816020910312610264575180151581036102645790565b6001600160a01b039091168152602081019190915260400190565b5f805160206125fa833981519152546001600160a01b0316330361135057565b5f8051602061263a83398151915280546001600160a01b03199081169091555f805160206125fa83398151915280549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b5f61235e92819261234061233296604051978891602083019563a9059cbb60e01b875260248401612260565b03601f198101885287611d18565b60018060a01b031694519082865af1612357611e22565b9083612596565b805190811515918261238c575b50506123745750565b60249060405190635274afe760e01b82526004820152fd5b61239f9250602080918301019101612248565b155f8061236b565b81601f820112156102645780516123bd81611d39565b926123cb6040519485611d18565b81845260208284010111610264576123e99160208085019101611c84565b90565b805190811580612436575b156124025750505f90565b60025490602061ffff60d81b91015160d81b169161ffff60c81b9060c81b169063ffffffff60c81b19161717600255600190565b506020810151156123f7565b600b5481101561245a57600b5f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b5f818152600c6020526040902054801561253d575f199080820181811161129057600b5490838201918211611290578181036124f3575b505050600b5480156124df578101906124bd82612442565b909182549160031b1b19169055600b555f52600c6020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b61252761250261251193612442565b90549060031b1c928392612442565b819391549060031b91821b915f19901b19161790565b90555f52600c60205260405f20555f80806124a5565b50505f90565b805f52600c60205260405f2054155f1461259157600b54600160401b811015610c0f5761257a612511826001859401600b55612442565b9055600b54905f52600c60205260405f2055600190565b505f90565b906125bd57508051156125ab57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806125f0575b6125ce575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156125c656fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00a2646970667358221220bab5d4b283172ad3483ebbfed82e90376510e1e5441cb3daf3be8ac8db1a11e364736f6c63430008170033