[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountETH", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "BuybackMultiplierActive", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MASK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Sweep", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "approveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoBuybackEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "checkFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clearBuybackMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "distributorAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMultipliedFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "selling", "type": "bool" } ], "name": "getTotalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAtTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "reflect", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" } ], "name": "setAutoBuybackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "setBuybackMultiplierSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minDistribution", "type": "uint256" } ], "name": "setDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFee", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFee", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "setFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsDividendExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_target", "type": "uint256" }, { "internalType": "uint256", "name": "_denominator", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "adr", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "triggerBuybackMultiplier", "type": "bool" } ], "name": "triggerZeusBuyback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "unSetFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526002805461dead6001600160a01b0319918216811790925560038054821690556004805490911690911790556200003e6009600a62000658565b6200004e90633b9aca0062000669565b6005556200006e60c8600554620004b360201b620016ec1790919060201c565b6006556200008e6028600554620004b360201b620016ec1790919060201c565b6007556064600e8190556000600f556102586010819055601155610514601255612710601355601580546001600160a01b0319908116730828da7ddb488790695b31b5aec389ccd3af12ea17909155601680549091167381b9fa50d5f5155ee17817c21702c3ae4780ad09179055600a601755601881905560c8601d55601e556107086020556021805460ff199081169091556207a120602a55602b805490911660011790556005546200014690611388906200068b565b602c553480156200015657600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155601654601980546001600160a01b03909216919093168117909255825163c45a015560e01b81529251919263c45a015592600480830193928290030181865afa158015620001d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ff9190620006ae565b6001600160a01b031663c9c65396601960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000261573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002879190620006ae565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fa9190620006ae565b601a80546001600160a01b0319166001600160a01b039283161790556005543060009081526009602090815260408083206019548616845290915290819020919091556016549051911690620003509062000537565b6001600160a01b039091168152602001604051809103906000f0801580156200037d573d6000803e3d6000fd5b50602880546001600160a01b039283166001600160a01b03199182168117909255602980548216909217909155336000818152600a60209081526040808320805460ff199081166001908117909255600b84528285208054821683179055601a5488168552600c84528285208054821683179055308552828520805482168317905560025488168552828520805482168317905585855260229093529220805490911690911790556014805490921617905560165460055462000445929190911690620004ca565b50601a5460055462000461916001600160a01b031690620004ca565b5060055433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006e0565b6000620004c182846200068b565b90505b92915050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590620005269086815260200190565b60405180910390a350600192915050565b610b468062002eda83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200059c57816000190482111562000580576200058062000545565b808516156200058e57918102915b93841c939080029062000560565b509250929050565b600082620005b557506001620004c4565b81620005c457506000620004c4565b8160018114620005dd5760028114620005e85762000608565b6001915050620004c4565b60ff841115620005fc57620005fc62000545565b50506001821b620004c4565b5060208310610133831016604e8410600b84101617156200062d575081810a620004c4565b6200063983836200055b565b806000190482111562000650576200065062000545565b029392505050565b6000620004c160ff841683620005a4565b600081600019048311821515161562000686576200068662000545565b500290565b600082620006a957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006c157600080fd5b81516001600160a01b0381168114620006d957600080fd5b9392505050565b6127ea80620006f06000396000f3fe60806040526004361061036f5760003560e01c806382247ec0116101c6578063d51ed1c8116100f7578063f1f3bca311610095578063f708a64f1161006f578063f708a64f14610a34578063f84ba65d14610a54578063f887ea4014610a74578063fe9fbb8014610a9457600080fd5b8063f1f3bca3146109d4578063f2fde38b146109f4578063f5cfec0a14610a1457600080fd5b8063df20fd49116100d1578063df20fd4914610950578063e91f214e14610970578063e96fada214610994578063f0b37c04146109b457600080fd5b8063d51ed1c8146108d5578063d806d12f146108f5578063dd62ed3e1461090a57600080fd5b8063a8aa1b3111610164578063b6a5d7de1161013e578063b6a5d7de14610869578063bf56b37114610889578063c6d2577d1461089f578063ca33e64c146108b557600080fd5b8063a8aa1b3114610814578063a9059cbb14610834578063b210b06d1461085457600080fd5b806395d89b41116101a057806395d89b41146107875780639d1944f5146107b4578063a4b45c00146107d4578063a51af4c5146107f457600080fd5b806382247ec01461071f578063893d20e81461073557806389ef69f61461076757600080fd5b80632d48e896116102a05780635d0044ca1161023e5780636ddd1713116102185780636ddd1713146106a45780637088fb7f146106be57806370a08231146106d35780637d1db4a51461070957600080fd5b80635d0044ca146106445780636256e2fd14610664578063658d4b7f1461068457600080fd5b80633425c0011161027a5780633425c001146105ca5780633bb8a8d4146105ea578063571ac8b0146106045780635c85974f1461062457600080fd5b80632d48e8961461055f5780632f54bf6e1461057f578063313ce567146105ae57600080fd5b80631161ae391161030d5780632375ce40116102e75780632375ce40146104da57806323b872dd146104fa578063296020e71461051a5780632b112e491461054a57600080fd5b80631161ae391461048557806318160ddd146104a5578063201e7991146104ba57600080fd5b806304a66b481161034957806304a66b48146103db57806306fdde03146103fb57806307c89fe814610435578063095ea7b31461046557600080fd5b806301339c211461037b5780630445b66714610392578063048c7baf146103bb57600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610ab4565b005b34801561039e57600080fd5b506103a8602c5481565b6040519081526020015b60405180910390f35b3480156103c757600080fd5b506103906103d6366004612339565b610b33565b3480156103e757600080fd5b506103906103f6366004612372565b610b81565b34801561040757600080fd5b506040805180820190915260088152674665674d6574697360c01b60208201525b6040516103b291906123ad565b34801561044157600080fd5b5061045561045036600461241a565b610bf7565b60405190151581526020016103b2565b34801561047157600080fd5b50610455610480366004612437565b610c45565b34801561049157600080fd5b506104556104a0366004612463565b610cb1565b3480156104b157600080fd5b506005546103a8565b3480156104c657600080fd5b506103906104d5366004612463565b610cc5565b3480156104e657600080fd5b506103906104f5366004612485565b610cf5565b34801561050657600080fd5b506104556105153660046124b1565b610d4a565b34801561052657600080fd5b5061045561053536600461241a565b600d6020526000908152604090205460ff1681565b34801561055657600080fd5b506103a8610e0e565b34801561056b57600080fd5b5061039061057a366004612463565b610e60565b34801561058b57600080fd5b5061045561059a36600461241a565b6000546001600160a01b0391821691161490565b3480156105ba57600080fd5b50604051600981526020016103b2565b3480156105d657600080fd5b506103906105e536600461241a565b610eef565b3480156105f657600080fd5b506021546104559060ff1681565b34801561061057600080fd5b5061045561061f36600461241a565b610f3a565b34801561063057600080fd5b5061039061063f3660046124f2565b610f4e565b34801561065057600080fd5b5061039061065f3660046124f2565b610f94565b34801561067057600080fd5b5061039061067f3660046124b1565b610fda565b34801561069057600080fd5b5061039061069f36600461250b565b6110ba565b3480156106b057600080fd5b50602b546104559060ff1681565b3480156106ca57600080fd5b5061039061110a565b3480156106df57600080fd5b506103a86106ee36600461241a565b6001600160a01b031660009081526008602052604090205490565b34801561071557600080fd5b506103a860065481565b34801561072b57600080fd5b506103a860075481565b34801561074157600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103b2565b34801561077357600080fd5b5061039061078236600461241a565b611167565b34801561079357600080fd5b506040805180820190915260048152634665674d60e01b6020820152610428565b3480156107c057600080fd5b506103906107cf3660046124f2565b6111b5565b3480156107e057600080fd5b506103906107ef366004612540565b6111ee565b34801561080057600080fd5b5060295461074f906001600160a01b031681565b34801561082057600080fd5b50601a5461074f906001600160a01b031681565b34801561084057600080fd5b5061045561084f366004612437565b611241565b34801561086057600080fd5b5061039061124e565b34801561087557600080fd5b5061039061088436600461241a565b61127a565b34801561089557600080fd5b506103a8601b5481565b3480156108ab57600080fd5b506103a8601c5481565b3480156108c157600080fd5b5060145461074f906001600160a01b031681565b3480156108e157600080fd5b506103a86108f03660046124f2565b6112cb565b34801561090157600080fd5b506103a861130f565b34801561091657600080fd5b506103a8610925366004612540565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561095c57600080fd5b5061039061096b366004612579565b611382565b34801561097c57600080fd5b506103a86fffffffffffffffffffffffffffffffff81565b3480156109a057600080fd5b5060155461074f906001600160a01b031681565b3480156109c057600080fd5b506103906109cf36600461241a565b6113be565b3480156109e057600080fd5b506103a86109ef366004612595565b611409565b348015610a0057600080fd5b50610390610a0f36600461241a565b611465565b348015610a2057600080fd5b50610390610a2f3660046125b0565b6114fb565b348015610a4057600080fd5b50610390610a4f36600461250b565b61157a565b348015610a6057600080fd5b50610390610a6f36600461250b565b61167e565b348015610a8057600080fd5b5060195461074f906001600160a01b031681565b348015610aa057600080fd5b50610455610aaf36600461241a565b6116ce565b610abd336116ce565b610ae25760405162461bcd60e51b8152600401610ad9906125d3565b60405180910390fd5b601b5415610b295760405162461bcd60e51b8152602060048201526014602482015273416c7265616479206c61756e6368656420626f6960601b6044820152606401610ad9565b43601b5542601c55565b610b3c336116ce565b610b585760405162461bcd60e51b8152600401610ad9906125d3565b6021805460ff191694151594909417909355602391909155600060245560255560265543602755565b610b8a336116ce565b610ba65760405162461bcd60e51b8152600401610ad9906125d3565b600e859055600f84905560108390556011829055610bd082610bca858189896116f8565b906116f8565b6012556013819055610be360048261260e565b60125410610bf057600080fd5b5050505050565b600080546001600160a01b03163314610c225760405162461bcd60e51b8152600401610ad990612630565b506001600160a01b0381166000908152600d602052604090205460ff165b919050565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ca09086815260200190565b60405180910390a350600192915050565b600082610cbd836112cb565b119392505050565b610cce336116ce565b610cea5760405162461bcd60e51b8152600401610ad9906125d3565b601791909155601855565b610cfe336116ce565b610d1a5760405162461bcd60e51b8152600401610ad9906125d3565b6002610d26838561260e565b11158015610d3357508183115b610d3c57600080fd5b601d92909255601e55602055565b6005546001600160a01b0384166000908152600960209081526040808320338452909152812054909114610df9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610dd4918490611704565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610e04848484611730565b90505b9392505050565b6003546001600160a01b0316600090815260086020526040812054610e5b906002546001600160a01b0316600090815260086020526040902054610e559060055490611b32565b90611b32565b905090565b610e69336116ce565b610e855760405162461bcd60e51b8152600401610ad9906125d3565b6028546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610ed357600080fd5b505af1158015610ee7573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610f195760405162461bcd60e51b8152600401610ad990612630565b6001600160a01b03166000908152600d60205260409020805460ff19169055565b6000610f4882600554610c45565b92915050565b610f57336116ce565b610f735760405162461bcd60e51b8152600401610ad9906125d3565b6103e8600554610f83919061260e565b811015610f8f57600080fd5b600655565b610f9d336116ce565b610fb95760405162461bcd60e51b8152600401610ad9906125d3565b6103e8600554610fc9919061260e565b811015610fd557600080fd5b600755565b3360009081526022602052604090205460ff1615156001146110185760405162461bcd60e51b81526020600482015260006024820152604401610ad9565b6040805180820182526014815273496e73756666696369656e742062616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152919091205461106a918390611704565b6001600160a01b03808516600090815260086020526040808220939093559084168152205461109990826116f8565b6001600160a01b039092166000908152600860205260409020919091555050565b6110c3336116ce565b6110df5760405162461bcd60e51b8152600401610ad9906125d3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111345760405162461bcd60e51b8152600401610ad990612630565b6040514790339082156108fc029083906000818181858888f19350505050158015611163573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146111915760405162461bcd60e51b8152600401610ad990612630565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b6111be336116ce565b6111da5760405162461bcd60e51b8152600401610ad9906125d3565b620b71b081106111e957600080fd5b602a55565b6111f7336116ce565b6112135760405162461bcd60e51b8152600401610ad9906125d3565b601480546001600160a01b039384166001600160a01b03199182161790915560158054929093169116179055565b6000610e07338484611730565b611257336116ce565b6112735760405162461bcd60e51b8152600401610ad9906125d3565b6000601f55565b6000546001600160a01b031633146112a45760405162461bcd60e51b8152600401610ad990612630565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000610f486112d8610e0e565b601a546001600160a01b031660009081526008602052604090205461130990611302906002611b3e565b8590611b3e565b906116ec565b60008061132d42610e55602054601f546116f890919063ffffffff16565b90506000611354601254610e55601e54611309601d54601254611b3e90919063ffffffff16565b905061137b6113726020546113098585611b3e90919063ffffffff16565b601254906116f8565b9250505090565b61138b336116ce565b6113a75760405162461bcd60e51b8152600401610ad9906125d3565b602b805460ff191692151592909217909155602c55565b6000546001600160a01b031633146113e85760405162461bcd60e51b8152600401610ad990612630565b6001600160a01b03166000908152600160205260409020805460ff19169055565b600043601b54600161141b9190612650565b1061142e57601354610f48906001611b32565b81801561145057504261144e602054601f546116f890919063ffffffff16565b115b1561145d57610f4861130f565b505060125490565b6000546001600160a01b0316331461148f5760405162461bcd60e51b8152600401610ad990612630565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611504336116ce565b6115205760405162461bcd60e51b8152600401610ad9906125d3565b6002546115379083906001600160a01b0316611b4a565b80156111635742601f55602080546040519081527f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a910160405180910390a15050565b611583336116ce565b61159f5760405162461bcd60e51b8152600401610ad9906125d3565b6001600160a01b03821630148015906115c65750601a546001600160a01b03838116911614155b6115cf57600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff1916821580159190911790915561163557602854604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610eb9565b6028546001600160a01b0383811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610eb9565b611687336116ce565b6116a35760405162461bcd60e51b8152600401610ad9906125d3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6000610e07828461260e565b6000610e078284612650565b600081848411156117285760405162461bcd60e51b8152600401610ad991906123ad565b505050900390565b602d5460009060ff161561175057611749848484611cb3565b9050610e07565b601a546000906001600160a01b038681169116148061177c57506016546001600160a01b038681169116145b601a549091506000906001600160a01b03868116911614806117ab57506016546001600160a01b038681169116145b90506117b78685611d56565b801580156117de57506001600160a01b0385166000908152600d602052604090205460ff16155b15611857576007546001600160a01b03861660009081526008602052604090205461180a908690612650565b106118575760405162461bcd60e51b815260206004820152601d60248201527f4d61782077616c6c657420686173206265656e207472696767657265640000006044820152606401610ad9565b801561188757611865611dbf565b1561187257611872611e0e565b61187a6121cc565b1561188757611887612227565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600890915291909120546118d9918690611704565b6001600160a01b038716600090815260086020908152604080832093909355600a90529081205460ff161561190e5784611919565b61191987878761226e565b6001600160a01b03871660009081526008602052604090205490915061193f90826116f8565b6001600160a01b03808816600090815260086020908152604080832094909455918a168152600c909152205460ff166119e3576028546001600160a01b0388811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156119d057600080fd5b505af19250505080156119e1575060015b505b6001600160a01b0386166000908152600c602052604090205460ff16611a74576028546001600160a01b0387811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611a6157600080fd5b505af1925050508015611a72575060015b505b602854602a546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c47991611aac9160040190815260200190565b600060405180830381600087803b158015611ac657600080fd5b505af1925050508015611ad7575060015b50856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b1d91815260200190565b60405180910390a35060019695505050505050565b6000610e078284612668565b6000610e07828461267f565b602d805460ff191660011790556040805160028082526060820183526000926020830190803683375050601954604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611bc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be5919061269e565b81600081518110611bf857611bf86126bb565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611c2c57611c2c6126bb565b6001600160a01b03928316602091820292909201015260195460405163b6f9de9560e01b815291169063b6f9de95908590611c7290600090869088904290600401612715565b6000604051808303818588803b158015611c8b57600080fd5b505af1158015611c9f573d6000803e3d6000fd5b5050602d805460ff19169055505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611d04918490611704565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611d3390836116f8565b6001600160a01b0384166000908152600860205260409020555060019392505050565b60065481111580611d7f57506001600160a01b0382166000908152600b602052604090205460ff165b6111635760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610ad9565b601a546000906001600160a01b03163314801590611de05750602d5460ff16155b8015611dee5750602b5460ff165b8015610e5b575050602c5430600090815260086020526040902054101590565b602d805460ff19166001179055601754601854600091611e2d91610cb1565b611e3957600e54611e3c565b60005b90506000611e60600261130960125461130986602c54611b3e90919063ffffffff16565b90506000611e7982602c54611b3290919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611eb357611eb36126bb565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f30919061269e565b81600181518110611f4357611f436126bb565b6001600160a01b03928316602091820292909201015260195460405163791ac94760e01b81524792919091169063791ac94790611f8d90869060009087903090429060040161274a565b600060405180830381600087803b158015611fa757600080fd5b505af1158015611fbb573d6000803e3d6000fd5b505050506000611fd48247611b3290919063ffffffff16565b90506000611fef611fe68860026116ec565b60125490611b32565b9050600061200460026113098481878d611b3e565b905060006120218361130960105487611b3e90919063ffffffff16565b9050600061203e8461130960115488611b3e90919063ffffffff16565b9050602860009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561209057600080fd5b505af1935050505080156120a2575060015b506015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156120dd573d6000803e3d6000fd5b5088156121b65760195460145460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015612154573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121799190612786565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602d805460ff191690555050505050505050565b601a546000906001600160a01b031633148015906121ed5750602d5460ff16155b80156121fb575060215460ff165b80156122165750436026546027546122139190612650565b11155b8015610e5b57505060255447101590565b60255460025461224091906001600160a01b0316611b4a565b43602755602554602454612253916116f8565b6024819055602354101561226c576021805460ff191690555b565b601354601a5460009182916122a0919061130990612299906001600160a01b03898116911614611409565b8690611b3e565b306000908152600860205260409020549091506122bd90826116f8565b30600081815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061230e9085815260200190565b60405180910390a36123208382611b32565b95945050505050565b80358015158114610c4057600080fd5b6000806000806080858703121561234f57600080fd5b61235885612329565b966020860135965060408601359560600135945092505050565b600080600080600060a0868803121561238a57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156123da578581018301518582016040015282016123be565b818111156123ec576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461241757600080fd5b50565b60006020828403121561242c57600080fd5b8135610e0781612402565b6000806040838503121561244a57600080fd5b823561245581612402565b946020939093013593505050565b6000806040838503121561247657600080fd5b50508035926020909101359150565b60008060006060848603121561249a57600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156124c657600080fd5b83356124d181612402565b925060208401356124e181612402565b929592945050506040919091013590565b60006020828403121561250457600080fd5b5035919050565b6000806040838503121561251e57600080fd5b823561252981612402565b915061253760208401612329565b90509250929050565b6000806040838503121561255357600080fd5b823561255e81612402565b9150602083013561256e81612402565b809150509250929050565b6000806040838503121561258c57600080fd5b61245583612329565b6000602082840312156125a757600080fd5b610e0782612329565b600080604083850312156125c357600080fd5b8235915061253760208401612329565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261262b57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60008219821115612663576126636125f8565b500190565b60008282101561267a5761267a6125f8565b500390565b6000816000190483118215151615612699576126996125f8565b500290565b6000602082840312156126b057600080fd5b8151610e0781612402565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101561270a5781516001600160a01b0316875295820195908201906001016126e5565b509495945050505050565b84815260806020820152600061272e60808301866126d1565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a06040820152600061276960a08301866126d1565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561279b57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212206788205eacfd0a9107943923988f7651b5197a006df5dbf8f764b39b7f9d5f4464736f6c634300080c003360806040526ec097ce7bc90715b34b9f1000000000600a55610e10600b55678ac7230489e80000600c5534801561003557600080fd5b50604051610b46380380610b4683398101604081905261005491610082565b600180546001600160a01b039092166001600160a01b031992831617905560008054909116331790556100b2565b60006020828403121561009457600080fd5b81516001600160a01b03811681146100ab57600080fd5b9392505050565b610a85806100c16000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610224578063f0fc6bca1461023a578063ffb2c4791461024f578063ffd49c841461026f57600080fd5b8063ce7c2ac2146101af578063d0e30db014610206578063e2d2e2191461020e57600080fd5b80632d48e896116100bb5780632d48e8961461014d5780633a98ef391461016d5780634fab0ae814610183578063997664d71461019957600080fd5b806311ce023d146100e257806314b6ca961461010b57806328fd31981461012d575b600080fd5b3480156100ee57600080fd5b506100f8600a5481565b6040519081526020015b60405180910390f35b34801561011757600080fd5b5061012b610126366004610902565b610285565b005b34801561013957600080fd5b506100f861014836600461092c565b6103fd565b34801561015957600080fd5b5061012b610168366004610947565b610486565b34801561017957600080fd5b506100f860065481565b34801561018f57600080fd5b506100f8600c5481565b3480156101a557600080fd5b506100f860075481565b3480156101bb57600080fd5b506101eb6101ca36600461092c565b60056020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610102565b61012b6104a8565b34801561021a57600080fd5b506100f860095481565b34801561023057600080fd5b506100f860085481565b34801561024657600080fd5b5061012b610502565b34801561025b57600080fd5b5061012b61026a366004610969565b61050b565b34801561027b57600080fd5b506100f8600b5481565b6000546001600160a01b0316331461029c57600080fd5b6001600160a01b038216600090815260056020526040902054156102c3576102c38261060b565b6000811180156102e957506001600160a01b038216600090815260056020526040902054155b1561034f57600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319169091179055610382565b8015801561037457506001600160a01b03821660009081526005602052604090205415155b156103825761038282610732565b6001600160a01b0382166000908152600560205260409020546006546103b39183916103ad91610847565b9061085a565b6006556001600160a01b03821660009081526005602052604090208190556103da81610866565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6001600160a01b03811660009081526005602052604081205461042257506000919050565b6001600160a01b03821660009081526005602052604081205461044490610866565b6001600160a01b038416600090815260056020526040902060010154909150808211610474575060009392505050565b61047e8282610847565b949350505050565b6000546001600160a01b0316331461049d57600080fd5b600b91909155600c55565b6000546001600160a01b031633146104bf57600080fd5b3415610500576007546104d2903461085a565b600755600654600a546104fc916104f3916104ed9034610889565b90610895565b6009549061085a565b6009555b565b6105003361060b565b6000546001600160a01b0316331461052257600080fd5b6002548061052e575050565b6000805a905060005b848310801561054557508381105b156106045783600d5410610559576000600d555b61058b6002600d548154811061057157610571610982565b6000918252602090912001546001600160a01b03166108a1565b156105c2576105c26002600d54815481106105a8576105a8610982565b6000918252602090912001546001600160a01b031661060b565b6105d76105d05a8490610847565b849061085a565b92505a600d805491935060006105ec836109ae565b919050555080806105fc906109ae565b915050610537565b5050505050565b6001600160a01b03811660009081526005602052604090205461062b5750565b6000610636826103fd565b9050801561072e576000826001600160a01b031682610bb890604051600060405180830381858888f193505050503d8060008114610690576040519150601f19603f3d011682016040523d82523d6000602084013e610695565b606091505b50509050806106a357505050565b6008546106b0908361085a565b6008556001600160a01b038316600090815260046020908152604080832042905560059091529020600201546106e6908361085a565b6001600160a01b038416600090815260056020526040902060028101919091555461071090610866565b6001600160a01b038416600090815260056020526040902060010155505b5050565b60028054610742906001906109c9565b8154811061075257610752610982565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061079057610790610982565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600391829052604081205460028054919392916107dc906001906109c9565b815481106107ec576107ec610982565b60009182526020808320909101546001600160a01b031683528201929092526040019020556002805480610822576108226109e0565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061085382846109c9565b9392505050565b600061085382846109f6565b6000610883600a546104ed6009548561088990919063ffffffff16565b92915050565b60006108538284610a0e565b60006108538284610a2d565b600b546001600160a01b038216600090815260046020526040812054909142916108cb91906109f6565b1080156108835750600c546108df836103fd565b1192915050565b80356001600160a01b03811681146108fd57600080fd5b919050565b6000806040838503121561091557600080fd5b61091e836108e6565b946020939093013593505050565b60006020828403121561093e57600080fd5b610853826108e6565b6000806040838503121561095a57600080fd5b50508035926020909101359150565b60006020828403121561097b57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156109c2576109c2610998565b5060010190565b6000828210156109db576109db610998565b500390565b634e487b7160e01b600052603160045260246000fd5b60008219821115610a0957610a09610998565b500190565b6000816000190483118215151615610a2857610a28610998565b500290565b600082610a4a57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207f99738e88d7eb0b251ac238889ac2724b2c4a88336a66e2caeddb9fb456d88764736f6c634300080c0033