[ { "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": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeMultipleAccountsFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "oldValue", "type": "uint256" } ], "name": "GasForProcessingUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newLiquidityWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldLiquidityWallet", "type": "address" } ], "name": "LiquidityWalletUpdated", "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": "iterations", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "claims", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lastProcessedIndex", "type": "uint256" }, { "indexed": true, "internalType": "bool", "name": "automatic", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "gas", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "processor", "type": "address" } ], "name": "ProcessedDividendTracker", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SendDividends", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "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": 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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateDividendTracker", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_marketingWalletAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "account", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "blacklistAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "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": "address", "name": "account", "type": "address" } ], "name": "dividendTokenBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dividendTracker", "outputs": [ { "internalType": "contract BABYTOKENDividendTracker", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableAntiBot", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromDividends", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeMultipleAccountsFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "gasForProcessing", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAccountDividendsInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getAccountDividendsInfoAtIndex", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getClaimWait", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLastProcessedIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNumberOfDividendTokenHolders", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalDividendsDistributed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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[5]", "name": "addrs", "type": "address[5]" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint256", "name": "totalSupply_", "type": "uint256" }, { "internalType": "uint256", "name": "tokenRewardsFee_", "type": "uint256" }, { "internalType": "uint256", "name": "liquidityFee_", "type": "uint256" }, { "internalType": "uint256", "name": "marketingFee_", "type": "uint256" }, { "internalType": "uint256", "name": "minimumTokenBalanceForDividends_", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "gas", "type": "uint256" } ], "name": "processDividendTracker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enable", "type": "bool" } ], "name": "setEnableAntiBot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setLiquiditFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setMarketingFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "wallet", "type": "address" } ], "name": "setMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setTokenRewardsFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenRewardsFee", "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" }, { "inputs": [ { "internalType": "uint256", "name": "claimWait", "type": "uint256" } ], "name": "updateClaimWait", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updateDividendTracker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateGasForProcessing", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updateUniswapV2Router", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "withdrawableDividendOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a0604052620493e060a2553480156200001857600080fd5b5060405162000027906200005b565b604051809103906000f08015801562000044573d6000803e3d6000fd5b5060601b6001600160601b03191660805262000069565b6128078062004c8e83390190565b60805160601c614c026200008c600039806114325280611ca55250614c026000f3fe60806040526004361061037a5760003560e01c8063700bb191116101d1578063a9059cbb11610102578063dd62ed3e116100a0578063e98030c71161006f578063e98030c714610e08578063f27fd25414610e32578063f2fde38b14610e5c578063f7c618c114610e8f57610381565b8063dd62ed3e14610d8e578063e2f4560514610dc9578063e708a0f914610dde578063e7841ec014610df357610381565b8063afa4f3b2116100dc578063afa4f3b214610c77578063b62496f514610ca1578063c024666814610cd4578063c492f04614610d0f57610381565b8063a9059cbb14610b96578063ad56c13c14610bcf578063adefd90c14610c4d57610381565b806395d89b411161016f5780639c1b8af5116101495780639c1b8af514610b00578063a26579ad14610b15578063a457c2d714610b2a578063a8b9d24014610b6357610381565b806395d89b4114610a9b57806398118cb414610ab05780639a7a23d614610ac557610381565b806373f3f347116101ab57806373f3f347146108a4578063871c128d14610a2957806388bdd9be14610a535780638da5cb5b14610a8657610381565b8063700bb1911461083257806370a082311461085c578063715018a61461088f57610381565b8063407133d2116102ab5780635c60da1b1161024957806364b0f6531161022357806364b0f653146107a257806365b8dbc0146107b75780636843cd84146107ea5780636b67c4df1461081d57610381565b80635c60da1b146107305780635d098b3814610745578063625e764c1461077857610381565b806349bd5a5e1161028557806349bd5a5e146106a95780634e71d92d146106be5780634ed080c7146106d35780634fbee193146106fd57610381565b8063407133d2146106445780634144d9e414610659578063455a43961461066e57610381565b806323b872dd1161031857806330bb4cff116102f257806330bb4cff14610598578063313ce567146105ad57806331e79db0146105d8578063395093511461060b57610381565b806323b872dd1461052b578063241ec3be1461056e5780632c1f52161461058357610381565b80631694505e116103545780631694505e1461048457806318160ddd146104b55780631cdd3be3146104ca5780631f46b1c6146104fd57610381565b806306fdde0314610386578063095ea7b31461041057806313114a9d1461045d57610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610ea4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d55781810151838201526020016103bd565b50505050905090810190601f1680156104025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041c57600080fd5b506104496004803603604081101561043357600080fd5b506001600160a01b038135169060200135610f3a565b604080519115158252519081900360200190f35b34801561046957600080fd5b50610472610f58565b60408051918252519081900360200190f35b34801561049057600080fd5b50610499610f5e565b604080516001600160a01b039092168252519081900360200190f35b3480156104c157600080fd5b50610472610f6d565b3480156104d657600080fd5b50610449600480360360208110156104ed57600080fd5b50356001600160a01b0316610f73565b34801561050957600080fd5b506105296004803603602081101561052057600080fd5b50351515610f88565b005b34801561053757600080fd5b506104496004803603606081101561054e57600080fd5b506001600160a01b03813581169160208101359091169060400135611008565b34801561057a57600080fd5b5061044961108f565b34801561058f57600080fd5b5061049961109f565b3480156105a457600080fd5b506104726110ae565b3480156105b957600080fd5b506105c2611124565b6040805160ff9092168252519081900360200190f35b3480156105e457600080fd5b50610529600480360360208110156105fb57600080fd5b50356001600160a01b031661112d565b34801561061757600080fd5b506104496004803603604081101561062e57600080fd5b506001600160a01b0381351690602001356111f8565b34801561065057600080fd5b50610499611246565b34801561066557600080fd5b50610499611255565b34801561067a57600080fd5b506105296004803603604081101561069157600080fd5b506001600160a01b0381351690602001351515611264565b3480156106b557600080fd5b506104996112f1565b3480156106ca57600080fd5b50610529611300565b3480156106df57600080fd5b50610529600480360360208110156106f657600080fd5b5035611385565b34801561070957600080fd5b506104496004803603602081101561072057600080fd5b50356001600160a01b031661140e565b34801561073c57600080fd5b50610499611430565b34801561075157600080fd5b506105296004803603602081101561076857600080fd5b50356001600160a01b0316611454565b34801561078457600080fd5b506105296004803603602081101561079b57600080fd5b50356114d8565b3480156107ae57600080fd5b50610472611554565b3480156107c357600080fd5b50610529600480360360208110156107da57600080fd5b50356001600160a01b0316611599565b3480156107f657600080fd5b506104726004803603602081101561080d57600080fd5b50356001600160a01b0316611828565b34801561082957600080fd5b506104726118ab565b34801561083e57600080fd5b506105296004803603602081101561085557600080fd5b50356118b1565b34801561086857600080fd5b506104726004803603602081101561087f57600080fd5b50356001600160a01b0316611998565b34801561089b57600080fd5b506105296119b3565b3480156108b057600080fd5b5061052960048036036101808110156108c857600080fd5b810190808060a0019060058060200260405190810160405280929190826005602002808284376000920191909152509194939260208101925035905064010000000081111561091657600080fd5b82018360208201111561092857600080fd5b8035906020019184600183028401116401000000008311171561094a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561099d57600080fd5b8201836020820111156109af57600080fd5b803590602001918460018302840111640100000000831117156109d157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350505060208101359060408101359060608101359060800135611a5f565b348015610a3557600080fd5b5061052960048036036020811015610a4c57600080fd5b5035612188565b348015610a5f57600080fd5b5061052960048036036020811015610a7657600080fd5b50356001600160a01b03166122af565b348015610a9257600080fd5b50610499612610565b348015610aa757600080fd5b5061039b61261f565b348015610abc57600080fd5b50610472612680565b348015610ad157600080fd5b5061052960048036036040811015610ae857600080fd5b506001600160a01b0381351690602001351515612686565b348015610b0c57600080fd5b5061047261273f565b348015610b2157600080fd5b50610472612745565b348015610b3657600080fd5b5061044960048036036040811015610b4d57600080fd5b506001600160a01b03813516906020013561278a565b348015610b6f57600080fd5b5061047260048036036020811015610b8657600080fd5b50356001600160a01b03166127f2565b348015610ba257600080fd5b5061044960048036036040811015610bb957600080fd5b506001600160a01b038135169060200135612843565b348015610bdb57600080fd5b50610c0260048036036020811015610bf257600080fd5b50356001600160a01b0316612857565b604080516001600160a01b0390991689526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b348015610c5957600080fd5b5061052960048036036020811015610c7057600080fd5b5035612937565b348015610c8357600080fd5b5061052960048036036020811015610c9a57600080fd5b50356129b3565b348015610cad57600080fd5b5061044960048036036020811015610cc457600080fd5b50356001600160a01b0316612a1a565b348015610ce057600080fd5b5061052960048036036040811015610cf757600080fd5b506001600160a01b0381351690602001351515612a2f565b348015610d1b57600080fd5b5061052960048036036040811015610d3257600080fd5b810190602081018135640100000000811115610d4d57600080fd5b820183602082011115610d5f57600080fd5b80359060200191846020830284011164010000000083111715610d8157600080fd5b9193509150351515612b4f565b348015610d9a57600080fd5b5061047260048036036040811015610db157600080fd5b506001600160a01b0381358116916020013516612c79565b348015610dd557600080fd5b50610472612ca4565b348015610dea57600080fd5b50610472612caa565b348015610dff57600080fd5b50610472612cb0565b348015610e1457600080fd5b5061052960048036036020811015610e2b57600080fd5b5035612cf5565b348015610e3e57600080fd5b50610c0260048036036020811015610e5557600080fd5b5035612da4565b348015610e6857600080fd5b5061052960048036036020811015610e7f57600080fd5b50356001600160a01b0316612e0a565b348015610e9b57600080fd5b50610499612f0d565b60368054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f305780601f10610f0557610100808354040283529160200191610f30565b820191906000526020600020905b815481529060010190602001808311610f1357829003601f168201915b5050505050905090565b6000610f4e610f47612f1c565b8484612f20565b5060015b92915050565b60a05481565b6097546001600160a01b031681565b60355490565b609c6020526000908152604090205460ff1681565b610f90612f1c565b6001600160a01b0316610fa1612610565b6001600160a01b031614610fea576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b60a58054911515600160a01b0260ff60a01b19909216919091179055565b600061101584848461300c565b61108584611021612f1c565b611080856040518060600160405280602881526020016149ff602891396001600160a01b038a1660009081526034602052604081209061105f612f1c565b6001600160a01b031681526020810191909152604001600020549190613598565b612f20565b5060019392505050565b60a554600160a01b900460ff1681565b6099546001600160a01b031681565b609954604080516342d359d760e11b815290516000926001600160a01b0316916385a6b3ae916004808301926020929190829003018186803b1580156110f357600080fd5b505afa158015611107573d6000803e3d6000fd5b505050506040513d602081101561111d57600080fd5b5051905090565b60385460ff1690565b611135612f1c565b6001600160a01b0316611146612610565b6001600160a01b03161461118f576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b6099546040805163031e79db60e41b81526001600160a01b038481166004830152915191909216916331e79db091602480830192600092919082900301818387803b1580156111dd57600080fd5b505af11580156111f1573d6000803e3d6000fd5b5050505050565b6000610f4e611205612f1c565b846110808560346000611216612f1c565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061362f565b60a5546001600160a01b031681565b60a1546001600160a01b031681565b61126c612f1c565b6001600160a01b031661127d612610565b6001600160a01b0316146112c6576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152609c60205260409020805460ff1916911515919091179055565b6098546001600160a01b031681565b6099546040805163bc4c4b3760e01b815233600482015260006024820181905291516001600160a01b039093169263bc4c4b3792604480840193602093929083900390910190829087803b15801561135757600080fd5b505af115801561136b573d6000803e3d6000fd5b505050506040513d602081101561138157600080fd5b5050565b61138d612f1c565b6001600160a01b031661139e612610565b6001600160a01b0316146113e7576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b609d819055609f54609e54611408919061140290849061362f565b9061362f565b60a05550565b6001600160a01b038116600090815260a3602052604090205460ff165b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61145c612f1c565b6001600160a01b031661146d612610565b6001600160a01b0316146114b6576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b60a180546001600160a01b0319166001600160a01b0392909216919091179055565b6114e0612f1c565b6001600160a01b03166114f1612610565b6001600160a01b03161461153a576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b609f819055609e54609d546114089183916114029161362f565b609954604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde916004808301926020929190829003018186803b1580156110f357600080fd5b6115a1612f1c565b6001600160a01b03166115b2612610565b6001600160a01b0316146115fb576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b6097546001600160a01b03828116911614156116485760405162461bcd60e51b815260040180806020018281038252602e815260200180614a7c602e913960400191505060405180910390fd5b6097546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3609780546001600160a01b0319166001600160a01b0383811691909117918290556040805163c45a015560e01b815290516000939092169163c45a015591600480820192602092909190829003018186803b1580156116e157600080fd5b505afa1580156116f5573d6000803e3d6000fd5b505050506040513d602081101561170b57600080fd5b5051609754604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693309391169163ad5c464891600480820192602092909190829003018186803b15801561175d57600080fd5b505afa158015611771573d6000803e3d6000fd5b505050506040513d602081101561178757600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156117d957600080fd5b505af11580156117ed573d6000803e3d6000fd5b505050506040513d602081101561180357600080fd5b5051609880546001600160a01b0319166001600160a01b039092169190911790555050565b609954604080516370a0823160e01b81526001600160a01b038481166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b15801561187957600080fd5b505afa15801561188d573d6000803e3d6000fd5b505050506040513d60208110156118a357600080fd5b505192915050565b609f5481565b609954604080516001624d3b8760e01b03198152600481018490529051600092839283926001600160a01b039092169163ffb2c4799160248082019260609290919082900301818787803b15801561190857600080fd5b505af115801561191c573d6000803e3d6000fd5b505050506040513d606081101561193257600080fd5b5080516020808301516040938401518451848152928301829052828501819052606083018990529351929650945091925032916000917fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989181900360800190a350505050565b6001600160a01b031660009081526033602052604090205490565b6119bb612f1c565b6001600160a01b03166119cc612610565b6001600160a01b031614611a15576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b6065546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606580546001600160a01b0319169055565b600054610100900460ff1680611a785750611a78613690565b80611a86575060005460ff16155b611ac15760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b0602e913960400191505060405180910390fd5b600054610100900460ff16158015611aec576000805460ff1961ff0019909116610100171660011790555b606089015189516001600160a01b0390811691161415611b3d5760405162461bcd60e51b815260040180806020018281038252602d815260200180614b44602d913960400191505060405180910390fd5b611b4788886136a1565b611b4f613756565b886004602002015160a580546001600160a01b0319166001600160a01b039283161790819055166318e02bd98a600060200201516040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b158015611bc257600080fd5b505af1158015611bd6573d6000803e3d6000fd5b505060a5805460ff60a01b1916600160a01b1790555089905060016020020151609a80546001600160a01b0319166001600160a01b03909216919091179055609d859055609e849055609f839055611c3283611402878761362f565b60a081905560641015611c85576040805162461bcd60e51b8152602060048201526016602482015275546f74616c20666565206973206f766572203130302560501b604482015290519081900360640190fd5b611c9d620f4240611c97886002613808565b90613861565b609b55611cc97f00000000000000000000000000000000000000000000000000000000000000006138c8565b609980546001600160a01b0319166001600160a01b039283161790819055609a546040805163cd6dc68760e01b815291841660048301526024820186905251919092169163cd6dc68791604480830192600092919082900301818387803b158015611d3357600080fd5b505af1158015611d47573d6000803e3d6000fd5b50505050600089600260058110611d5a57fe5b602002015190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611d9c57600080fd5b505afa158015611db0573d6000803e3d6000fd5b505050506040513d6020811015611dc657600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929187169163ad5c464891600480820192602092909190829003018186803b158015611e1657600080fd5b505afa158015611e2a573d6000803e3d6000fd5b505050506040513d6020811015611e4057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015611e9257600080fd5b505af1158015611ea6573d6000803e3d6000fd5b505050506040513d6020811015611ebc57600080fd5b5051609780546001600160a01b038086166001600160a01b03199283161790925560988054928416929091169190911790559050611efb816001613965565b8a6003602002015160a180546001600160a01b0319166001600160a01b039283161790556099546040805163031e79db60e41b8152919092166004820181905291516331e79db09160248082019260009290919082900301818387803b158015611f6457600080fd5b505af1158015611f78573d6000803e3d6000fd5b50506099546040805163031e79db60e41b815230600482015290516001600160a01b0390921693506331e79db0925060248082019260009290919082900301818387803b158015611fc857600080fd5b505af1158015611fdc573d6000803e3d6000fd5b50506099548d516040805163031e79db60e41b81526001600160a01b03928316600482015290519190921693506331e79db09250602480830192600092919082900301818387803b15801561203057600080fd5b505af1158015612044573d6000803e3d6000fd5b50506099546040805163031e79db60e41b815261dead600482015290516001600160a01b0390921693506331e79db0925060248082019260009290919082900301818387803b15801561209657600080fd5b505af11580156120aa573d6000803e3d6000fd5b50506099546040805163031e79db60e41b81526001600160a01b03878116600483015291519190921693506331e79db09250602480830192600092919082900301818387803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050506121308b60006005811061212457fe5b60200201516001612a2f565b60a154612147906001600160a01b03166001612a2f565b612152306001612a2f565b8a5161215e9089613a93565b8a5161216990612e0a565b5050801561217d576000805461ff00191690555b505050505050505050565b612190612f1c565b6001600160a01b03166121a1612610565b6001600160a01b0316146121ea576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b62030d40811015801561220057506207a1208111155b61223b5760405162461bcd60e51b815260040180806020018281038252603f81526020018061487b603f913960400191505060405180910390fd5b60a25481141561227c5760405162461bcd60e51b8152600401808060200182810382526037815260200180614b716037913960400191505060405180910390fd5b60a25460405182907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db790600090a360a255565b6122b7612f1c565b6001600160a01b03166122c8612610565b6001600160a01b031614612311576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b6099546001600160a01b038281169116141561235e5760405162461bcd60e51b81526004018080602001828103825260388152602001806149286038913960400191505060405180910390fd5b6000819050306001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123a657600080fd5b505afa1580156123ba573d6000803e3d6000fd5b505050506040513d60208110156123d057600080fd5b50516001600160a01b0316146124175760405162461bcd60e51b8152600401808060200182810382526051815260200180614af36051913960600191505060405180910390fd5b806001600160a01b03166331e79db0826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561246657600080fd5b505af115801561247a573d6000803e3d6000fd5b50506040805163031e79db60e41b815230600482015290516001600160a01b03851693506331e79db09250602480830192600092919082900301818387803b1580156124c557600080fd5b505af11580156124d9573d6000803e3d6000fd5b50505050806001600160a01b03166331e79db06124f4612610565b6040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561253357600080fd5b505af1158015612547573d6000803e3d6000fd5b50506097546040805163031e79db60e41b81526001600160a01b039283166004820152905191851693506331e79db0925060248082019260009290919082900301818387803b15801561259957600080fd5b505af11580156125ad573d6000803e3d6000fd5b50506099546040516001600160a01b03918216935090851691507f90c7d74461c613da5efa97d90740869367d74ab3aa5837aa4ae9a975f954b7a890600090a3609980546001600160a01b0319166001600160a01b039290921691909117905550565b6065546001600160a01b031690565b60378054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f305780601f10610f0557610100808354040283529160200191610f30565b609e5481565b61268e612f1c565b6001600160a01b031661269f612610565b6001600160a01b0316146126e8576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b6098546001600160a01b03838116911614156127355760405162461bcd60e51b81526004018080602001828103825260508152602001806149606050913960600191505060405180910390fd5b6113818282613965565b60a25481565b60995460408051631bc9e27b60e21b815290516000926001600160a01b031691636f2789ec916004808301926020929190829003018186803b1580156110f357600080fd5b6000610f4e612797612f1c565b8461108085604051806060016040528060258152602001614ba860259139603460006127c1612f1c565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190613598565b609954604080516302a2e74960e61b81526001600160a01b0384811660048301529151600093929092169163a8b9d24091602480820192602092909190829003018186803b15801561187957600080fd5b6000610f4e612850612f1c565b848461300c565b600080600080600080600080609960009054906101000a90046001600160a01b03166001600160a01b031663fbcbc0f18a6040518263ffffffff1660e01b815260040180826001600160a01b031681526020019150506101006040518083038186803b1580156128c657600080fd5b505afa1580156128da573d6000803e3d6000fd5b505050506040513d6101008110156128f157600080fd5b508051602082015160408301516060840151608085015160a086015160c087015160e090970151959e50939c50919a509850965094509092509050919395975091939597565b61293f612f1c565b6001600160a01b0316612950612610565b6001600160a01b031614612999576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b609e819055609f54609d546114089190611402908461362f565b6129bb612f1c565b6001600160a01b03166129cc612610565b6001600160a01b031614612a15576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b609b55565b60a46020526000908152604090205460ff1681565b612a37612f1c565b6001600160a01b0316612a48612610565b6001600160a01b031614612a91576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260a3602052604090205460ff1615158115151415612aef5760405162461bcd60e51b8152600401808060200182810382526035815260200180614a476035913960400191505060405180910390fd5b6001600160a01b038216600081815260a36020908152604091829020805460ff1916851515908117909155825190815291517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79281900390910190a25050565b612b57612f1c565b6001600160a01b0316612b68612610565b6001600160a01b031614612bb1576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b60005b82811015612c06578160a36000868685818110612bcd57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101612bb4565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35838383604051808060200183151581526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a1505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b609b5481565b609d5481565b6099546040805163039e107b60e61b815290516000926001600160a01b03169163e7841ec0916004808301926020929190829003018186803b1580156110f357600080fd5b612cfd612f1c565b6001600160a01b0316612d0e612610565b6001600160a01b031614612d57576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b6099546040805163e98030c760e01b81526004810184905290516001600160a01b039092169163e98030c79160248082019260009290919082900301818387803b1580156111dd57600080fd5b600080600080600080600080609960009054906101000a90046001600160a01b03166001600160a01b0316635183d6fd8a6040518263ffffffff1660e01b8152600401808281526020019150506101006040518083038186803b1580156128c657600080fd5b612e12612f1c565b6001600160a01b0316612e23612610565b6001600160a01b031614612e6c576040805162461bcd60e51b81526020600482018190526024820152600080516020614a27833981519152604482015290519081900360640190fd5b6001600160a01b038116612eb15760405162461bcd60e51b81526004018080602001828103825260268152602001806148ba6026913960400191505060405180910390fd5b6065546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606580546001600160a01b0319166001600160a01b0392909216919091179055565b609a546001600160a01b031681565b3390565b6001600160a01b038316612f655760405162461bcd60e51b8152600401808060200182810382526024815260200180614acf6024913960400191505060405180910390fd5b6001600160a01b038216612faa5760405162461bcd60e51b81526004018080602001828103825260228152602001806148e06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166130515760405162461bcd60e51b8152600401808060200182810382526025815260200180614aaa6025913960400191505060405180910390fd5b6001600160a01b0382166130965760405162461bcd60e51b81526004018080602001828103825260238152602001806148156023913960400191505060405180910390fd5b6001600160a01b0383166000908152609c602052604090205460ff161580156130d857506001600160a01b0382166000908152609c602052604090205460ff16155b61311f576040805162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b604482015290519081900360640190fd5b60a554600160a01b900460ff16156131a75760a5546040805163090ec10b60e31b81526001600160a01b03868116600483015285811660248301526044820185905291519190921691634876085891606480830192600092919082900301818387803b15801561318e57600080fd5b505af11580156131a2573d6000803e3d6000fd5b505050505b806131bd576131b883836000613b85565b613593565b60006131c830611998565b609b54909150811080159081906131e95750609854600160a01b900460ff16155b801561320e57506001600160a01b038516600090815260a4602052604090205460ff16155b8015613233575061321d612610565b6001600160a01b0316856001600160a01b031614155b80156132585750613242612610565b6001600160a01b0316846001600160a01b031614155b156132e2576098805460ff60a01b1916600160a01b17905560a054609f5460009161328891611c97908690613808565b905061329381613ce2565b60006132b060a054611c97609e548761380890919063ffffffff16565b90506132bb81613e6f565b60006132c630611998565b90506132d181613ef5565b50506098805460ff60a01b19169055505b6098546001600160a01b038616600090815260a3602052604090205460ff600160a01b90920482161591168061333057506001600160a01b038516600090815260a3602052604090205460ff165b15613339575060005b80156133aa57600061335b6064611c9760a0548861380890919063ffffffff16565b6001600160a01b038716600090815260a4602052604090205490915060ff16156133915761338f6064611c97876001613808565b015b61339b85826140ac565b94506133a8873083613b85565b505b6133b5868686613b85565b6099546001600160a01b031663e30443bc876133d081611998565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561341657600080fd5b505af1925050508015613427575060015b506099546001600160a01b031663e30443bc8661344381611998565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561348957600080fd5b505af192505050801561349a575060015b50609854600160a01b900460ff1661358f5760a254609954604080516001624d3b8760e01b031981526004810184905290516001600160a01b039092169163ffb2c479916024808201926060929091908290030181600087803b15801561350057600080fd5b505af192505050801561353457506040513d606081101561352057600080fd5b508051602082015160409092015190919060015b61353d5761358d565b604080518481526020810184905280820183905260608101869052905132916001917fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989181900360800190a35050505b505b5050505b505050565b600081848411156136275760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156135ec5781810151838201526020016135d4565b50505050905090810190601f1680156136195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015613689576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061369b30614109565b15905090565b600054610100900460ff16806136ba57506136ba613690565b806136c8575060005460ff16155b6137035760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b0602e913960400191505060405180910390fd5b600054610100900460ff1615801561372e576000805460ff1961ff0019909116610100171660011790555b61373661410f565b61374083836141af565b8015613593576000805461ff0019169055505050565b600054610100900460ff168061376f575061376f613690565b8061377d575060005460ff16155b6137b85760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b0602e913960400191505060405180910390fd5b600054610100900460ff161580156137e3576000805460ff1961ff0019909116610100171660011790555b6137eb61410f565b6137f3614287565b8015613805576000805461ff00191690555b50565b60008261381757506000610f52565b8282028284828161382457fe5b04146136895760405162461bcd60e51b81526004018080602001828103825260218152602001806149de6021913960400191505060405180910390fd5b60008082116138b7576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816138c057fe5b049392505050565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b03811661142b576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b6001600160a01b038216600090815260a4602052604090205460ff16151581151514156139c35760405162461bcd60e51b81526004018080602001828103825260438152602001806148386043913960600191505060405180910390fd5b6001600160a01b038216600090815260a460205260409020805460ff19168215801591909117909155613a57576099546040805163031e79db60e41b81526001600160a01b038581166004830152915191909216916331e79db091602480830192600092919082900301818387803b158015613a3e57600080fd5b505af1158015613a52573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6001600160a01b038216613aee576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b613afa60008383613593565b603554613b07908261362f565b6035556001600160a01b038216600090815260336020526040902054613b2d908261362f565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038316613bca5760405162461bcd60e51b8152600401808060200182810382526025815260200180614aaa6025913960400191505060405180910390fd5b6001600160a01b038216613c0f5760405162461bcd60e51b81526004018080602001828103825260238152602001806148156023913960400191505060405180910390fd5b613c1a838383613593565b613c5781604051806060016040528060268152602001614902602691396001600160a01b0386166000908152603360205260409020549190613598565b6001600160a01b038085166000908152603360205260408082209390935590841681522054613c86908261362f565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b609a54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015613d2d57600080fd5b505afa158015613d41573d6000803e3d6000fd5b505050506040513d6020811015613d5757600080fd5b50519050613d6482614380565b609a54604080516370a0823160e01b81523060048201529051600092613dea9285926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015613db857600080fd5b505afa158015613dcc573d6000803e3d6000fd5b505050506040513d6020811015613de257600080fd5b5051906140ac565b609a5460a1546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b158015613e4557600080fd5b505af1158015613e59573d6000803e3d6000fd5b505050506040513d60208110156111f157600080fd5b6000613e7c826002613861565b90506000613e8a83836140ac565b905047613e9683614554565b6000613ea247836140ac565b9050613eae83826146bb565b604080518581526020810183905280820185905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15050505050565b613efe81614380565b609a54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015613f4957600080fd5b505afa158015613f5d573d6000803e3d6000fd5b505050506040513d6020811015613f7357600080fd5b5051609a546099546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018590529051939450600093919092169163a9059cbb91604480830192602092919082900301818787803b158015613fd357600080fd5b505af1158015613fe7573d6000803e3d6000fd5b505050506040513d6020811015613ffd57600080fd5b505190508015613593576099546040805163ba72a95560e01b81526004810185905290516001600160a01b039092169163ba72a9559160248082019260009290919082900301818387803b15801561405457600080fd5b505af1158015614068573d6000803e3d6000fd5b5050604080518681526020810186905281517f80195cc573b02cc48460cbca6e6e4cc85ddb91959d946e1c3025ea3d87942dc39450908190039091019150a1505050565b600082821115614103576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600054610100900460ff16806141285750614128613690565b80614136575060005460ff16155b6141715760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b0602e913960400191505060405180910390fd5b600054610100900460ff161580156137f3576000805460ff1961ff0019909116610100171660011790558015613805576000805461ff001916905550565b600054610100900460ff16806141c857506141c8613690565b806141d6575060005460ff16155b6142115760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b0602e913960400191505060405180910390fd5b600054610100900460ff1615801561423c576000805460ff1961ff0019909116610100171660011790555b825161424f906036906020860190614773565b508151614263906037906020850190614773565b506038805460ff191660121790558015613593576000805461ff0019169055505050565b600054610100900460ff16806142a057506142a0613690565b806142ae575060005460ff16155b6142e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806149b0602e913960400191505060405180910390fd5b600054610100900460ff16158015614314576000805460ff1961ff0019909116610100171660011790555b600061431e612f1c565b606580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015613805576000805461ff001916905550565b604080516003808252608082019092526000916020820160608036833701905050905030816000815181106143b157fe5b6001600160a01b03928316602091820292909201810191909152609754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561440557600080fd5b505afa158015614419573d6000803e3d6000fd5b505050506040513d602081101561442f57600080fd5b505181518290600190811061444057fe5b6001600160a01b039283166020918202929092010152609a5482519116908290600290811061446b57fe5b6001600160a01b0392831660209182029290920101526097546144919130911684612f20565b609754604051635c11d79560e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b0390971696635c11d795968a968a9594939092909160c40190602080880191028083838b5b838110156145175781810151838201526020016144ff565b505050509050019650505050505050600060405180830381600087803b15801561454057600080fd5b505af115801561358f573d6000803e3d6000fd5b604080516002808252606082018352600092602083019080368337019050509050308160008151811061458357fe5b6001600160a01b03928316602091820292909201810191909152609754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156145d757600080fd5b505afa1580156145eb573d6000803e3d6000fd5b505050506040513d602081101561460157600080fd5b505181518290600190811061461257fe5b6001600160a01b0392831660209182029290920101526097546146389130911684612f20565b60975460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602087810191028083838b83156145175781810151838201526020016144ff565b6097546146d39030906001600160a01b031684612f20565b6097546040805163f305d71960e01b8152306004820152602481018590526000604482018190526064820181905260848201524260a482015290516001600160a01b039092169163f305d71991849160c480830192606092919082900301818588803b15801561474257600080fd5b505af1158015614756573d6000803e3d6000fd5b50505050506040513d606081101561476d57600080fd5b50505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826147a957600085556147ef565b82601f106147c257805160ff19168380011785556147ef565b828001600101855582156147ef579182015b828111156147ef5782518255916020019190600101906147d4565b506147fb9291506147ff565b5090565b5b808211156147fb576000815560010161480056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737342414259544f4b454e3a204175746f6d61746564206d61726b6574206d616b6572207061697220697320616c72656164792073657420746f20746861742076616c756542414259544f4b454e3a20676173466f7250726f63657373696e67206d757374206265206265747765656e203230302c30303020616e64203530302c3030304f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542414259544f4b454e3a20546865206469766964656e6420747261636b657220616c7265616479206861732074686174206164647265737342414259544f4b454e3a205468652050616e63616b655377617020706169722063616e6e6f742062652072656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b65725061697273496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657242414259544f4b454e3a204163636f756e7420697320616c7265616479207468652076616c7565206f6620276578636c756465642742414259544f4b454e3a2054686520726f7574657220616c7265616479206861732074686174206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737342414259544f4b454e3a20546865206e6577206469766964656e6420747261636b6572206d757374206265206f776e6564206279207468652042414259544f4b454e20746f6b656e20636f6e74726163744f776e657220616e64206d61726b6574696e672077616c6c65742063616e6e6f74206265207468652073616d6542414259544f4b454e3a2043616e6e6f742075706461746520676173466f7250726f63657373696e6720746f2073616d652076616c756545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fbf8b432f826589d1b87cbc598fd40547a523c46ea6a7b15f91ff8e066e9cdba64736f6c63430007060033608060405234801561001057600080fd5b506127e7806100206000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80638da5cb5b11610130578063be10b614116100b8578063e98030c71161007c578063e98030c7146106b2578063f2fde38b146106cf578063f7c618c1146106f5578063fbcbc0f1146106fd578063ffb2c4791461072357610227565b8063be10b6141461061c578063cd6dc68714610624578063dd62ed3e14610650578063e30443bc1461067e578063e7841ec0146106aa57610227565b8063a8b9d240116100ff578063a8b9d24014610559578063a9059cbb1461057f578063aafd847a146105ab578063ba72a955146105d1578063bc4c4b37146105ee57610227565b80638da5cb5b146104db57806391b89fba146104ff57806395d89b4114610525578063a457c2d71461052d57610227565b806331e79db0116101b35780636a474002116101825780636a474002146104955780636f2789ec1461049d57806370a08231146104a5578063715018a6146104cb57806385a6b3ae146104d357610227565b806331e79db0146103b357806339509351146103db5780634e7b827f146104075780635183d6fd1461042d57610227565b8063226cfa3d116101fa578063226cfa3d1461030b57806323b872dd1461033157806327ce0147146103675780633009a6091461038d578063313ce5671461039557610227565b806306fdde031461022c578063095ea7b3146102a957806309bbedde146102e957806318160ddd14610303575b600080fd5b61023461075e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026e578181015183820152602001610256565b50505050905090810190601f16801561029b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d5600480360360408110156102bf57600080fd5b506001600160a01b0381351690602001356107f4565b604080519115158252519081900360200190f35b6102f1610812565b60408051918252519081900360200190f35b6102f1610818565b6102f16004803603602081101561032157600080fd5b50356001600160a01b031661081e565b6102d56004803603606081101561034757600080fd5b506001600160a01b03813581169160208101359091169060400135610830565b6102f16004803603602081101561037d57600080fd5b50356001600160a01b03166108b7565b6102f1610916565b61039d61091c565b6040805160ff9092168252519081900360200190f35b6103d9600480360360208110156103c957600080fd5b50356001600160a01b0316610925565b005b6102d5600480360360408110156103f157600080fd5b506001600160a01b038135169060200135610a8b565b6102d56004803603602081101561041d57600080fd5b50356001600160a01b0316610ad9565b61044a6004803603602081101561044357600080fd5b5035610aee565b604080516001600160a01b0390991689526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b6103d9610c4d565b6102f1610c84565b6102f1600480360360208110156104bb57600080fd5b50356001600160a01b0316610c8a565b6103d9610ca5565b6102f1610d51565b6104e3610d57565b604080516001600160a01b039092168252519081900360200190f35b6102f16004803603602081101561051557600080fd5b50356001600160a01b0316610d66565b610234610d71565b6102d56004803603604081101561054357600080fd5b506001600160a01b038135169060200135610dd2565b6102f16004803603602081101561056f57600080fd5b50356001600160a01b0316610e3a565b6102d56004803603604081101561059557600080fd5b506001600160a01b038135169060200135610e66565b6102f1600480360360208110156105c157600080fd5b50356001600160a01b0316610e7a565b6103d9600480360360208110156105e757600080fd5b5035610e95565b6102d56004803603604081101561060457600080fd5b506001600160a01b0381351690602001351515610f89565b6102f1611068565b6103d96004803603604081101561063a57600080fd5b506001600160a01b03813516906020013561106e565b6102f16004803603604081101561066657600080fd5b506001600160a01b0381358116916020013516611178565b6103d96004803603604081101561069457600080fd5b506001600160a01b0381351690602001356111a3565b6102f1611357565b6103d9600480360360208110156106c857600080fd5b503561135d565b6103d9600480360360208110156106e557600080fd5b50356001600160a01b0316611483565b6104e3611586565b61044a6004803603602081101561071357600080fd5b50356001600160a01b0316611595565b6107406004803603602081101561073957600080fd5b5035611708565b60408051938452602084019290925282820152519081900360600190f35b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107ea5780601f106107bf576101008083540402835291602001916107ea565b820191906000526020600020905b8154815290600101906020018083116107cd57829003601f168201915b5050505050905090565b6000610808610801611806565b848461180a565b5060015b92915050565b609c5490565b60355490565b60a26020526000908152604090205481565b600061083d8484846118f6565b6108ad84610849611806565b6108a8856040518060600160405280602881526020016126a3602891396001600160a01b038a16600090815260346020526040812090610887611806565b6001600160a01b03168152602081019190915260400160002054919061192d565b61180a565b5060019392505050565b6001600160a01b038116600090815260996020526040812054600160801b9061090690610901906108fb6108f66108ed88610c8a565b609854906119c4565b611a24565b90611a34565b611a67565b8161090d57fe5b0490505b919050565b60a05481565b60385460ff1690565b61092d611806565b6001600160a01b031661093e610d57565b6001600160a01b031614610987576040805162461bcd60e51b815260206004820181905260248201526000805160206126cb833981519152604482015290519081900360640190fd5b6001600160a01b038116600090815260a1602052604090205460ff16156109ad57600080fd5b6001600160a01b038116600090815260a160205260408120805460ff191660011790556109db908290611a7a565b6040805163131836e760e21b8152609c60048201526001600160a01b03831660248201529051733338cca60f829fa7139656bb910c63d44afd270a91634c60db9c916044808301926000929190829003018186803b158015610a3c57600080fd5b505af4158015610a50573d6000803e3d6000fd5b50506040516001600160a01b03841692507fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b259150600090a250565b6000610808610a98611806565b846108a88560346000610aa9611806565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611ad3565b60a16020526000908152604090205460ff1681565b600080600080600080600080609c733338cca60f829fa7139656bb910c63d44afd270a63deb3d89690916040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b4c57600080fd5b505af4158015610b60573d6000803e3d6000fd5b505050506040513d6020811015610b7657600080fd5b50518910610b9d575060009650600019955085945086935083925082915081905080610c42565b6000609c733338cca60f829fa7139656bb910c63d44afd270a63d1aa9e7e90918c6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610bf957600080fd5b505af4158015610c0d573d6000803e3d6000fd5b505050506040513d6020811015610c2357600080fd5b50519050610c3081611595565b98509850985098509850985098509850505b919395975091939597565b60405162461bcd60e51b81526004018080602001828103825260658152602001806125aa6065913960800191505060405180910390fd5b60a35481565b6001600160a01b031660009081526033602052604090205490565b610cad611806565b6001600160a01b0316610cbe610d57565b6001600160a01b031614610d07576040805162461bcd60e51b815260206004820181905260248201526000805160206126cb833981519152604482015290519081900360640190fd5b6065546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3606580546001600160a01b0319169055565b609b5481565b6065546001600160a01b031690565b600061080c82610e3a565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107ea5780601f106107bf576101008083540402835291602001916107ea565b6000610808610ddf611806565b846108a88560405180606001604052806025815260200161278d6025913960346000610e09611806565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061192d565b6001600160a01b0381166000908152609a602052604081205461080c90610e60846108b7565b90611b2d565b6000610808610e73611806565b84846118f6565b6001600160a01b03166000908152609a602052604090205490565b610e9d611806565b6001600160a01b0316610eae610d57565b6001600160a01b031614610ef7576040805162461bcd60e51b815260206004820181905260248201526000805160206126cb833981519152604482015290519081900360640190fd5b6000610f01610818565b11610f0b57600080fd5b8015610f8657610f3c610f1c610818565b610f2a83600160801b6119c4565b81610f3157fe5b609854919004611ad3565b60985560408051828152905133917fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d78454116511919081900360200190a2609b54610f829082611ad3565b609b555b50565b6000610f93611806565b6001600160a01b0316610fa4610d57565b6001600160a01b031614610fed576040805162461bcd60e51b815260206004820181905260248201526000805160206126cb833981519152604482015290519081900360640190fd5b6000610ff884611b8a565b9050801561105e576001600160a01b038416600081815260a260209081526040918290204290558151848152915186151593927fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf09292908290030190a3600191505061080c565b5060009392505050565b60a45481565b600054610100900460ff16806110875750611087611cf9565b80611095575060005460ff16155b6110d05760405162461bcd60e51b815260040180806020018281038252602e81526020018061260f602e913960400191505060405180910390fd5b600054610100900460ff161580156110fb576000805460ff1961ff0019909116610100171660011790555b611156836040518060400160405280601081526020016f2224ab24a222a7222faa2920a1a5a2a960811b8152506040518060400160405280601081526020016f2224ab24a222a7222faa2920a1a5a2a960811b815250611d0a565b610e1060a35560a48290558015611173576000805461ff00191690555b505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6111ab611806565b6001600160a01b03166111bc610d57565b6001600160a01b031614611205576040805162461bcd60e51b815260206004820181905260248201526000805160206126cb833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260a1602052604090205460ff161561122b57611353565b60a45481106112c35761123e8282611a7a565b60408051632f0ad01760e21b8152609c60048201526001600160a01b0384166024820152604481018390529051733338cca60f829fa7139656bb910c63d44afd270a9163bc2b405c916064808301926000929190829003018186803b1580156112a657600080fd5b505af41580156112ba573d6000803e3d6000fd5b50505050611348565b6112ce826000611a7a565b6040805163131836e760e21b8152609c60048201526001600160a01b03841660248201529051733338cca60f829fa7139656bb910c63d44afd270a91634c60db9c916044808301926000929190829003018186803b15801561132f57600080fd5b505af4158015611343573d6000803e3d6000fd5b505050505b611173826001610f89565b5050565b60a05490565b611365611806565b6001600160a01b0316611376610d57565b6001600160a01b0316146113bf576040805162461bcd60e51b815260206004820181905260248201526000805160206126cb833981519152604482015290519081900360640190fd5b610e1081101580156113d45750620151808111155b61140f5760405162461bcd60e51b815260040180806020018281038252604581526020018061263d6045913960600191505060405180910390fd5b60a3548114156114505760405162461bcd60e51b81526004018080602001828103825260378152602001806127566037913960400191505060405180910390fd5b60a35460405182907f474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f90600090a360a355565b61148b611806565b6001600160a01b031661149c610d57565b6001600160a01b0316146114e5576040805162461bcd60e51b815260206004820181905260248201526000805160206126cb833981519152604482015290519081900360640190fd5b6001600160a01b03811661152a5760405162461bcd60e51b81526004018080602001828103825260268152602001806125626026913960400191505060405180910390fd5b6065546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097546001600160a01b031681565b600080600080600080600080889750609c733338cca60f829fa7139656bb910c63d44afd270a6317e142d190918a6040518363ffffffff1660e01b815260040180838152602001826001600160a01b031681526020019250505060206040518083038186803b15801561160757600080fd5b505af415801561161b573d6000803e3d6000fd5b505050506040513d602081101561163157600080fd5b505196506000199550600087126116955760a0548711156116615760a05461165a908890611ddb565b9550611695565b60a054609c5460009110611676576000611685565b60a054609c5461168591611b2d565b90506116918882611a34565b9650505b61169e88610e3a565b94506116a9886108b7565b6001600160a01b038916600090815260a260205260409020549094509250826116d35760006116e1565b60a3546116e1908490611ad3565b91504282116116f15760006116fb565b6116fb8242611b2d565b9050919395975091939597565b609c54600090819081908061172857505060a054600092508291506117ff565b60a0546000805a90506000805b898410801561174357508582105b156117ee57609c54600190950194851061175c57600094505b6000609c600001868154811061176e57fe5b60009182526020808320909101546001600160a01b031680835260a290915260409091205490915061179f90611e0d565b156117bb576117af816001610f89565b156117bb576001909101905b60019092019160005a9050808511156117e5576117e26117db8683611b2d565b8790611ad3565b95505b93506117359050565b60a085905590975095509193505050505b9193909250565b3390565b6001600160a01b03831661184f5760405162461bcd60e51b81526004018080602001828103825260248152602001806127326024913960400191505060405180910390fd5b6001600160a01b0382166118945760405162461bcd60e51b81526004018080602001828103825260228152602001806125886022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60405162461bcd60e51b81526004018080602001828103825260268152602001806126eb6026913960400191505060405180910390fd5b600081848411156119bc5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611981578181015183820152602001611969565b50505050905090810190601f1680156119ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000826119d35750600061080c565b828202828482816119e057fe5b0414611a1d5760405162461bcd60e51b81526004018080602001828103825260218152602001806126826021913960400191505060405180910390fd5b9392505050565b6000818181121561080c57600080fd5b6000828201818312801590611a495750838112155b80611a5e5750600083128015611a5e57508381125b611a1d57600080fd5b600080821215611a7657600080fd5b5090565b6000611a8583610c8a565b905080821115611aad576000611a9b8383611b2d565b9050611aa78482611e34565b50611173565b80821015611173576000611ac18284611b2d565b9050611acd8482611e98565b50505050565b600082820183811015611a1d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115611b84576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080611b9683610e3a565b90508015611cf0576001600160a01b0383166000908152609a6020526040902054611bc19082611ad3565b6001600160a01b0384166000818152609a6020908152604091829020939093558051848152905191927fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d92918290030190a26097546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018590529151600093929092169163a9059cbb9160448082019260209290919082900301818787803b158015611c6c57600080fd5b505af1158015611c80573d6000803e3d6000fd5b505050506040513d6020811015611c9657600080fd5b5051905080611ce8576001600160a01b0384166000908152609a6020526040902054611cc29083611b2d565b6001600160a01b0385166000908152609a60205260408120919091559250610911915050565b509050610911565b50600092915050565b6000611d0430611edc565b15905090565b600054610100900460ff1680611d235750611d23611cf9565b80611d31575060005460ff16155b611d6c5760405162461bcd60e51b815260040180806020018281038252602e81526020018061260f602e913960400191505060405180910390fd5b600054610100900460ff16158015611d97576000805460ff1961ff0019909116610100171660011790555b611d9f611ee2565b611da98383611f93565b609780546001600160a01b0319166001600160a01b0386161790558015611acd576000805461ff001916905550505050565b6000818303818312801590611df05750838113155b80611a5e5750600083128015611a5e5750838113611a1d57600080fd5b600042821115611e1f57506000610911565b60a354611e2c4284611b2d565b101592915050565b611e3e8282612048565b611e78611e596108f6836098546119c490919063ffffffff16565b6001600160a01b03841660009081526099602052604090205490611ddb565b6001600160a01b0390921660009081526099602052604090209190915550565b611ea2828261213a565b611e78611ebd6108f6836098546119c490919063ffffffff16565b6001600160a01b03841660009081526099602052604090205490611a34565b3b151590565b600054610100900460ff1680611efb5750611efb611cf9565b80611f09575060005460ff16155b611f445760405162461bcd60e51b815260040180806020018281038252602e81526020018061260f602e913960400191505060405180910390fd5b600054610100900460ff16158015611f6f576000805460ff1961ff0019909116610100171660011790555b611f77612236565b611f7f6122d6565b8015610f86576000805461ff001916905550565b600054610100900460ff1680611fac5750611fac611cf9565b80611fba575060005460ff16155b611ff55760405162461bcd60e51b815260040180806020018281038252602e81526020018061260f602e913960400191505060405180910390fd5b600054610100900460ff16158015612020576000805460ff1961ff0019909116610100171660011790555b612028612236565b61203283836123cf565b8015611173576000805461ff0019169055505050565b6001600160a01b0382166120a3576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6120af60008383611173565b6035546120bc9082611ad3565b6035556001600160a01b0382166000908152603360205260409020546120e29082611ad3565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b03821661217f5760405162461bcd60e51b81526004018080602001828103825260218152602001806127116021913960400191505060405180910390fd5b61218b82600083611173565b6121c881604051806060016040528060228152602001612540602291396001600160a01b038516600090815260336020526040902054919061192d565b6001600160a01b0383166000908152603360205260409020556035546121ee9082611b2d565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600054610100900460ff168061224f575061224f611cf9565b8061225d575060005460ff16155b6122985760405162461bcd60e51b815260040180806020018281038252602e81526020018061260f602e913960400191505060405180910390fd5b600054610100900460ff16158015611f7f576000805460ff1961ff0019909116610100171660011790558015610f86576000805461ff001916905550565b600054610100900460ff16806122ef57506122ef611cf9565b806122fd575060005460ff16155b6123385760405162461bcd60e51b815260040180806020018281038252602e81526020018061260f602e913960400191505060405180910390fd5b600054610100900460ff16158015612363576000805460ff1961ff0019909116610100171660011790555b600061236d611806565b606580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610f86576000805461ff001916905550565b600054610100900460ff16806123e857506123e8611cf9565b806123f6575060005460ff16155b6124315760405162461bcd60e51b815260040180806020018281038252602e81526020018061260f602e913960400191505060405180910390fd5b600054610100900460ff1615801561245c576000805460ff1961ff0019909116610100171660011790555b825161246f9060369060208601906124a7565b5081516124839060379060208501906124a7565b506038805460ff191660121790558015611173576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826124dd5760008555612523565b82601f106124f657805160ff1916838001178555612523565b82800160010185558215612523579182015b82811115612523578251825591602001919060010190612508565b50611a769291505b80821115611a76576000815560010161252b56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734469766964656e645f547261636b65723a2077697468647261774469766964656e642064697361626c65642e20557365207468652027636c61696d272066756e6374696f6e206f6e20746865206d61696e2042414259544f4b454e20636f6e74726163742e496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65644469766964656e645f547261636b65723a20636c61696d57616974206d757374206265207570646174656420746f206265747765656e203120616e6420323420686f757273536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724469766964656e645f547261636b65723a204e6f207472616e736665727320616c6c6f77656445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734469766964656e645f547261636b65723a2043616e6e6f742075706461746520636c61696d5761697420746f2073616d652076616c756545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e93a3a658f9edd7b71dde05623100b4a09b0583d77b00fa9e448dde99be9277164736f6c63430007060033