{
  "_format": "hh-sol-artifact-1",
  "contractName": "FeeTreasury",
  "sourceName": "contracts/core/FeeTreasury.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract ISwapRouter",
          "name": "v3Router_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "USDC_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator_",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "nextSettleTime_",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "rewardForCashback",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "ethAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "usdcAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "DistributeToCashback",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "rewardForStaking",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "ethAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "usdcAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "name": "DistributeToStaking",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "oldOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "NewOwner",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "oldPendingOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newPendingOwner",
          "type": "address"
        }
      ],
      "name": "NewPendingOwner",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "oldOperator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOperator",
          "type": "address"
        }
      ],
      "name": "OperatorChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "oldRatio",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "newRatio",
          "type": "uint8"
        }
      ],
      "name": "RatioForStakingChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "oldReward",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newReward",
          "type": "address"
        }
      ],
      "name": "RewardForCashbackChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "oldReward",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newReward",
          "type": "address"
        }
      ],
      "name": "RewardForStakingChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldInterval",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newInterval",
          "type": "uint256"
        }
      ],
      "name": "SettlementIntervalChanged",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "USDC",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "WETH",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "acceptOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "amms",
          "type": "address[]"
        }
      ],
      "name": "batchRemoveLiquidity",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        }
      ],
      "name": "batchSwapToETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "distribute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nextSettleTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "operator",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ratioForStaking",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardForCashback",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardForStaking",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOperator",
          "type": "address"
        }
      ],
      "name": "setOperator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newPendingOwner",
          "type": "address"
        }
      ],
      "name": "setPendingOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "newrRatio",
          "type": "uint8"
        }
      ],
      "name": "setRatioForStaking",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newReward",
          "type": "address"
        }
      ],
      "name": "setRewardForCashback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newReward",
          "type": "address"
        }
      ],
      "name": "setRewardForStaking",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newInterval",
          "type": "uint256"
        }
      ],
      "name": "setSettlementInterval",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "settlementInterval",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "v3Factory",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "v3Fees",
      "outputs": [
        {
          "internalType": "uint24",
          "name": "",
          "type": "uint24"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "v3Router",
      "outputs": [
        {
          "internalType": "contract ISwapRouter",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC20Token",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "withdrawETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60806040526008805460ff1916602117905562093a80600a553480156200002557600080fd5b50604051620021fa380380620021fa833981016040819052620000489162000226565b600080546001600160a01b03199081163317909155600280546001600160a01b038781169190931617908190556040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b158015620000b057600080fd5b505afa158015620000c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000eb919062000200565b600380546001600160a01b0319166001600160a01b03928316179055600254604080516312a9293f60e21b815290519190921691634aa4a4fc916004808301926020929190829003018186803b1580156200014557600080fd5b505afa1580156200015a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000180919062000200565b600480546001600160a01b039283166001600160a01b031991821617909155600580549583169582169590951790945560068054939091169290931691909117909155600b55506007805462ffffff19166101f41765ffffff0000001916640bb80000001762ffffff60301b191667271000000000000017905562000298565b60006020828403121562000212578081fd5b81516200021f816200027f565b9392505050565b600080600080608085870312156200023c578283fd5b845162000249816200027f565b60208601519094506200025c816200027f565b60408601519093506200026f816200027f565b6060959095015193969295505050565b6001600160a01b03811681146200029557600080fd5b50565b611f5280620002a86000396000f3fe60806040526004361061016a5760003560e01c8063a11b4528116100d1578063c42069ec1161008a578063e30c397811610064578063e30c39781461048a578063e4fc6b6d146104aa578063ebbc4965146104bf578063ff0e3f24146104d457610199565b8063c42069ec14610434578063c6d79c9314610454578063cd823e501461047457610199565b8063a11b45281461035b578063a7d676911461038f578063ad5c4648146103b4578063b3ab15fb146103d4578063b56dc36b146103f4578063c1a7c9671461041457610199565b80635a683367116101235780635a68336714610297578063690d8320146102b75780637c887c59146102d75780637ec4142c146102f757806389a302711461031b5780638da5cb5b1461033b57610199565b80630dc913061461019e5780632edba9fe146101db5780633cf38586146101fb57806342dddc961461021b578063570ca7351461024757806357d1b31b1461026757610199565b36610199576004546001600160a01b0316331461019757634e487b7160e01b600052600160045260246000fd5b005b600080fd5b3480156101aa57600080fd5b506002546101be906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101e757600080fd5b506101976101f6366004611af5565b6104f4565b34801561020757600080fd5b50610197610216366004611b74565b6105b4565b34801561022757600080fd5b506008546102359060ff1681565b60405160ff90911681526020016101d2565b34801561025357600080fd5b506006546101be906001600160a01b031681565b34801561027357600080fd5b50610287610282366004611b34565b610ca6565b60405190151581526020016101d2565b3480156102a357600080fd5b506101976102b2366004611ca4565b610e28565b3480156102c357600080fd5b506101976102d2366004611af5565b610ecc565b3480156102e357600080fd5b506003546101be906001600160a01b031681565b34801561030357600080fd5b5061030d600a5481565b6040519081526020016101d2565b34801561032757600080fd5b506005546101be906001600160a01b031681565b34801561034757600080fd5b506000546101be906001600160a01b031681565b34801561036757600080fd5b5061037b610376366004611ca4565b610f2b565b60405162ffffff90911681526020016101d2565b34801561039b57600080fd5b506008546101be9061010090046001600160a01b031681565b3480156103c057600080fd5b506004546101be906001600160a01b031681565b3480156103e057600080fd5b506101976103ef366004611af5565b610f5a565b34801561040057600080fd5b506009546101be906001600160a01b031681565b34801561042057600080fd5b5061019761042f366004611d01565b611006565b34801561044057600080fd5b5061019761044f366004611af5565b6110c7565b34801561046057600080fd5b5061019761046f366004611af5565b6111a2565b34801561048057600080fd5b5061030d600b5481565b34801561049657600080fd5b506001546101be906001600160a01b031681565b3480156104b657600080fd5b5061019761124e565b3480156104cb57600080fd5b506101976115c5565b3480156104e057600080fd5b506101976104ef366004611b74565b6116b9565b6000546001600160a01b031633146105275760405162461bcd60e51b815260040161051e90611dcc565b60405180910390fd5b6001600160a01b03811661054d5760405162461bcd60e51b815260040161051e90611d83565b6008546040516001600160a01b0380841692610100900416907f2241d917e510bcd2b27506cc60a28cb86047ec1018cb6c6a51e0dc8a7f9ba86190600090a3600880546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6006546001600160a01b031633146105de5760405162461bcd60e51b815260040161051e90611da9565b600b544210156106005760405162461bcd60e51b815260040161051e90611d5b565b60005b8151811015610bbb57600082828151811061062e57634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a082319060240160206040518083038186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190611cbc565b90506000811180156106d657506004546001600160a01b03838116911614155b80156106f057506005546001600160a01b03838116911614155b15610ba65760008060005b600381101561089d57600380546004546000926001600160a01b0392831692631698ee82928a929116906007908790811061074657634e487b7160e01b600052603260045260246000fd5b600a808204929092015460405160e087901b6001600160e01b03191681526001600160a01b039586166004820152939094166024840152066003026101000a90910462ffffff16604482015260640160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611b18565b90506001600160a01b0381166107fb575061088b565b6000816001600160a01b0316631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b15801561083657600080fd5b505afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e9190611c5a565b6001600160801b0316905083811115610888578093508194505b50505b8061089581611ebd565b9150506106fb565b50600254604051636eb1769f60e11b81523060048201526001600160a01b03918216602482015260009186169063dd62ed3e9060440160206040518083038186803b1580156108eb57600080fd5b505afa1580156108ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109239190611cbc565b9050838110156109b65760025460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529086169063095ea7b390604401602060405180830381600087803b15801561097c57600080fd5b505af1158015610990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b49190611c3a565b505b60006040518060e00160405280876001600160a01b03168152602001600460009054906101000a90046001600160a01b03166001600160a01b03168152602001856001600160a01b031663ddca3f436040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190611c81565b62ffffff16815230602082015260408101879052600160608201526004546080909101906001600160a01b0390811690891610610ac257610abd600173fffd8963efd1fc6a506488495d951d5263988d26611e7e565b610ad2565b610ad26401000276a36001611dfc565b6001600160a01b03908116909152600254604080516304e45aaf60e01b81528451841660048201526020850151841660248201529084015162ffffff1660448201526060840151831660648201526080840151608482015260a084015160a482015260c0840151831660c482015292935016906304e45aaf9060e401602060405180830381600087803b158015610b6857600080fd5b505af1158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611cbc565b50505050505b50508080610bb390611ebd565b915050610603565b50600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a082319060240160206040518083038186803b158015610c0557600080fd5b505afa158015610c19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3d9190611cbc565b90508015610ca25760048054604051632e1a7d4d60e01b81529182018390526001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015610c8957600080fd5b505af1158015610c9d573d6000803e3d6000fd5b505050505b5050565b600080546001600160a01b03163314610cd15760405162461bcd60e51b815260040161051e90611dcc565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a082319060240160206040518083038186803b158015610d1357600080fd5b505afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190611cbc565b905082811015610d925760405162461bcd60e51b81526020600482015260126024820152714e4f545f454e4f5547485f42414c414e434560701b604482015260640161051e565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb90604401602060405180830381600087803b158015610ddc57600080fd5b505af1158015610df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e149190611c3a565b610e1d57600080fd5b506001949350505050565b6000546001600160a01b03163314610e525760405162461bcd60e51b815260040161051e90611dcc565b60008111610e8b5760405162461bcd60e51b815260040161051e906020808252600490820152635a45524f60e01b604082015260600190565b600a5460408051918252602082018390527fa16e1dddb457564fbe13a889e5651ee325052b009c5524fa3f5b6ebdd7a3581a910160405180910390a1600a55565b6000546001600160a01b03163314610ef65760405162461bcd60e51b815260040161051e90611dcc565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ca2573d6000803e3d6000fd5b60078160038110610f3b57600080fd5b600a9182820401919006600302915054906101000a900462ffffff1681565b6000546001600160a01b03163314610f845760405162461bcd60e51b815260040161051e90611dcc565b6001600160a01b038116610faa5760405162461bcd60e51b815260040161051e90611d83565b6006546040516001600160a01b038084169216907fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c90600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110305760405162461bcd60e51b815260040161051e90611dcc565b60648160ff1611156110705760405162461bcd60e51b81526020600482015260096024820152684f5645525f3130302560b81b604482015260640161051e565b6008546040805160ff928316815291831660208301527fc77f8dd2877f5ac909d42359b8c2dca5a7af08132dfde4b20187d48cf9c388de910160405180910390a16008805460ff191660ff92909216919091179055565b6000546001600160a01b031633146110f15760405162461bcd60e51b815260040161051e90611dcc565b6001546001600160a01b03828116911614156111465760405162461bcd60e51b815260206004820152601460248201527313dddb98589b194e881053149150511657d4d15560621b604482015260640161051e565b6001546040516001600160a01b038084169216907fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b90600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111cc5760405162461bcd60e51b815260040161051e90611dcc565b6001600160a01b0381166111f25760405162461bcd60e51b815260040161051e90611d83565b6009546040516001600160a01b038084169216907f2f2ee672c26f678335773f44e0597a0b9cd1999b65e5b8ac1cdead69316fd68790600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146112785760405162461bcd60e51b815260040161051e90611da9565b600b5442101561129a5760405162461bcd60e51b815260040161051e90611d5b565b6009546001600160a01b03166112f25760405162461bcd60e51b815260206004820152601d60248201527f4e4f545f464f554e445f5245574152445f464f525f434153484241434b000000604482015260640161051e565b6005546040516370a0823160e01b815230600482015247916000916001600160a01b03909116906370a082319060240160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611cbc565b60085490915061010090046001600160a01b031661141c5781156113a6576009546113a6906001600160a01b0316836118d5565b80156113c9576005546009546113c9916001600160a01b039081169116836119b4565b6009546040805184815260208101849052428183015290516001600160a01b03909216917f8c62aed53732e50473281886ba2b519cb08ee7b823e098fbe25d6e120d712c489181900360600190a26115ae565b6008546000906064906114329060ff1685611e5f565b61143c9190611e3f565b9050600061144a8285611ea6565b6008549091506000906064906114639060ff1686611e5f565b61146d9190611e3f565b9050600061147b8286611ea6565b9050831561149e5760085461149e9061010090046001600160a01b0316856118d5565b82156114ba576009546114ba906001600160a01b0316846118d5565b81156114e2576005546008546114e2916001600160a01b0390811691610100900416846119b4565b801561150557600554600954611505916001600160a01b039081169116836119b4565b600854604080518681526020810185905242918101919091526101009091046001600160a01b0316907ff1f2c9fad9eecdb191575e1228d94c746321c25924daf61dca61e8e9932f2ca49060600160405180910390a26009546040805185815260208101849052428183015290516001600160a01b03909216917f8c62aed53732e50473281886ba2b519cb08ee7b823e098fbe25d6e120d712c489181900360600190a2505050505b600a54600b546115be9190611e27565b600b555050565b6001546001600160a01b0316331461161f5760405162461bcd60e51b815260206004820152601e60248201527f4f776e61626c653a20524551554952455f50454e44494e475f4f574e45520000604482015260640161051e565b60008054600180546001600160a01b038082166001600160a01b03198086168217808855931690935560405193811694929391169184917f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b23649190a36001546040516001600160a01b03918216918316907fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b90600090a35050565b6006546001600160a01b031633146116e35760405162461bcd60e51b815260040161051e90611da9565b600b544210156117055760405162461bcd60e51b815260040161051e90611d5b565b60005b8151811015610ca257600082828151811061173357634e487b7160e01b600052603260045260246000fd5b60200260200101519050806001600160a01b031663d4d5d32a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561177857600080fd5b505af115801561178c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b09190611c3a565b506040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b1580156117f357600080fd5b505afa158015611807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182b9190611cbc565b9050806118395750506118c3565b6118448283836119b4565b60405163226bf2d160e21b81523060048201526001600160a01b038316906389afcb4490602401606060405180830381600087803b15801561188557600080fd5b505af1158015611899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bd9190611cd4565b50505050505b806118cd81611ebd565b915050611708565b604080516000808252602082019092526001600160a01b0384169083906040516118ff9190611d22565b60006040518083038185875af1925050503d806000811461193c576040519150601f19603f3d011682016040523d82523d6000602084013e611941565b606091505b50509050806119af5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b606482015260840161051e565b505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691611a109190611d22565b6000604051808303816000865af19150503d8060008114611a4d576040519150601f19603f3d011682016040523d82523d6000602084013e611a52565b606091505b5091509150818015611a7c575080511580611a7c575080806020019051810190611a7c9190611c3a565b611ade5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b606482015260840161051e565b5050505050565b8035611af081611f04565b919050565b600060208284031215611b06578081fd5b8135611b1181611f04565b9392505050565b600060208284031215611b29578081fd5b8151611b1181611f04565b600080600060608486031215611b48578182fd5b8335611b5381611f04565b92506020840135611b6381611f04565b929592945050506040919091013590565b60006020808385031215611b86578182fd5b823567ffffffffffffffff80821115611b9d578384fd5b818501915085601f830112611bb0578384fd5b813581811115611bc257611bc2611eee565b838102604051601f19603f83011681018181108582111715611be657611be6611eee565b604052828152858101935084860182860187018a1015611c04578788fd5b8795505b83861015611c2d57611c1981611ae5565b855260019590950194938601938601611c08565b5098975050505050505050565b600060208284031215611c4b578081fd5b81518015158114611b11578182fd5b600060208284031215611c6b578081fd5b81516001600160801b0381168114611b11578182fd5b600060208284031215611c92578081fd5b815162ffffff81168114611b11578182fd5b600060208284031215611cb5578081fd5b5035919050565b600060208284031215611ccd578081fd5b5051919050565b600080600060608486031215611ce8578283fd5b8351925060208401519150604084015190509250925092565b600060208284031215611d12578081fd5b813560ff81168114611b11578182fd5b60008251815b81811015611d425760208186018101518583015201611d28565b81811115611d505782828501525b509190910192915050565b6020808252600e908201526d4e4f545f52454143485f54494d4560901b604082015260600190565b6020808252600c908201526b5a45524f5f4144445245535360a01b604082015260600190565b6020808252600990820152682327a92124a22222a760b91b604082015260600190565b60208082526016908201527527bbb730b136329d102922a8aaa4a922afa7aba722a960511b604082015260600190565b60006001600160a01b03828116848216808303821115611e1e57611e1e611ed8565b01949350505050565b60008219821115611e3a57611e3a611ed8565b500190565b600082611e5a57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611e7957611e79611ed8565b500290565b60006001600160a01b0383811690831681811015611e9e57611e9e611ed8565b039392505050565b600082821015611eb857611eb8611ed8565b500390565b6000600019821415611ed157611ed1611ed8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611f1957600080fd5b5056fea2646970667358221220402b85a150acc2061ea3f1801cf811686e6410f888626457ebd99277364f529e64736f6c63430008020033",
  "deployedBytecode": "0x60806040526004361061016a5760003560e01c8063a11b4528116100d1578063c42069ec1161008a578063e30c397811610064578063e30c39781461048a578063e4fc6b6d146104aa578063ebbc4965146104bf578063ff0e3f24146104d457610199565b8063c42069ec14610434578063c6d79c9314610454578063cd823e501461047457610199565b8063a11b45281461035b578063a7d676911461038f578063ad5c4648146103b4578063b3ab15fb146103d4578063b56dc36b146103f4578063c1a7c9671461041457610199565b80635a683367116101235780635a68336714610297578063690d8320146102b75780637c887c59146102d75780637ec4142c146102f757806389a302711461031b5780638da5cb5b1461033b57610199565b80630dc913061461019e5780632edba9fe146101db5780633cf38586146101fb57806342dddc961461021b578063570ca7351461024757806357d1b31b1461026757610199565b36610199576004546001600160a01b0316331461019757634e487b7160e01b600052600160045260246000fd5b005b600080fd5b3480156101aa57600080fd5b506002546101be906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101e757600080fd5b506101976101f6366004611af5565b6104f4565b34801561020757600080fd5b50610197610216366004611b74565b6105b4565b34801561022757600080fd5b506008546102359060ff1681565b60405160ff90911681526020016101d2565b34801561025357600080fd5b506006546101be906001600160a01b031681565b34801561027357600080fd5b50610287610282366004611b34565b610ca6565b60405190151581526020016101d2565b3480156102a357600080fd5b506101976102b2366004611ca4565b610e28565b3480156102c357600080fd5b506101976102d2366004611af5565b610ecc565b3480156102e357600080fd5b506003546101be906001600160a01b031681565b34801561030357600080fd5b5061030d600a5481565b6040519081526020016101d2565b34801561032757600080fd5b506005546101be906001600160a01b031681565b34801561034757600080fd5b506000546101be906001600160a01b031681565b34801561036757600080fd5b5061037b610376366004611ca4565b610f2b565b60405162ffffff90911681526020016101d2565b34801561039b57600080fd5b506008546101be9061010090046001600160a01b031681565b3480156103c057600080fd5b506004546101be906001600160a01b031681565b3480156103e057600080fd5b506101976103ef366004611af5565b610f5a565b34801561040057600080fd5b506009546101be906001600160a01b031681565b34801561042057600080fd5b5061019761042f366004611d01565b611006565b34801561044057600080fd5b5061019761044f366004611af5565b6110c7565b34801561046057600080fd5b5061019761046f366004611af5565b6111a2565b34801561048057600080fd5b5061030d600b5481565b34801561049657600080fd5b506001546101be906001600160a01b031681565b3480156104b657600080fd5b5061019761124e565b3480156104cb57600080fd5b506101976115c5565b3480156104e057600080fd5b506101976104ef366004611b74565b6116b9565b6000546001600160a01b031633146105275760405162461bcd60e51b815260040161051e90611dcc565b60405180910390fd5b6001600160a01b03811661054d5760405162461bcd60e51b815260040161051e90611d83565b6008546040516001600160a01b0380841692610100900416907f2241d917e510bcd2b27506cc60a28cb86047ec1018cb6c6a51e0dc8a7f9ba86190600090a3600880546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6006546001600160a01b031633146105de5760405162461bcd60e51b815260040161051e90611da9565b600b544210156106005760405162461bcd60e51b815260040161051e90611d5b565b60005b8151811015610bbb57600082828151811061062e57634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a082319060240160206040518083038186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190611cbc565b90506000811180156106d657506004546001600160a01b03838116911614155b80156106f057506005546001600160a01b03838116911614155b15610ba65760008060005b600381101561089d57600380546004546000926001600160a01b0392831692631698ee82928a929116906007908790811061074657634e487b7160e01b600052603260045260246000fd5b600a808204929092015460405160e087901b6001600160e01b03191681526001600160a01b039586166004820152939094166024840152066003026101000a90910462ffffff16604482015260640160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611b18565b90506001600160a01b0381166107fb575061088b565b6000816001600160a01b0316631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b15801561083657600080fd5b505afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e9190611c5a565b6001600160801b0316905083811115610888578093508194505b50505b8061089581611ebd565b9150506106fb565b50600254604051636eb1769f60e11b81523060048201526001600160a01b03918216602482015260009186169063dd62ed3e9060440160206040518083038186803b1580156108eb57600080fd5b505afa1580156108ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109239190611cbc565b9050838110156109b65760025460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529086169063095ea7b390604401602060405180830381600087803b15801561097c57600080fd5b505af1158015610990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b49190611c3a565b505b60006040518060e00160405280876001600160a01b03168152602001600460009054906101000a90046001600160a01b03166001600160a01b03168152602001856001600160a01b031663ddca3f436040518163ffffffff1660e01b815260040160206040518083038186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190611c81565b62ffffff16815230602082015260408101879052600160608201526004546080909101906001600160a01b0390811690891610610ac257610abd600173fffd8963efd1fc6a506488495d951d5263988d26611e7e565b610ad2565b610ad26401000276a36001611dfc565b6001600160a01b03908116909152600254604080516304e45aaf60e01b81528451841660048201526020850151841660248201529084015162ffffff1660448201526060840151831660648201526080840151608482015260a084015160a482015260c0840151831660c482015292935016906304e45aaf9060e401602060405180830381600087803b158015610b6857600080fd5b505af1158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611cbc565b50505050505b50508080610bb390611ebd565b915050610603565b50600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a082319060240160206040518083038186803b158015610c0557600080fd5b505afa158015610c19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3d9190611cbc565b90508015610ca25760048054604051632e1a7d4d60e01b81529182018390526001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015610c8957600080fd5b505af1158015610c9d573d6000803e3d6000fd5b505050505b5050565b600080546001600160a01b03163314610cd15760405162461bcd60e51b815260040161051e90611dcc565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a082319060240160206040518083038186803b158015610d1357600080fd5b505afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190611cbc565b905082811015610d925760405162461bcd60e51b81526020600482015260126024820152714e4f545f454e4f5547485f42414c414e434560701b604482015260640161051e565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb90604401602060405180830381600087803b158015610ddc57600080fd5b505af1158015610df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e149190611c3a565b610e1d57600080fd5b506001949350505050565b6000546001600160a01b03163314610e525760405162461bcd60e51b815260040161051e90611dcc565b60008111610e8b5760405162461bcd60e51b815260040161051e906020808252600490820152635a45524f60e01b604082015260600190565b600a5460408051918252602082018390527fa16e1dddb457564fbe13a889e5651ee325052b009c5524fa3f5b6ebdd7a3581a910160405180910390a1600a55565b6000546001600160a01b03163314610ef65760405162461bcd60e51b815260040161051e90611dcc565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ca2573d6000803e3d6000fd5b60078160038110610f3b57600080fd5b600a9182820401919006600302915054906101000a900462ffffff1681565b6000546001600160a01b03163314610f845760405162461bcd60e51b815260040161051e90611dcc565b6001600160a01b038116610faa5760405162461bcd60e51b815260040161051e90611d83565b6006546040516001600160a01b038084169216907fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c90600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110305760405162461bcd60e51b815260040161051e90611dcc565b60648160ff1611156110705760405162461bcd60e51b81526020600482015260096024820152684f5645525f3130302560b81b604482015260640161051e565b6008546040805160ff928316815291831660208301527fc77f8dd2877f5ac909d42359b8c2dca5a7af08132dfde4b20187d48cf9c388de910160405180910390a16008805460ff191660ff92909216919091179055565b6000546001600160a01b031633146110f15760405162461bcd60e51b815260040161051e90611dcc565b6001546001600160a01b03828116911614156111465760405162461bcd60e51b815260206004820152601460248201527313dddb98589b194e881053149150511657d4d15560621b604482015260640161051e565b6001546040516001600160a01b038084169216907fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b90600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111cc5760405162461bcd60e51b815260040161051e90611dcc565b6001600160a01b0381166111f25760405162461bcd60e51b815260040161051e90611d83565b6009546040516001600160a01b038084169216907f2f2ee672c26f678335773f44e0597a0b9cd1999b65e5b8ac1cdead69316fd68790600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146112785760405162461bcd60e51b815260040161051e90611da9565b600b5442101561129a5760405162461bcd60e51b815260040161051e90611d5b565b6009546001600160a01b03166112f25760405162461bcd60e51b815260206004820152601d60248201527f4e4f545f464f554e445f5245574152445f464f525f434153484241434b000000604482015260640161051e565b6005546040516370a0823160e01b815230600482015247916000916001600160a01b03909116906370a082319060240160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611cbc565b60085490915061010090046001600160a01b031661141c5781156113a6576009546113a6906001600160a01b0316836118d5565b80156113c9576005546009546113c9916001600160a01b039081169116836119b4565b6009546040805184815260208101849052428183015290516001600160a01b03909216917f8c62aed53732e50473281886ba2b519cb08ee7b823e098fbe25d6e120d712c489181900360600190a26115ae565b6008546000906064906114329060ff1685611e5f565b61143c9190611e3f565b9050600061144a8285611ea6565b6008549091506000906064906114639060ff1686611e5f565b61146d9190611e3f565b9050600061147b8286611ea6565b9050831561149e5760085461149e9061010090046001600160a01b0316856118d5565b82156114ba576009546114ba906001600160a01b0316846118d5565b81156114e2576005546008546114e2916001600160a01b0390811691610100900416846119b4565b801561150557600554600954611505916001600160a01b039081169116836119b4565b600854604080518681526020810185905242918101919091526101009091046001600160a01b0316907ff1f2c9fad9eecdb191575e1228d94c746321c25924daf61dca61e8e9932f2ca49060600160405180910390a26009546040805185815260208101849052428183015290516001600160a01b03909216917f8c62aed53732e50473281886ba2b519cb08ee7b823e098fbe25d6e120d712c489181900360600190a2505050505b600a54600b546115be9190611e27565b600b555050565b6001546001600160a01b0316331461161f5760405162461bcd60e51b815260206004820152601e60248201527f4f776e61626c653a20524551554952455f50454e44494e475f4f574e45520000604482015260640161051e565b60008054600180546001600160a01b038082166001600160a01b03198086168217808855931690935560405193811694929391169184917f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b23649190a36001546040516001600160a01b03918216918316907fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b90600090a35050565b6006546001600160a01b031633146116e35760405162461bcd60e51b815260040161051e90611da9565b600b544210156117055760405162461bcd60e51b815260040161051e90611d5b565b60005b8151811015610ca257600082828151811061173357634e487b7160e01b600052603260045260246000fd5b60200260200101519050806001600160a01b031663d4d5d32a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561177857600080fd5b505af115801561178c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b09190611c3a565b506040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b1580156117f357600080fd5b505afa158015611807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182b9190611cbc565b9050806118395750506118c3565b6118448283836119b4565b60405163226bf2d160e21b81523060048201526001600160a01b038316906389afcb4490602401606060405180830381600087803b15801561188557600080fd5b505af1158015611899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bd9190611cd4565b50505050505b806118cd81611ebd565b915050611708565b604080516000808252602082019092526001600160a01b0384169083906040516118ff9190611d22565b60006040518083038185875af1925050503d806000811461193c576040519150601f19603f3d011682016040523d82523d6000602084013e611941565b606091505b50509050806119af5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b606482015260840161051e565b505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691611a109190611d22565b6000604051808303816000865af19150503d8060008114611a4d576040519150601f19603f3d011682016040523d82523d6000602084013e611a52565b606091505b5091509150818015611a7c575080511580611a7c575080806020019051810190611a7c9190611c3a565b611ade5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b606482015260840161051e565b5050505050565b8035611af081611f04565b919050565b600060208284031215611b06578081fd5b8135611b1181611f04565b9392505050565b600060208284031215611b29578081fd5b8151611b1181611f04565b600080600060608486031215611b48578182fd5b8335611b5381611f04565b92506020840135611b6381611f04565b929592945050506040919091013590565b60006020808385031215611b86578182fd5b823567ffffffffffffffff80821115611b9d578384fd5b818501915085601f830112611bb0578384fd5b813581811115611bc257611bc2611eee565b838102604051601f19603f83011681018181108582111715611be657611be6611eee565b604052828152858101935084860182860187018a1015611c04578788fd5b8795505b83861015611c2d57611c1981611ae5565b855260019590950194938601938601611c08565b5098975050505050505050565b600060208284031215611c4b578081fd5b81518015158114611b11578182fd5b600060208284031215611c6b578081fd5b81516001600160801b0381168114611b11578182fd5b600060208284031215611c92578081fd5b815162ffffff81168114611b11578182fd5b600060208284031215611cb5578081fd5b5035919050565b600060208284031215611ccd578081fd5b5051919050565b600080600060608486031215611ce8578283fd5b8351925060208401519150604084015190509250925092565b600060208284031215611d12578081fd5b813560ff81168114611b11578182fd5b60008251815b81811015611d425760208186018101518583015201611d28565b81811115611d505782828501525b509190910192915050565b6020808252600e908201526d4e4f545f52454143485f54494d4560901b604082015260600190565b6020808252600c908201526b5a45524f5f4144445245535360a01b604082015260600190565b6020808252600990820152682327a92124a22222a760b91b604082015260600190565b60208082526016908201527527bbb730b136329d102922a8aaa4a922afa7aba722a960511b604082015260600190565b60006001600160a01b03828116848216808303821115611e1e57611e1e611ed8565b01949350505050565b60008219821115611e3a57611e3a611ed8565b500190565b600082611e5a57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611e7957611e79611ed8565b500290565b60006001600160a01b0383811690831681811015611e9e57611e9e611ed8565b039392505050565b600082821015611eb857611eb8611ed8565b500390565b6000600019821415611ed157611ed1611ed8565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611f1957600080fd5b5056fea2646970667358221220402b85a150acc2061ea3f1801cf811686e6410f888626457ebd99277364f529e64736f6c63430008020033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
