[ { "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": "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": 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": "INTERVAL_DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ManualLPDividendDistribution", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ManualMeme3DividendDistribution", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ManualNeiroDividendDistribution", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ManualPepeDividendDistribution", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "claimDividend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [], "name": "devWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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 DividendTracker", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "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": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "forceSend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAccountInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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" }, { "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": "getCurrentInterval", "outputs": [ { "internalType": "enum MOM.Interval", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalDividendsDistributed", "outputs": [ { "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": "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": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxBuyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSellAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "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": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" } ], "name": "rescueETH20Tokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IUniswapRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newPair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidity", "type": "uint256" }, { "internalType": "uint256", "name": "_dev", "type": "uint256" }, { "internalType": "uint256", "name": "_meme3", "type": "uint256" } ], "name": "setBuyTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "state", "type": "bool" } ], "name": "setClaimEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "setDevWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxBuy", "type": "uint256" }, { "internalType": "uint256", "name": "maxSell", "type": "uint256" } ], "name": "setMaxBuyAndSell", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidity", "type": "uint256" }, { "internalType": "uint256", "name": "_dev", "type": "uint256" } ], "name": "setSellTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokensArray", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBuyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSellTax", "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": "tokenAddress", "type": "address" } ], "name": "trackerRescueETH20Tokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tradingEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "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": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updateAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updatePepeDividendTracker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newRouter", "type": "address" } ], "name": "updateRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "withdrawableDividendOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526009805462ffff001916620101001790556005600f81905560196010819055601460118190556012929092556013558055603260158190556016553480156200004c57600080fd5b506040518060400160405280600f81526020016e4d6f74686572206f66204d656d657360881b815250604051806040016040528060038152602001624d4f4d60e81b8152508160039081620000a2919062000d0d565b506004620000b1828262000d0d565b505050620000ce620000c86200079560201b60201c565b62000799565b604051620000dc9062000c5b565b620000e79062000dd9565b604051809103906000f08015801562000104573d6000803e3d6000fd5b50600980546001600160a01b039290921664010000000002600160201b600160c01b031990921691909117905562000150730bbe3e08070cf743a1cd5968b381f49222e647c3620007eb565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d0919062000e37565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000244919062000e37565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000292573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b8919062000e37565b42600855600680546001600160a01b038086166001600160a01b03199283161790925560078054928416929091169190911790559050620002fc620f424062000817565b6200030b6301312d006200083b565b6200031b6301312d00806200085f565b620003288160016200089b565b601a80546001600160a01b0319908116736982508145454ce325ddbe47a25d4ec3d2311933908117909255601b8054821673ee2a03aa6dacf51c18679c516ad5283d8e7c2637908117909155601c8054909216909155600954604051630df301ed60e11b8152600481019390935260248301919091526001600160a01b0383811660448401526401000000009091041690631be603da90606401600060405180830381600087803b158015620003dd57600080fd5b505af1158015620003f2573d6000803e3d6000fd5b505060095460405162241fbd60e51b81526401000000009091046001600160a01b031660048201819052600160248301529250630483f7a09150604401600060405180830381600087803b1580156200044a57600080fd5b505af11580156200045f573d6000803e3d6000fd5b505060095460405162241fbd60e51b8152306004820152600160248201526401000000009091046001600160a01b03169250630483f7a09150604401600060405180830381600087803b158015620004b657600080fd5b505af1158015620004cb573d6000803e3d6000fd5b505060095464010000000090046001600160a01b03169150630483f7a09050620004fd6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b1580156200054657600080fd5b505af11580156200055b573d6000803e3d6000fd5b505060095460405162241fbd60e51b815261dead6004820152600160248201526401000000009091046001600160a01b03169250630483f7a09150604401600060405180830381600087803b158015620005b457600080fd5b505af1158015620005c9573d6000803e3d6000fd5b505060095460405162241fbd60e51b815260006004820152600160248201526401000000009091046001600160a01b03169250630483f7a09150604401600060405180830381600087803b1580156200062157600080fd5b505af115801562000636573d6000803e3d6000fd5b505060095460405162241fbd60e51b81526001600160a01b038681166004830152600160248301526401000000009092049091169250630483f7a09150604401600060405180830381600087803b1580156200069157600080fd5b505af1158015620006a6573d6000803e3d6000fd5b50505050620006bd81600162000a1260201b60201c565b620006ca30600162000a12565b620006d782600162000a12565b600954620006f89064010000000090046001600160a01b0316600162000a12565b6200070761dead600162000a12565b620007266200071e6005546001600160a01b031690565b600162000a47565b6200073330600162000a47565b600954620007549064010000000090046001600160a01b0316600162000a47565b6200076361dead600162000a47565b6200078d6200077a6005546001600160a01b031690565b6b033b2e3c91efc989409c000062000b35565b505062000eae565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620007f562000bf8565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6200082162000bf8565b6200083581670de0b6b3a764000062000e78565b600b5550565b6200084562000bf8565b6200085981670de0b6b3a764000062000e78565b600e5550565b6200086962000bf8565b6200087d82670de0b6b3a764000062000e78565b600c556200089481670de0b6b3a764000062000e78565b600d555050565b6001600160a01b03821660009081526018602052604090205481151560ff909116151503620009375760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084015b60405180910390fd5b6001600160a01b0382166000908152601860205260409020805460ff19168215801591909117909155620009d65760095460405162241fbd60e51b81526001600160a01b0384811660048301526001602483015264010000000090920490911690630483f7a090604401600060405180830381600087803b158015620009bc57600080fd5b505af1158015620009d1573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b62000a1c62000bf8565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b62000a5162000bf8565b6001600160a01b03821660009081526017602052604090205481151560ff90911615150362000ad65760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b60648201526084016200092e565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03821662000b8d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200092e565b806002600082825462000ba1919062000e98565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b0316331462000c545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200092e565b565b505050565b6127eb80620047ed83390190565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000c9457607f821691505b60208210810362000cb557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000c5657600081815260208120601f850160051c8101602086101562000ce45750805b601f850160051c820191505b8181101562000d055782815560010162000cf0565b505050505050565b81516001600160401b0381111562000d295762000d2962000c69565b62000d418162000d3a845462000c7f565b8462000cbb565b602080601f83116001811462000d79576000841562000d605750858301515b600019600386901b1c1916600185901b17855562000d05565b600085815260208120601f198616915b8281101562000daa5788860151825594840194600190910190840162000d89565b508582101562000dc95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600062000e0560408301600b81526a26a7a6afaa3930b1b5b2b960a91b602082015260400190565b828103602084015262000e3081600b81526a26a7a6afaa3930b1b5b2b960a91b602082015260400190565b9392505050565b60006020828403121562000e4a57600080fd5b81516001600160a01b038116811462000e3057600080fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000e925762000e9262000e62565b92915050565b8082018082111562000e925762000e9262000e62565b61392f8062000ebe6000396000f3fe6080604052600436106103a65760003560e01c806388e765ff116101e7578063b62496f51161010d578063e2f45605116100a0578063f0fc6bca1161006f578063f0fc6bca14610b3f578063f2fde38b14610b54578063f887ea4014610b74578063f8b45b0514610b9457600080fd5b8063e2f4560514610ad3578063e6fd48bc14610ae9578063ec79690814610aff578063ed6d909614610b1f57600080fd5b8063d2fcc001116100dc578063d2fcc00114610a53578063d3e363c114610a73578063dd62ed3e14610a93578063e01af92c14610ab357600080fd5b8063b62496f5146109c3578063c0246668146109f3578063c18bc19514610a13578063c851cc3214610a3357600080fd5b80639a7a23d611610185578063a8aa1b3111610154578063a8aa1b3114610943578063a8b9d24014610963578063a9059cbb14610983578063afa4f3b2146109a357600080fd5b80639a7a23d6146108c3578063a11a1682146108e3578063a457c2d714610903578063a5feac231461092357600080fd5b80638da5cb5b116101c15780638da5cb5b146108505780638ea5220f1461086e57806392929a091461088e57806395d89b41146108ae57600080fd5b806388e765ff146108055780638a8c523c1461081b5780638c9684f91461083057600080fd5b806339509351116102cc57806366d602ae1161026a578063715018a611610239578063715018a61461073c57806379b447bd146107515780637b510fe8146107715780638512775e146107e557600080fd5b806366d602ae146106b15780636843cd84146106c75780636ddd1713146106e757806370a082311461070657600080fd5b80634ada218b116102a65780634ada218b146106215780634c788a6a146106425780634fbee193146106625780635aae2e1d1461069b57600080fd5b806339509351146105c957806344e43c98146105e957806346469afb1461060b57600080fd5b80631bff7898116103445780632c1f5216116103135780632c1f52161461051957806330bb4cff14610558578063313ce5671461058d5780633848e808146105a957600080fd5b80631bff7898146104a35780631f53ac02146104b957806323b872dd146104d95780632866ed21146104f957600080fd5b80630a78097d116103805780630a78097d1461042f57806312b77e8a1461044f57806318160ddd146104645780631870517a1461048357600080fd5b80630483f7a0146103b257806306fdde03146103d4578063095ea7b3146103ff57600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103d26103cd366004613359565b610baa565b005b3480156103e057600080fd5b506103e9610c1f565b6040516103f69190613392565b60405180910390f35b34801561040b57600080fd5b5061041f61041a3660046133e0565b610cb1565b60405190151581526020016103f6565b34801561043b57600080fd5b506103d261044a36600461340c565b610ccb565b34801561045b57600080fd5b506103d2610dfa565b34801561047057600080fd5b506002545b6040519081526020016103f6565b34801561048f57600080fd5b506103d261049e366004613430565b610e88565b3480156104af57600080fd5b5061047560165481565b3480156104c557600080fd5b506103d26104d436600461340c565b610f17565b3480156104e557600080fd5b5061041f6104f436600461345c565b610f41565b34801561050557600080fd5b5060095461041f9062010000900460ff1681565b34801561052557600080fd5b5060095461054090600160201b90046001600160a01b031681565b6040516001600160a01b0390911681526020016103f6565b34801561056457600080fd5b5061056d610f65565b6040805194855260208501939093529183015260608201526080016103f6565b34801561059957600080fd5b50604051601281526020016103f6565b3480156105b557600080fd5b506103d26105c436600461349d565b611155565b3480156105d557600080fd5b5061041f6105e43660046133e0565b6111f5565b3480156105f557600080fd5b506105fe611217565b6040516103f691906134cc565b34801561061757600080fd5b5061047560155481565b34801561062d57600080fd5b5060095461041f906301000000900460ff1681565b34801561064e57600080fd5b506103d261065d36600461349d565b611299565b34801561066e57600080fd5b5061041f61067d36600461340c565b6001600160a01b031660009081526017602052604090205460ff1690565b3480156106a757600080fd5b50610475610e1081565b3480156106bd57600080fd5b50610475600d5481565b3480156106d357600080fd5b506104756106e236600461340c565b6113a0565b3480156106f357600080fd5b5060095461041f90610100900460ff1681565b34801561071257600080fd5b5061047561072136600461340c565b6001600160a01b031660009081526020819052604090205490565b34801561074857600080fd5b506103d2611416565b34801561075d57600080fd5b506103d261076c3660046134f4565b61142a565b34801561077d57600080fd5b5061079161078c36600461340c565b611460565b604080516001600160a01b03909b168b5260208b0199909952978901969096526060880194909452608087019290925260a086015260c085015260e0840152610100830152610120820152610140016103f6565b3480156107f157600080fd5b506103d261080036600461349d565b61150a565b34801561081157600080fd5b50610475600c5481565b34801561082757600080fd5b506103d26115aa565b34801561083c57600080fd5b506103d261084b36600461340c565b611621565b34801561085c57600080fd5b506005546001600160a01b0316610540565b34801561087a57600080fd5b50600a54610540906001600160a01b031681565b34801561089a57600080fd5b506103d26108a9366004613516565b6116bc565b3480156108ba57600080fd5b506103e96116e0565b3480156108cf57600080fd5b506103d26108de366004613359565b6116ef565b3480156108ef57600080fd5b506103d26108fe3660046134f4565b611701565b34801561090f57600080fd5b5061041f61091e3660046133e0565b611774565b34801561092f57600080fd5b506103d261093e36600461349d565b6117ef565b34801561094f57600080fd5b50600754610540906001600160a01b031681565b34801561096f57600080fd5b5061056d61097e36600461340c565b61188f565b34801561098f57600080fd5b5061041f61099e3660046133e0565b61191a565b3480156109af57600080fd5b506103d26109be36600461349d565b611928565b3480156109cf57600080fd5b5061041f6109de36600461340c565b60186020526000908152604090205460ff1681565b3480156109ff57600080fd5b506103d2610a0e366004613359565b611948565b348015610a1f57600080fd5b506103d2610a2e36600461349d565b611a32565b348015610a3f57600080fd5b506103d2610a4e36600461340c565b611a52565b348015610a5f57600080fd5b506103d2610a6e366004613359565b611a7c565b348015610a7f57600080fd5b506103d2610a8e36600461340c565b611aaf565b348015610a9f57600080fd5b50610475610aae366004613533565b611d0b565b348015610abf57600080fd5b506103d2610ace366004613516565b611d36565b348015610adf57600080fd5b50610475600b5481565b348015610af557600080fd5b5061047560085481565b348015610b0b57600080fd5b50610540610b1a36600461349d565b611d58565b348015610b2b57600080fd5b506103d2610b3a36600461340c565b611d78565b348015610b4b57600080fd5b506103d2611e3b565b348015610b6057600080fd5b506103d2610b6f36600461340c565b611efe565b348015610b8057600080fd5b50600654610540906001600160a01b031681565b348015610ba057600080fd5b50610475600e5481565b610bb2611f74565b60095460405162241fbd60e51b8152600160201b9091046001600160a01b031690630483f7a090610be99085908590600401613561565b600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b505050505050565b606060038054610c2e9061357c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5a9061357c565b8015610ca75780601f10610c7c57610100808354040283529160200191610ca7565b820191906000526020600020905b815481529060010190602001808311610c8a57829003601f168201915b5050505050905090565b600033610cbf818585611fce565b60019150505b92915050565b600a546001600160a01b03163314610cfe5760405162461bcd60e51b8152600401610cf5906135b6565b60405180910390fd5b806001600160a01b031663a9059cbb610d1f6005546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015610d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8791906135df565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610dd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df691906135f8565b5050565b600a546001600160a01b03163314610e245760405162461bcd60e51b8152600401610cf5906135b6565b600a5460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114610e75576040519150601f19603f3d011682016040523d82523d6000602084013e610e7a565b606091505b5050905080610df657600080fd5b610e90611f74565b61015e81610e9e848661362b565b610ea8919061362b565b1115610eeb5760405162461bcd60e51b8152602060048201526012602482015271466565206d757374206265203c3d2033352560701b6044820152606401610cf5565b600f8390556010829055601181905580610f05838561362b565b610f0f919061362b565b601555505050565b610f1f611f74565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600033610f4f8582856120f2565b610f5a85858561216c565b506001949350505050565b600080600080600960049054906101000a90046001600160a01b03166001600160a01b031663265870486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe291906135df565b600960049054906101000a90046001600160a01b03166001600160a01b03166384db64c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015611035573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105991906135df565b600960049054906101000a90046001600160a01b03166001600160a01b031663071266b76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d091906135df565b600960049054906101000a90046001600160a01b03166001600160a01b031663ccc29bf66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611123573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114791906135df565b935093509350935090919293565b600a546001600160a01b0316331461117f5760405162461bcd60e51b8152600401610cf5906135b6565b60006111a133600960049054906101000a90046001600160a01b031684610f41565b90508015610df657600954604051631bb5463b60e11b815260006004820181905260248201819052604482018590526064820152600160201b9091046001600160a01b03169063376a8c7690608401610be9565b600033610cbf8185856112088383611d0b565b611212919061362b565b611fce565b60008060085442611228919061363e565b90506000600361123a610e1084613667565b611244919061367b565b9050806000036112575760009250505090565b806001036112685760019250505090565b6001811180156112825750601c546001600160a01b031615155b156112905760029250505090565b60009250505090565b600a546001600160a01b031633146112c35760405162461bcd60e51b8152600401610cf5906135b6565b6007546009546040516323b872dd60e01b8152336004820152600160201b9091046001600160a01b0390811660248301526044820184905260009216906323b872dd906064016020604051808303816000875af1158015611328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134c91906135f8565b90508015610df657600954604051631bb5463b60e11b815260048101849052600060248201819052604482018190526064820152600160201b9091046001600160a01b03169063376a8c7690608401610be9565b6009546040516370a0823160e01b81526001600160a01b038381166004830152600092600160201b900416906370a0823190602401602060405180830381865afa1580156113f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc591906135df565b61141e611f74565b6114286000612741565b565b611432611f74565b61144482670de0b6b3a76400006136a5565b600c5561145981670de0b6b3a76400006136a5565b600d555050565b60095460405163fbcbc0f160e01b81526001600160a01b038381166004830152600092839283928392839283928392839283928392600160201b9004169063fbcbc0f19060240161014060405180830381865afa1580156114c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e991906136bc565b99509950995099509950995099509950995099509193959799509193959799565b600a546001600160a01b031633146115345760405162461bcd60e51b8152600401610cf5906135b6565b600061155633600960049054906101000a90046001600160a01b031684610f41565b90508015610df657600954604051631bb5463b60e11b815260006004820181905260248201819052604482015260648101849052600160201b9091046001600160a01b03169063376a8c7690608401610be9565b6115b2611f74565b6009546301000000900460ff161561160c5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610cf5565b6009805463ff00000019166301000000179055565b600a546001600160a01b0316331461164b5760405162461bcd60e51b8152600401610cf5906135b6565b60095460405163497ec82360e01b81523360048201526001600160a01b038381166024830152600160201b9092049091169063497ec823906044015b600060405180830381600087803b1580156116a157600080fd5b505af11580156116b5573d6000803e3d6000fd5b5050505050565b6116c4611f74565b60098054911515620100000262ff000019909216919091179055565b606060048054610c2e9061357c565b6116f7611f74565b610df68282612793565b611709611f74565b61015e611716828461362b565b11156117595760405162461bcd60e51b8152602060048201526012602482015271466565206d757374206265203c3d2033352560701b6044820152606401610cf5565b6012829055601381905561176d818361362b565b6016555050565b600033816117828286611d0b565b9050838110156117e25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610cf5565b610f5a8286868403611fce565b600a546001600160a01b031633146118195760405162461bcd60e51b8152600401610cf5906135b6565b600061183b33600960049054906101000a90046001600160a01b031684610f41565b90508015610df657600954604051631bb5463b60e11b815260006004820181905260248201859052604482018190526064820152600160201b9091046001600160a01b03169063376a8c7690608401610be9565b6009546040516302a2e74960e61b81526001600160a01b038381166004830152600092839283928392600160201b9004169063a8b9d24090602401608060405180830381865afa1580156118e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190b919061373b565b93509350935093509193509193565b600033610cbf81858561216c565b611930611f74565b61194281670de0b6b3a76400006136a5565b600b5550565b611950611f74565b6001600160a01b03821660009081526017602052604090205481151560ff9091161515036119d35760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b6064820152608401610cf5565b6001600160a01b038216600081815260176020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b611a3a611f74565b611a4c81670de0b6b3a76400006136a5565b600e5550565b611a5a611f74565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b611a84611f74565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b600a546001600160a01b03163314611ad95760405162461bcd60e51b8152600401610cf5906135b6565b60405162241fbd60e51b815281906001600160a01b03821690630483f7a090611b09908490600190600401613561565b600060405180830381600087803b158015611b2357600080fd5b505af1158015611b37573d6000803e3d6000fd5b505060405162241fbd60e51b81526001600160a01b0384169250630483f7a09150611b69903090600190600401613561565b600060405180830381600087803b158015611b8357600080fd5b505af1158015611b97573d6000803e3d6000fd5b50505050806001600160a01b0316630483f7a0611bbc6005546001600160a01b031690565b60016040518363ffffffff1660e01b8152600401611bdb929190613561565b600060405180830381600087803b158015611bf557600080fd5b505af1158015611c09573d6000803e3d6000fd5b505060065460405162241fbd60e51b81526001600160a01b038086169450630483f7a09350611c3f921690600190600401613561565b600060405180830381600087803b158015611c5957600080fd5b505af1158015611c6d573d6000803e3d6000fd5b505060095460405162241fbd60e51b8152600160201b9091046001600160a01b03169250630483f7a09150611caa90600090600190600401613561565b600060405180830381600087803b158015611cc457600080fd5b505af1158015611cd8573d6000803e3d6000fd5b5050600980546001600160a01b03909416600160201b02640100000000600160c01b031990941693909317909255505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b611d3e611f74565b600980549115156101000261ff0019909216919091179055565b601a8160038110611d6857600080fd5b01546001600160a01b0316905081565b600a546001600160a01b03163314611da25760405162461bcd60e51b8152600401610cf5906135b6565b601c546001600160a01b031615611de95760405162461bcd60e51b815260206004820152600b60248201526a185b1c9958591e481cd95d60aa1b6044820152606401610cf5565b80601a60020180546001600160a01b0319166001600160a01b03928316179055600954604051633348a30d60e11b81528383166004820152600160201b90910490911690636691461a90602401611687565b60095462010000900460ff16611e875760405162461bcd60e51b815260206004820152601160248201527010db185a5b481b9bdd08195b98589b1959607a1b6044820152606401610cf5565b60095460405163807ab4f760e01b8152336004820152600160201b9091046001600160a01b03169063807ab4f7906024016020604051808303816000875af1158015611ed7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efb91906135f8565b50565b611f06611f74565b6001600160a01b038116611f6b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cf5565b611efb81612741565b6005546001600160a01b031633146114285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cf5565b6001600160a01b0383166120305760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610cf5565b6001600160a01b0382166120915760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610cf5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006120fe8484611d0b565b9050600019811461216657818110156121595760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610cf5565b6121668484848403611fce565b50505050565b6001600160a01b0383166121925760405162461bcd60e51b8152600401610cf590613771565b6001600160a01b0382166121b85760405162461bcd60e51b8152600401610cf5906137b6565b6001600160a01b03831660009081526017602052604090205460ff161580156121fa57506001600160a01b03821660009081526017602052604090205460ff16155b8015612209575060095460ff16155b156123db576009546301000000900460ff1661225c5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610cf5565b6001600160a01b03821660009081526018602052604090205460ff16156122d457600d548111156122cf5760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e74006044820152606401610cf5565b612347565b6001600160a01b03831660009081526018602052604090205460ff161561234757600c548111156123475760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e7400006044820152606401610cf5565b6001600160a01b03821660009081526019602052604090205460ff166123db57600e546001600160a01b03831660009081526020819052604090205461238d908361362b565b11156123db5760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610cf5565b806000036123f4576123ef838360006128fd565b505050565b30600090815260208190526040902054600b548110801590819061241b575060095460ff16155b801561242e5750600954610100900460ff165b801561245257506001600160a01b03841660009081526018602052604090205460ff165b801561247757506001600160a01b03851660009081526017602052604090205460ff16155b801561249c57506001600160a01b03841660009081526017602052604090205460ff16155b156124cc576009805460ff19166001179055601654156124c1576124c1600b54612a27565b6009805460ff191690555b6009546001600160a01b03861660009081526017602052604090205460ff9182161591168061251357506001600160a01b03851660009081526017602052604090205460ff165b1561251c575060005b6001600160a01b03851660009081526018602052604090205460ff1615801561255e57506001600160a01b03861660009081526018602052604090205460ff16155b15612567575060005b8015612608576001600160a01b03851660009081526018602052604081205460ff16156125b0576103e86016548661259f91906136a5565b6125a99190613667565b90506125ef565b6001600160a01b03871660009081526018602052604090205460ff16156125ef576103e8601554866125e291906136a5565b6125ec9190613667565b90505b6125f9818661363e565b94506126068730836128fd565b505b6126138686866128fd565b6009546001600160a01b03600160201b9091041663e30443bc8761264c816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561269257600080fd5b505af19250505080156126a3575060015b506009546001600160a01b03600160201b9091041663e30443bc866126dd816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561272357600080fd5b505af1925050508015612734575060015b15610c1757505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821660009081526018602052604090205481151560ff9091161515036128295760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c756500000000000000006064820152608401610cf5565b6001600160a01b0382166000908152601860205260409020805460ff191682158015919091179091556128c15760095460405162241fbd60e51b8152600160201b9091046001600160a01b031690630483f7a09061288e908590600190600401613561565b600060405180830381600087803b1580156128a857600080fd5b505af11580156128bc573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6001600160a01b0383166129235760405162461bcd60e51b8152600401610cf590613771565b6001600160a01b0382166129495760405162461bcd60e51b8152600401610cf5906137b6565b6001600160a01b038316600090815260208190526040902054818110156129c15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610cf5565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3612166565b3060009081526020819052604090205481811580612a43575080155b15612a4d57505050565b612a5881600f6136a5565b821115612a6d57612a6a600f826136a5565b90505b600060165460125483612a8091906136a5565b612a8a9190613667565b9050600060165460135484612a9f91906136a5565b612aa99190613667565b9050612ab482612bc8565b600060165460145485612ac791906136a5565b612ad19190613667565b90506000612add611217565b6002811115612aee57612aee6134b6565b9050612afa8183612d66565b47612b0484613020565b6000612b10824761363e565b90508015612bbd57600a546040516000916001600160a01b03169083908381818185875af1925050503d8060008114612b65576040519150601f19603f3d011682016040523d82523d6000602084013e612b6a565b606091505b5050905080612bbb5760405162461bcd60e51b815260206004820181905260248201527f4661696c656420746f2073656e642045544820746f206465762077616c6c65746044820152606401610cf5565b505b505050505050505050565b80612bd4600282613667565b9050612bdf81613020565b478015612bf057612bf08282613144565b6007546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5d91906135df565b90508080156116b55760075460095460405163a9059cbb60e01b8152600160201b9091046001600160a01b03908116600483015260248201849052600092169063a9059cbb906044016020604051808303816000875af1158015612cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce991906135f8565b90508015610c1757600954604051631bb5463b60e11b815260006004820181905260248201819052604482015260648101849052600160201b9091046001600160a01b03169063376a8c7690608401600060405180830381600087803b158015612d5257600080fd5b505af1158015612bbb573d6000803e3d6000fd5b47612d7082613020565b6000612d7c824761363e565b90506000601a8560ff1660038110612d9657612d9661368f565b01546001600160a01b031690508115612db357612db382826131ee565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1e91906135df565b90508080156130175760095460405163a9059cbb60e01b81526001600160a01b03600160201b909204821660048201526024810183905260009185169063a9059cbb906044016020604051808303816000875af1158015612e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea791906135f8565b90508015613015578760ff16600003612f3957600954604051631bb5463b60e11b815260048101849052600060248201819052604482018190526064820152600160201b9091046001600160a01b03169063376a8c76906084015b600060405180830381600087803b158015612f1c57600080fd5b505af1158015612f30573d6000803e3d6000fd5b50505050613015565b8760ff16600103612f9057600954604051631bb5463b60e11b815260006004820181905260248201859052604482018190526064820152600160201b9091046001600160a01b03169063376a8c7690608401612f02565b8760ff1660020361301557600954604051631bb5463b60e11b815260006004820181905260248201819052604482018590526064820152600160201b9091046001600160a01b03169063376a8c7690608401600060405180830381600087803b158015612ffc57600080fd5b505af1158015613010573d6000803e3d6000fd5b505050505b505b50505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106130555761305561368f565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156130ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d291906137f9565b816001815181106130e5576130e561368f565b6001600160a01b03928316602091820292909201015260065461310b9130911684611fce565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790610be990859060009086903090429060040161385a565b60065461315c9030906001600160a01b031684611fce565b60065460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156131c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116b59190613896565b6040805160028082526060820183526000926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015613258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061327c91906137f9565b8160008151811061328f5761328f61368f565b60200260200101906001600160a01b031690816001600160a01b03168152505081816001815181106132c3576132c361368f565b6001600160a01b03928316602091820292909201015260065460405163b6f9de9560e01b815291169063b6f9de95908590613309906000908690309042906004016138c4565b6000604051808303818588803b15801561332257600080fd5b505af1158015613015573d6000803e3d6000fd5b6001600160a01b0381168114611efb57600080fd5b8015158114611efb57600080fd5b6000806040838503121561336c57600080fd5b823561337781613336565b915060208301356133878161334b565b809150509250929050565b600060208083528351808285015260005b818110156133bf578581018301518582016040015282016133a3565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156133f357600080fd5b82356133fe81613336565b946020939093013593505050565b60006020828403121561341e57600080fd5b813561342981613336565b9392505050565b60008060006060848603121561344557600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561347157600080fd5b833561347c81613336565b9250602084013561348c81613336565b929592945050506040919091013590565b6000602082840312156134af57600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60208101600383106134ee57634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561350757600080fd5b50508035926020909101359150565b60006020828403121561352857600080fd5b81356134298161334b565b6000806040838503121561354657600080fd5b823561355181613336565b9150602083013561338781613336565b6001600160a01b039290921682521515602082015260400190565b600181811c9082168061359057607f821691505b6020821081036135b057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600f908201526e1b9bdd0819195d881858d8dbdd5b9d608a1b604082015260600190565b6000602082840312156135f157600080fd5b5051919050565b60006020828403121561360a57600080fd5b81516134298161334b565b634e487b7160e01b600052601160045260246000fd5b80820180821115610cc557610cc5613615565b81810381811115610cc557610cc5613615565b634e487b7160e01b600052601260045260246000fd5b60008261367657613676613651565b500490565b60008261368a5761368a613651565b500690565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610cc557610cc5613615565b6000806000806000806000806000806101408b8d0312156136dc57600080fd5b8a516136e781613336565b809a505060208b0151985060408b0151975060608b0151965060808b0151955060a08b0151945060c08b0151935060e08b015192506101008b015191506101208b015190509295989b9194979a5092959850565b6000806000806080858703121561375157600080fd5b505082516020840151604085015160609095015191969095509092509050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60006020828403121561380b57600080fd5b815161342981613336565b600081518084526020808501945080840160005b8381101561384f5781516001600160a01b03168752958201959082019060010161382a565b509495945050505050565b85815284602082015260a06040820152600061387960a0830186613816565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156138ab57600080fd5b8351925060208401519150604084015190509250925092565b8481526080602082015260006138dd6080830186613816565b6001600160a01b0394909416604083015250606001529291505056fea2646970667358221220d53f8e27d5b218d3f824b2f7fbf5a15727fb7e33886aa1ca0cfa894c6def6d8664736f6c6343000814003360806040523480156200001157600080fd5b50604051620027eb380380620027eb833981016040819052620000349162000197565b81818181600362000046838262000290565b50600462000055828262000290565b505050620000726200006c6200007c60201b60201c565b62000080565b505050506200035c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000fa57600080fd5b81516001600160401b0380821115620001175762000117620000d2565b604051601f8301601f19908116603f01168101908282118183101715620001425762000142620000d2565b816040528381526020925086838588010111156200015f57600080fd5b600091505b8382101562000183578582018301518183018401529082019062000164565b600093810190920192909252949350505050565b60008060408385031215620001ab57600080fd5b82516001600160401b0380821115620001c357600080fd5b620001d186838701620000e8565b93506020850151915080821115620001e857600080fd5b50620001f785828601620000e8565b9150509250929050565b600181811c908216806200021657607f821691505b6020821081036200023757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028b57600081815260208120601f850160051c81016020861015620002665750805b601f850160051c820191505b81811015620002875782815560010162000272565b5050505b505050565b81516001600160401b03811115620002ac57620002ac620000d2565b620002c481620002bd845462000201565b846200023d565b602080601f831160018114620002fc5760008415620002e35750858301515b600019600386901b1c1916600185901b17855562000287565b600085815260208120601f198616915b828110156200032d578886015182559484019460019091019084016200030c565b50858210156200034c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61247f806200036c6000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c8063715018a611610151578063aafd847a116100c3578063ce96892111610087578063ce968921146105a6578063dc25b518146105b9578063dd62ed3e146105cc578063e30443bc146105df578063f2fde38b146105f2578063fbcbc0f11461060557600080fd5b8063aafd847a14610538578063bab7c08c14610582578063bb06f2711461058b578063c39bd90d14610594578063ccc29bf61461059d57600080fd5b80638da5cb5b116101155780638da5cb5b146104d357806391b89fba146104e457806395d89b41146104f7578063a457c2d7146104ff578063a8b9d24014610512578063a9059cbb1461052557600080fd5b8063715018a61461046f5780637bec8c8f146104775780637c3906e014610497578063807ab4f7146104b757806384db64c4146104ca57600080fd5b8063313ce567116101ea5780634e7b827f116101ae5780634e7b827f146103ec5780635fcbd2851461040f5780636691461a146104225780636a474002146104355780636eb939831461043d57806370a082311461045c57600080fd5b8063313ce56714610379578063376a8c7614610388578063395093511461039b57806346111e7a146103ae578063497ec823146103d957600080fd5b80630d2c90421161023c5780630d2c90421461030657806318160ddd1461030f5780631be603da1461031757806323b872dd1461032a578063265870481461033d57806327ce01471461034657600080fd5b80630483f7a01461027957806306fdde031461028e578063071266b7146102ac57806308463e11146102c3578063095ea7b3146102e3575b600080fd5b61028c610287366004612116565b61066c565b005b61029661073a565b6040516102a3919061214d565b60405180910390f35b6102b560185481565b6040519081526020016102a3565b6102b56102d136600461219b565b60216020526000908152604090205481565b6102f66102f13660046121b6565b6107cc565b60405190151581526020016102a3565b6102b5601c5481565b6002546102b5565b61028c6103253660046121e0565b6107e6565b6102f6610338366004612223565b61082d565b6102b560165481565b61035961035436600461219b565b610851565b6040805194855260208501939093529183015260608201526080016102a3565b604051601281526020016102a3565b61028c61039636600461225f565b6109b4565b6102f66103a93660046121b6565b610bd6565b6007546103c1906001600160a01b031681565b6040516001600160a01b0390911681526020016102a3565b61028c6103e7366004612291565b610bf8565b6102f66103fa36600461219b565b601e6020526000908152604090205460ff1681565b6006546103c1906001600160a01b031681565b61028c61043036600461219b565b610ce6565b61028c610d10565b6102b561044b36600461219b565b602080526000908152604090205481565b6102b561046a36600461219b565b610d28565b61028c610d43565b6102b561048536600461219b565b601f6020526000908152604090205481565b6102b56104a536600461219b565b60226020526000908152604090205481565b6102f66104c536600461219b565b610d57565b6102b560175481565b6005546001600160a01b03166103c1565b6103596104f236600461219b565b610ea5565b610296610ec3565b6102f661050d3660046121b6565b610ed2565b61035961052036600461219b565b610f4d565b6102f66105333660046121b6565b61100f565b61035961054636600461219b565b6001600160a01b031660009081526012602090815260408083205460138352818420546014845282852054601590945291909320549293909290565b6102b5601a5481565b6102b5601d5481565b6102b5601b5481565b6102b560195481565b6008546103c1906001600160a01b031681565b6009546103c1906001600160a01b031681565b6102b56105da366004612291565b61101d565b61028c6105ed3660046121b6565b611048565b61028c61060036600461219b565b61107e565b61061861061336600461219b565b6110f4565b604080516001600160a01b03909b168b5260208b0199909952978901969096526060880194909452608087019290925260a086015260c085015260e0840152610100830152610120820152610140016102a3565b6106746112df565b6001600160a01b0382166000908152601e602052604090205481151560ff9091161515036106a157600080fd5b6001600160a01b0382166000908152601e60205260409020805460ff19168215159081179091556001036106df576106da826000611339565b6106f1565b6106f1826106ec84610d28565b611339565b816001600160a01b03167fa3c7c11b2e12c4144b09a7813f3393ba646392788638998c97be8da908cf04be8260405161072e911515815260200190565b60405180910390a25050565b606060038054610749906122c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610775906122c4565b80156107c25780601f10610797576101008083540402835291602001916107c2565b820191906000526020600020905b8154815290600101906020018083116107a557829003601f168201915b5050505050905090565b6000336107da818585611386565b60019150505b92915050565b6107ee6112df565b600780546001600160a01b039485166001600160a01b031991821617909155600880549385169382169390931790925560068054919093169116179055565b60003361083b8582856114aa565b61084685858561151e565b506001949350505050565b6000806000806000600160801b6108b26108ad600e60008a6001600160a01b03166001600160a01b03168152602001908152602001600020546108a76108a26108998c610d28565b600a5490611579565b611602565b90611612565b611650565b6108bc9190612314565b6001600160a01b0387166000908152600f602052604081205491925090600160801b906108ff906108ad906108a76108a26108f68d610d28565b600b5490611579565b6109099190612314565b6001600160a01b03881660009081526010602052604081205491925090600160801b9061094c906108ad906108a76108a26109438e610d28565b600c5490611579565b6109569190612314565b6001600160a01b03891660009081526011602052604081205491925090600160801b90610999906108ad906108a76108a26109908f610d28565b600d5490611579565b6109a39190612314565b939992985090965091945092505050565b6109bc6112df565b60006109c760025490565b11610a285760405162461bcd60e51b815260206004820152602660248201527f546f74616c20737570706c79206d7573742062652067726561746572207468616044820152656e207a65726f60d01b60648201526084015b60405180910390fd5b8315610a9257610a5b610a3a60025490565b610a4886600160801b611579565b610a529190612314565b600a5490611663565b600a55604051848152339060008051602061242a8339815191529060200160405180910390a2601654610a8e9085611663565b6016555b8215610afc57610ac5610aa460025490565b610ab285600160801b611579565b610abc9190612314565b600b5490611663565b600b55604051838152339060008051602061242a8339815191529060200160405180910390a2601754610af89084611663565b6017555b8115610b6657610b2f610b0e60025490565b610b1c84600160801b611579565b610b269190612314565b600c5490611663565b600c55604051828152339060008051602061242a8339815191529060200160405180910390a2601854610b629083611663565b6018555b8015610bd057610b99610b7860025490565b610b8683600160801b611579565b610b909190612314565b600d5490611663565b600d55604051818152339060008051602061242a8339815191529060200160405180910390a2601954610bcc9082611663565b6019555b50505050565b6000336107da818585610be9838361101d565b610bf39190612336565b611386565b610c006112df565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90849083906370a0823190602401602060405180830381865afa158015610c4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c729190612349565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce19190612362565b505050565b610cee6112df565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b610d19336116c2565b505050610d2533611b2d565b50565b6001600160a01b031660009081526020819052604090205490565b610d4b6112df565b610d556000611cb3565b565b6000610d616112df565b6000806000610d6f856116c2565b9250925092506000610d8086611b2d565b90508315610dd7576001600160a01b0386166000818152601f6020526040908190204290555160008051602061240a83398151915290610dc39087815260200190565b60405180910390a250600195945050505050565b8215610e15576001600160a01b03861660008181526020808052604091829020429055905185815260008051602061240a8339815191529101610dc3565b8115610e56576001600160a01b038616600081815260216020526040908190204290555160008051602061240a83398151915290610dc39085815260200190565b8015610e97576001600160a01b038616600081815260226020526040908190204290555160008051602061240a83398151915290610dc39084815260200190565b60019450505050505b919050565b600080600080610eb485610f4d565b93509350935093509193509193565b606060048054610749906122c4565b60003381610ee0828661101d565b905083811015610f405760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a1f565b6108468286868403611386565b600080600080600080600080610f6289610851565b6001600160a01b038d1660009081526012602052604090205493975091955093509150610f90908590611d05565b6001600160a01b038a16600090815260136020526040902054610fb4908590611d05565b6001600160a01b038b16600090815260146020526040902054610fd8908590611d05565b6001600160a01b038c16600090815260156020526040902054610ffc908590611d05565b9750975097509750505050509193509193565b6000336107da81858561151e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6110506112df565b6001600160a01b0382166000908152601e602052604090205460ff1661107a5761107a8282611339565b5050565b6110866112df565b6001600160a01b0381166110eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a1f565b610d2581611cb3565b600080600080600080600080600080611177604051806101a0016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038c16815261118c8c610f4d565b60808501526060840152604083015260208201526111a98c610851565b8460a0018560c0018660e00187610100018481525084815250848152508481525050505050601f60008d6001600160a01b03166001600160a01b031681526020019081526020016000205481610120018181525050602060008d6001600160a01b03166001600160a01b031681526020019081526020016000205481610140018181525050602160008d6001600160a01b03166001600160a01b031681526020019081526020016000205481610160018181525050602260008d6001600160a01b03166001600160a01b0316815260200190815260200160002054816101800181815250508060000151816020015182604001518360600151846101200151856101400151866101600151601a54601b54601c549a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6005546001600160a01b03163314610d555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a1f565b600061134483610d28565b90508082111561136657600061135a8383611d05565b9050610bd08482611d47565b80821015610ce157600061137a8284611d05565b9050610bd08482611df8565b6001600160a01b0383166113e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a1f565b6001600160a01b0382166114495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a1f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006114b6848461101d565b90506000198114610bd057818110156115115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a1f565b610bd08484848403611386565b60405162461bcd60e51b815260206004820152602a60248201527f5452495f4469766964656e645f547261636b65723a204e6f207472616e7366656044820152691c9cc8185b1b1bddd95960b21b6064820152608401610a1f565b60008260000361158b575060006107e0565b6000611597838561237f565b9050826115a48583612314565b146115fb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a1f565b9392505050565b600081818112156107e057600080fd5b60008061161f8385612396565b9050600083121580156116325750838112155b80611647575060008312801561164757508381125b6115fb57600080fd5b60008082121561165f57600080fd5b5090565b6000806116708385612336565b9050838110156115fb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a1f565b60008060008060008060008060006116d98a610f4d565b5091945092509050821561184a576001600160a01b038a1660009081526012602052604090205461170a9084611663565b6001600160a01b038b16600090815260126020526040812091909155601a8054859290611738908490612336565b90915550506040518381526001600160a01b038b16906000805160206123ea8339815191529060200160405180910390a260075460405163a9059cbb60e01b81526001600160a01b038c8116600483015260248201869052600092169063a9059cbb906044016020604051808303816000875af11580156117bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e19190612362565b905080611844576001600160a01b038b1660009081526012602052604090205461180b9085611d05565b6001600160a01b038c16600090815260126020526040812091909155601a80548692906118399084906123b6565b909155506118489050565b8396505b505b81156119b3576001600160a01b038a166000908152601360205260409020546118739083611663565b6001600160a01b038b16600090815260136020526040812091909155601b80548492906118a1908490612336565b90915550506040518281526001600160a01b038b16906000805160206123ea8339815191529060200160405180910390a260085460405163a9059cbb60e01b81526001600160a01b038c8116600483015260248201859052600092169063a9059cbb906044016020604051808303816000875af1158015611926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194a9190612362565b9050806119ad576001600160a01b038b166000908152601360205260409020546119749084611d05565b6001600160a01b038c16600090815260136020526040812091909155601b80548592906119a29084906123b6565b909155506119b19050565b8295505b505b8015611b1c576001600160a01b038a166000908152601460205260409020546119dc9082611663565b6001600160a01b038b16600090815260146020526040812091909155601c8054839290611a0a908490612336565b90915550506040518181526001600160a01b038b16906000805160206123ea8339815191529060200160405180910390a260095460405163a9059cbb60e01b81526001600160a01b038c8116600483015260248201849052600092169063a9059cbb906044016020604051808303816000875af1158015611a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab39190612362565b905080611b16576001600160a01b038b16600090815260146020526040902054611add9083611d05565b6001600160a01b038c16600090815260146020526040812091909155601c8054849290611b0b9084906123b6565b90915550611b1a9050565b8194505b505b509398929750909550909350505050565b6000806000611b3b84610f4d565b93505050506000811115611cac576001600160a01b038416600090815260156020526040902054611b6c9082611663565b6001600160a01b038516600090815260156020526040812091909155601d8054839290611b9a908490612336565b90915550506040518181526001600160a01b038516906000805160206123ea8339815191529060200160405180910390a260065460405163a9059cbb60e01b81526001600160a01b03868116600483015260248201849052600092169063a9059cbb906044016020604051808303816000875af1158015611c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c439190612362565b905080611ca6576001600160a01b038516600090815260156020526040902054611c6d9083611d05565b6001600160a01b038616600090815260156020526040812091909155601d8054849290611c9b9084906123b6565b90915550611caa9050565b8192505b505b5092915050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006115fb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e89565b611d518282611ec3565b611d8b611d6c6108a283600a5461157990919063ffffffff16565b6001600160a01b0384166000908152600e602052604090205490611f82565b6001600160a01b0383166000908152600e6020526040902055600b54611dd890611db9906108a29084611579565b6001600160a01b0384166000908152600f602052604090205490611f82565b6001600160a01b039092166000908152600f602052604090209190915550565b611e028282611fbf565b611e3c611e1d6108a283600a5461157990919063ffffffff16565b6001600160a01b0384166000908152600e602052604090205490611612565b6001600160a01b0383166000908152600e6020526040902055600b54611dd890611e6a906108a29084611579565b6001600160a01b0384166000908152600f602052604090205490611612565b60008184841115611ead5760405162461bcd60e51b8152600401610a1f919061214d565b506000611eba84866123b6565b95945050505050565b6001600160a01b038216611f195760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a1f565b8060026000828254611f2b9190612336565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600080611f8f83856123c9565b905060008312158015611fa25750838113155b80611647575060008312801561164757508381136115fb57600080fd5b6001600160a01b03821661201f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a1f565b6001600160a01b038216600090815260208190526040902054818110156120935760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a1f565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b80356001600160a01b0381168114610ea057600080fd5b8015158114610d2557600080fd5b6000806040838503121561212957600080fd5b612132836120f1565b9150602083013561214281612108565b809150509250929050565b600060208083528351808285015260005b8181101561217a5785810183015185820160400152820161215e565b506000604082860101526040601f19601f8301168501019250505092915050565b6000602082840312156121ad57600080fd5b6115fb826120f1565b600080604083850312156121c957600080fd5b6121d2836120f1565b946020939093013593505050565b6000806000606084860312156121f557600080fd5b6121fe846120f1565b925061220c602085016120f1565b915061221a604085016120f1565b90509250925092565b60008060006060848603121561223857600080fd5b612241846120f1565b925061224f602085016120f1565b9150604084013590509250925092565b6000806000806080858703121561227557600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156122a457600080fd5b6122ad836120f1565b91506122bb602084016120f1565b90509250929050565b600181811c908216806122d857607f821691505b6020821081036122f857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008261233157634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156107e0576107e06122fe565b60006020828403121561235b57600080fd5b5051919050565b60006020828403121561237457600080fd5b81516115fb81612108565b80820281158282048414176107e0576107e06122fe565b8082018281126000831280158216821582161715611caa57611caa6122fe565b818103818111156107e0576107e06122fe565b8181036000831280158383131683831282161715611cac57611cac6122fe56feee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4a493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d78454116511a264697066735822122003e456fa1bf21a5b8a3a47fca419bca84d27045d80640950651fa729c0edbf4a64736f6c63430008140033