[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint256", "name": "totalSupply_", "type": "uint256" }, { "internalType": "address", "name": "router_", "type": "address" }, { "internalType": "address", "name": "charityAddress_", "type": "address" }, { "internalType": "uint16", "name": "taxFeeBps_", "type": "uint16" }, { "internalType": "uint16", "name": "liquidityFeeBps_", "type": "uint16" }, { "internalType": "uint16", "name": "charityFeeBps_", "type": "uint16" }, { "internalType": "address", "name": "pinkAntiBot_", "type": "address" }, { "internalType": "address", "name": "serviceFeeReceiver_", "type": "address" }, { "internalType": "uint256", "name": "serviceFee_", "type": "uint256" } ], "stateMutability": "payable", "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": "minTokensBeforeSwap", "type": "uint256" } ], "name": "MinTokensBeforeSwapUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SwapAndLiquifyAmountUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "enum TokenType", "name": "tokenType", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "version", "type": "uint256" } ], "name": "TokenCreated", "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": "MAX_FEE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_charityAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_charityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_taxFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tAmount", "type": "uint256" } ], "name": "deliver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableAntiBot", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromReward", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pinkAntiBot", "outputs": [ { "internalType": "contract IPinkAntiBot", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tAmount", "type": "uint256" }, { "internalType": "bool", "name": "deductTransferFee", "type": "bool" } ], "name": "reflectionFromToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "charityFeeBps", "type": "uint256" } ], "name": "setCharityFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enable", "type": "bool" } ], "name": "setEnableAntiBot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "liquidityFeeBps", "type": "uint256" } ], "name": "setLiquidityFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "taxFeeBps", "type": "uint256" } ], "name": "setTaxFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "rAmount", "type": "uint256" } ], "name": "tokenFromReflection", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526040516200311e3803806200311e83398101604081905262000026916200080a565b6200003133620005ff565b6001600160a01b038716620000d15761ffff841615620000d15760405162461bcd60e51b815260206004820152604a60248201527f43616e742073657420626f74682063686172697479206164647265737320746f60448201527f2061646472657373203020616e6420636861726974792070657263656e74206d60648201526906f7265207468616e20360b41b608482015260a4015b60405180910390fd5b6109c484620000e187896200093d565b620000ed91906200093d565b61ffff161115620001415760405162461bcd60e51b815260206004820152601560248201527f546f74616c20666565206973206f7665722032352500000000000000000000006044820152606401620000c8565b601780546001600160a01b0319166001600160a01b0385169081179091556318e02bd9620001776000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015620001b957600080fd5b505af1158015620001ce573d6000803e3d6000fd5b50506017805460ff60a01b1916600160a01b17905550508a51620001fa90600a9060208e019062000664565b5089516200021090600b9060208d019062000664565b50600c805460ff1916600917905560078990556200023189600019620009d4565b6200023f906000196200097d565b60085561ffff868116600d819055600e55858116600f819055601055601580546001600160a01b0319166001600160a01b038a16179055841660118190556012556200029a896103e86200064f602090811b6200123517901c565b6016556015805460ff60a81b1916600160a81b17905560085460016000620002ca6000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000889050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032d57600080fd5b505afa15801562000342573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003689190620007ed565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b157600080fd5b505afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec9190620007ed565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200043557600080fd5b505af11580156200044a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004709190620007ed565b601480546001600160a01b03199081166001600160a01b039384161790915560138054909116918316919091179055600160046000620004b86000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260049092529020805490911660011790556200050b6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040516200055391815260200190565b60405180910390a3306200056f6000546001600160a01b031690565b6001600160a01b03167f56358b41df5fa59f5639228f0930994cbdde383c8a8fd74e06c04e1deebe356260036002604051620005ad92919062000910565b60405180910390a36040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015620005ec573d6000803e3d6000fd5b5050505050505050505050505062000a2d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006200065d828462000966565b9392505050565b828054620006729062000997565b90600052602060002090601f016020900481019282620006965760008555620006e1565b82601f10620006b157805160ff1916838001178555620006e1565b82800160010185558215620006e1579182015b82811115620006e1578251825591602001919060010190620006c4565b50620006ef929150620006f3565b5090565b5b80821115620006ef5760008155600101620006f4565b80516001600160a01b03811681146200072257600080fd5b919050565b600082601f83011262000738578081fd5b81516001600160401b038082111562000755576200075562000a17565b604051601f8301601f19908116603f0116810190828211818310171562000780576200078062000a17565b816040528381526020925086838588010111156200079c578485fd5b8491505b83821015620007bf5785820183015181830184015290820190620007a0565b83821115620007d057848385830101525b9695505050505050565b805161ffff811681146200072257600080fd5b600060208284031215620007ff578081fd5b6200065d826200070a565b60008060008060008060008060008060006101608c8e0312156200082c578687fd5b8b516001600160401b0381111562000842578788fd5b620008508e828f0162000727565b60208e0151909c5090506001600160401b038111156200086e578788fd5b6200087c8e828f0162000727565b9a505060408c015198506200089460608d016200070a565b9750620008a460808d016200070a565b9650620008b460a08d01620007da565b9550620008c460c08d01620007da565b9450620008d460e08d01620007da565b9350620008e56101008d016200070a565b9250620008f66101208d016200070a565b91506101408c015190509295989b509295989b9093969950565b60408101600884106200093357634e487b7160e01b600052602160045260246000fd5b9281526020015290565b600061ffff8083168185168083038211156200095d576200095d620009eb565b01949350505050565b60008262000978576200097862000a01565b500490565b600082821015620009925762000992620009eb565b500390565b600181811c90821680620009ac57607f821691505b60208210811415620009ce57634e487b7160e01b600052602260045260246000fd5b50919050565b600082620009e657620009e662000a01565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6126e18062000a3d6000396000f3fe6080604052600436106102345760003560e01c80634549b0391161012e5780638da5cb5b116100ab578063af41063b1161006f578063af41063b146106a9578063bc063e1a146106c9578063dd62ed3e146106df578063f2fde38b14610725578063ffa1ad741461074557600080fd5b80638da5cb5b146106165780638ee88c531461063457806395d89b4114610654578063a457c2d714610669578063a9059cbb1461068957600080fd5b80636bc87c3a116100f25780636bc87c3a1461057257806370a0823114610588578063715018a6146105a8578063796431d0146105bd57806388f82020146105dd57600080fd5b80634549b039146104b857806349bd5a5e146104d85780634a74bb02146104f857806352390c02146105195780635342acb41461053957600080fd5b8063241ec3be116101bc5780633b124fe7116101805780633b124fe71461042c5780633bd5d17314610442578063407133d21461046257806340f8007a14610482578063437823ec1461049857600080fd5b8063241ec3be146103895780632d838119146103aa578063313ce567146103ca5780633685d419146103ec578063395093511461040c57600080fd5b80631694505e116102035780631694505e146102dc57806318160ddd1461031457806319a8ac9e146103295780631f46b1c61461034957806323b872dd1461036957600080fd5b8063061c82d01461024057806306fdde0314610262578063095ea7b31461028d57806313114a9d146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b366004612407565b61075a565b005b34801561026e57600080fd5b506102776107fa565b6040516102849190612477565b60405180910390f35b34801561029957600080fd5b506102ad6102a83660046123c2565b61088c565b6040519015158152602001610284565b3480156102c957600080fd5b506009545b604051908152602001610284565b3480156102e857600080fd5b506013546102fc906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b34801561032057600080fd5b506007546102ce565b34801561033557600080fd5b506015546102fc906001600160a01b031681565b34801561035557600080fd5b506102606103643660046123ed565b6108a3565b34801561037557600080fd5b506102ad610384366004612382565b6108eb565b34801561039557600080fd5b506017546102ad90600160a01b900460ff1681565b3480156103b657600080fd5b506102ce6103c5366004612407565b610954565b3480156103d657600080fd5b50600c5460405160ff9091168152602001610284565b3480156103f857600080fd5b50610260610407366004612312565b6109d8565b34801561041857600080fd5b506102ad6104273660046123c2565b610bc7565b34801561043857600080fd5b506102ce600d5481565b34801561044e57600080fd5b5061026061045d366004612407565b610bfd565b34801561046e57600080fd5b506017546102fc906001600160a01b031681565b34801561048e57600080fd5b506102ce60115481565b3480156104a457600080fd5b506102606104b3366004612312565b610ce9565b3480156104c457600080fd5b506102ce6104d336600461241f565b610d37565b3480156104e457600080fd5b506014546102fc906001600160a01b031681565b34801561050457600080fd5b506015546102ad90600160a81b900460ff1681565b34801561052557600080fd5b50610260610534366004612312565b610dc6565b34801561054557600080fd5b506102ad610554366004612312565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561057e57600080fd5b506102ce600f5481565b34801561059457600080fd5b506102ce6105a3366004612312565b610f19565b3480156105b457600080fd5b50610260610f78565b3480156105c957600080fd5b506102606105d8366004612407565b610fae565b3480156105e957600080fd5b506102ad6105f8366004612312565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561062257600080fd5b506000546001600160a01b03166102fc565b34801561064057600080fd5b5061026061064f366004612407565b6110a8565b34801561066057600080fd5b506102776110ed565b34801561067557600080fd5b506102ad6106843660046123c2565b6110fc565b34801561069557600080fd5b506102ad6106a43660046123c2565b61114b565b3480156106b557600080fd5b506102606106c4366004612407565b611158565b3480156106d557600080fd5b506102ce6109c481565b3480156106eb57600080fd5b506102ce6106fa36600461234a565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561073157600080fd5b50610260610740366004612312565b61119d565b34801561075157600080fd5b506102ce600281565b6000546001600160a01b0316331461078d5760405162461bcd60e51b8152600401610784906124ca565b60405180910390fd5b600d819055601154600f546109c491906107a7908461256f565b6107b1919061256f565b11156107f75760405162461bcd60e51b8152602060048201526015602482015274546f74616c20666565206973206f7665722032352560581b6044820152606401610784565b50565b6060600a8054610809906125dd565b80601f0160208091040260200160405190810160405280929190818152602001828054610835906125dd565b80156108825780601f1061085757610100808354040283529160200191610882565b820191906000526020600020905b81548152906001019060200180831161086557829003601f168201915b5050505050905090565b6000610899338484611241565b5060015b92915050565b6000546001600160a01b031633146108cd5760405162461bcd60e51b8152600401610784906124ca565b60178054911515600160a01b0260ff60a01b19909216919091179055565b60006108f8848484611366565b61094a84336109458560405180606001604052806028815260200161265f602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906115dc565b611241565b5060019392505050565b60006008548211156109bb5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610784565b60006109c5611608565b90506109d18382611235565b9392505050565b6000546001600160a01b03163314610a025760405162461bcd60e51b8152600401610784906124ca565b6001600160a01b03811660009081526005602052604090205460ff16610a6a5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610784565b60005b600654811015610bc357816001600160a01b031660068281548110610aa257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610bb15760068054610acd906001906125c6565b81548110610aeb57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600680546001600160a01b039092169183908110610b2557634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610b8b57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610bbb81612618565b915050610a6d565b5050565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610899918590610945908661162b565b3360008181526005602052604090205460ff1615610c725760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610784565b6000610c7d83611637565b5050506001600160a01b038616600090815260016020526040902054939450610cab93925084915050611692565b6001600160a01b038316600090815260016020526040902055600854610cd19082611692565b600855600954610ce1908461162b565b600955505050565b6000546001600160a01b03163314610d135760405162461bcd60e51b8152600401610784906124ca565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600754831115610d8b5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610784565b81610dab576000610d9b84611637565b5094965061089d95505050505050565b6000610db684611637565b5093965061089d95505050505050565b6000546001600160a01b03163314610df05760405162461bcd60e51b8152600401610784906124ca565b6001600160a01b03811660009081526005602052604090205460ff1615610e595760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610784565b6001600160a01b03811660009081526001602052604090205415610eb3576001600160a01b038116600090815260016020526040902054610e9990610954565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604081205460ff1615610f5657506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461089d90610954565b6000546001600160a01b03163314610fa25760405162461bcd60e51b8152600401610784906124ca565b610fac600061169e565b565b6000546001600160a01b03163314610fd85760405162461bcd60e51b8152600401610784906124ca565b610ff8612710610ff26005610fec60075490565b906116ee565b90611235565b81101561106d5760405162461bcd60e51b815260206004820152603860248201527f537761706261636b20616d6f756e742073686f756c64206265206174206c656160448201527f737420302e303525206f6620746f74616c20737570706c7900000000000000006064820152608401610784565b60168190556040518181527ff7edd1a72d399eb95c56c07c5a26f00a9096735269c96c75caa8fc4e15bcd5d29060200160405180910390a150565b6000546001600160a01b031633146110d25760405162461bcd60e51b8152600401610784906124ca565b600f819055601154600d546109c491906107a790849061256f565b6060600b8054610809906125dd565b6000610899338461094585604051806060016040528060258152602001612687602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906115dc565b6000610899338484611366565b6000546001600160a01b031633146111825760405162461bcd60e51b8152600401610784906124ca565b6011819055600f54600d546109c49183916107a7919061256f565b6000546001600160a01b031633146111c75760405162461bcd60e51b8152600401610784906124ca565b6001600160a01b03811661122c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610784565b6107f78161169e565b60006109d18284612587565b6001600160a01b0383166112a35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610784565b6001600160a01b0382166113045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610784565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166113ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610784565b6001600160a01b03821661142c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610784565b6000811161148e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610784565b601754600160a01b900460ff161561150f5760175460405163090ec10b60e31b81526001600160a01b03858116600483015284811660248301526044820184905290911690634876085890606401600060405180830381600087803b1580156114f657600080fd5b505af115801561150a573d6000803e3d6000fd5b505050505b600061151a30610f19565b6016549091508110801590819061153b5750601554600160a01b900460ff16155b801561155557506014546001600160a01b03868116911614155b801561156a5750601554600160a81b900460ff165b1561157d57601654915061157d826116fa565b6001600160a01b03851660009081526004602052604090205460019060ff16806115bf57506001600160a01b03851660009081526004602052604090205460ff165b156115c8575060005b6115d4868686846117a1565b505050505050565b600081848411156116005760405162461bcd60e51b81526004016107849190612477565b505050900390565b6000806000611615611941565b90925090506116248282611235565b9250505090565b60006109d1828461256f565b60008060008060008060008060008060006116518c611afb565b935093509350935060008060006116728f87878761166d611608565b611b50565b919f509d509b509599509397509195509350505050919395979092949650565b60006109d182846125c6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006109d182846125a7565b6015805460ff60a01b1916600160a01b179055600061171a826002611235565b905060006117288383611692565b90504761173483611bb2565b60006117404783611692565b905061174c8382611d2f565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506015805460ff60a01b19169055505050565b806117cb576117cb600d8054600e55600f8054601055601180546012556000928390559082905555565b6001600160a01b03841660009081526005602052604090205460ff16801561180c57506001600160a01b03831660009081526005602052604090205460ff16155b156118215761181c848484611df0565b61191f565b6001600160a01b03841660009081526005602052604090205460ff1615801561186257506001600160a01b03831660009081526005602052604090205460ff165b156118725761181c848484611f36565b6001600160a01b03841660009081526005602052604090205460ff161580156118b457506001600160a01b03831660009081526005602052604090205460ff16155b156118c45761181c848484611ff5565b6001600160a01b03841660009081526005602052604090205460ff16801561190457506001600160a01b03831660009081526005602052604090205460ff165b156119145761181c84848461204f565b61191f848484611ff5565b8061193b5761193b600e54600d55601054600f55601254601155565b50505050565b6008546007546000918291825b600654811015611acb5782600160006006848154811061197e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806119f757508160026000600684815481106119d057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611a0d57600854600754945094505050509091565b611a616001600060068481548110611a3557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611692565b9250611ab76002600060068481548110611a8b57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611692565b915080611ac381612618565b91505061194e565b50600754600854611adb91611235565b821015611af2576008546007549350935050509091565b90939092509050565b6000806000806000611b0c866120d8565b90506000611b19876120f5565b90506000611b2688612112565b90506000611b4082611b3a85818d89611692565b90611692565b9993985091965094509092505050565b6000808080611b5f89866116ee565b90506000611b6d89876116ee565b90506000611b7b89886116ee565b90506000611b8989896116ee565b90506000611b9d82611b3a85818989611692565b949d949c50929a509298505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611bf557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c4957600080fd5b505afa158015611c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c81919061232e565b81600181518110611ca257634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601354611cc89130911684611241565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d019085906000908690309042906004016124ff565b600060405180830381600087803b158015611d1b57600080fd5b505af11580156115d4573d6000803e3d6000fd5b601354611d479030906001600160a01b031684611241565b60135460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b158015611db057600080fd5b505af1158015611dc4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611de9919061244a565b5050505050565b6000806000806000806000611e0488611637565b9650965096509650965096509650611e4a88600260008d6001600160a01b03166001600160a01b031681526020019081526020016000205461169290919063ffffffff16565b6001600160a01b038b16600090815260026020908152604080832093909355600190522054611e799088611692565b6001600160a01b03808c1660009081526001602052604080822093909355908b1681522054611ea8908761162b565b6001600160a01b038a16600090815260016020526040902055611eca82612148565b611ed3816121d1565b611edd85846122d9565b886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611f2291815260200190565b60405180910390a350505050505050505050565b6000806000806000806000611f4a88611637565b9650965096509650965096509650611f9087600160008d6001600160a01b03166001600160a01b031681526020019081526020016000205461169290919063ffffffff16565b6001600160a01b03808c16600090815260016020908152604080832094909455918c16815260029091522054611fc6908561162b565b6001600160a01b038a16600090815260026020908152604080832093909355600190522054611ea8908761162b565b600080600080600080600061200988611637565b9650965096509650965096509650611e7987600160008d6001600160a01b03166001600160a01b031681526020019081526020016000205461169290919063ffffffff16565b600080600080600080600061206388611637565b96509650965096509650965096506120a988600260008d6001600160a01b03166001600160a01b031681526020019081526020016000205461169290919063ffffffff16565b6001600160a01b038b16600090815260026020908152604080832093909355600190522054611f909088611692565b600061089d612710610ff2600d54856116ee90919063ffffffff16565b600061089d612710610ff2600f54856116ee90919063ffffffff16565b6015546000906001600160a01b031661212d57506000919050565b61089d612710610ff2601154856116ee90919063ffffffff16565b6000612152611608565b9050600061216083836116ee565b3060009081526001602052604090205490915061217d908261162b565b3060009081526001602090815260408083209390935560059052205460ff16156121cc57306000908152600260205260409020546121bb908461162b565b306000908152600260205260409020555b505050565b80156107f75760006121e1611608565b905060006121ef83836116ee565b6015546001600160a01b0316600090815260016020526040902054909150612217908261162b565b601580546001600160a01b03908116600090815260016020908152604080832095909555925490911681526005909152205460ff1615612292576015546001600160a01b0316600090815260026020526040902054612276908461162b565b6015546001600160a01b03166000908152600260205260409020555b6015546001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161135991815260200190565b6008546122e69083611692565b6008556009546122f6908261162b565b6009555050565b8035801515811461230d57600080fd5b919050565b600060208284031215612323578081fd5b81356109d181612649565b60006020828403121561233f578081fd5b81516109d181612649565b6000806040838503121561235c578081fd5b823561236781612649565b9150602083013561237781612649565b809150509250929050565b600080600060608486031215612396578081fd5b83356123a181612649565b925060208401356123b181612649565b929592945050506040919091013590565b600080604083850312156123d4578182fd5b82356123df81612649565b946020939093013593505050565b6000602082840312156123fe578081fd5b6109d1826122fd565b600060208284031215612418578081fd5b5035919050565b60008060408385031215612431578182fd5b82359150612441602084016122fd565b90509250929050565b60008060006060848603121561245e578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156124a357858101830151858201604001528201612487565b818111156124b45783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561254e5784516001600160a01b031683529383019391830191600101612529565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561258257612582612633565b500190565b6000826125a257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156125c1576125c1612633565b500290565b6000828210156125d8576125d8612633565b500390565b600181811c908216806125f157607f821691505b6020821081141561261257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561262c5761262c612633565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146107f757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f1deb0ccff45f9bf74f993406e2ca2fdf2892684e746540a5defc663c225c84764736f6c63430008040033000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000d3c21bcecceda10000000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000e2e9146c1ba943503b8c55e699fa45a4a36f9552000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064000000000000000000000000f4f071eb637b64fc78c9ea87dace4445d119ca350000000000000000000000004b04213c2774f77e60702880654206b116d00508000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000000000000000542696e676f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000542494e474f000000000000000000000000000000000000000000000000000000