test-contracts-sovryn
Version:
Smart contracts for the Sovryn protocol and external integrations.
406 lines (405 loc) • 33.4 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "FeeSharingProxyMockup",
"sourceName": "contracts/mockup/FeeSharingProxyMockup.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract IProtocol",
"name": "_protocol",
"type": "address"
},
{
"internalType": "contract IStaking",
"name": "_staking",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "CheckpointAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "FeeWithdrawn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "TokensTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "UserFeeWithdrawn",
"type": "event"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "address",
"name": "_loanPoolToken",
"type": "address"
}
],
"name": "getAccumulatedFees",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "lastFeeWithdrawalTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "numTokenCheckpoints",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "processedCheckpoints",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "protocol",
"outputs": [
{
"internalType": "contract IProtocol",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "staking",
"outputs": [
{
"internalType": "contract IStaking",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "testData",
"outputs": [
{
"internalType": "address",
"name": "loanPoolToken",
"type": "address"
},
{
"internalType": "uint32",
"name": "maxCheckpoints",
"type": "uint32"
},
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tokenCheckpoints",
"outputs": [
{
"internalType": "uint32",
"name": "blockNumber",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "timestamp",
"type": "uint32"
},
{
"internalType": "uint96",
"name": "totalWeightedStake",
"type": "uint96"
},
{
"internalType": "uint96",
"name": "numTokens",
"type": "uint96"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint96",
"name": "_amount",
"type": "uint96"
}
],
"name": "transferTokens",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "unprocessedAmount",
"outputs": [
{
"internalType": "uint96",
"name": "",
"type": "uint96"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_loanPoolToken",
"type": "address"
},
{
"internalType": "uint32",
"name": "_maxCheckpoints",
"type": "uint32"
},
{
"internalType": "address",
"name": "_receiver",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "withdrawFees",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506040516118603803806118608339818101604052604081101561003357600080fd5b508051602090910151600080546001600160a01b039384166001600160a01b031991821617909155600180549390921692169190911790556117e68061007a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637913b451116100715780637913b451146102205780638b6fdcba1461024e5780638ce7442614610290578063a965b3a914610298578063abe979e1146102d4578063f3bdba8f14610309576100b4565b8063016cbd51146100b9578063164e68de146100f157806320020208146101195780633d67df6f146101585780634cf088d91461019857806370530017146101bc575b600080fd5b6100c161032f565b604080516001600160a01b03948516815263ffffffff909316602084015292168183015290519081900360600190f35b6101176004803603602081101561010757600080fd5b50356001600160a01b0316610353565b005b61013f6004803603602081101561012f57600080fd5b50356001600160a01b0316610718565b6040805163ffffffff9092168252519081900360200190f35b6101866004803603604081101561016e57600080fd5b506001600160a01b0381358116916020013516610730565b60408051918252519081900360200190f35b6101a061074a565b604080516001600160a01b039092168252519081900360200190f35b6101e8600480360360408110156101d257600080fd5b506001600160a01b038135169060200135610759565b6040805163ffffffff95861681529390941660208401526001600160601b039182168385015216606082015290519081900360800190f35b61013f6004803603604081101561023657600080fd5b506001600160a01b03813581169160200135166107a5565b6102746004803603602081101561026457600080fd5b50356001600160a01b03166107c8565b604080516001600160601b039092168252519081900360200190f35b6101a06107e3565b610117600480360360608110156102ae57600080fd5b506001600160a01b03813581169163ffffffff60208201351691604090910135166107f2565b610117600480360360408110156102ea57600080fd5b5080356001600160a01b031690602001356001600160601b031661085c565b6101866004803603602081101561031f57600080fd5b50356001600160a01b0316610a8b565b6007546008546001600160a01b0380831692600160a01b900463ffffffff16911683565b6001600160a01b0381166103985760405162461bcd60e51b815260040180806020018281038252602e815260200180611750602e913960400191505060405180910390fd5b60008054604080516310c59ce360e11b81526001600160a01b0385811660048301529151919092169163218b39c691602480830192602092919082900301818787803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050506040513d602081101561041157600080fd5b505190506001600160a01b03811661045a5760405162461bcd60e51b815260040180806020018281038252603381526020018061169d6033913960400191505060405180910390fd5b6000805460408051631e4aaa4f60e31b81526001600160a01b0386811660048301523060248301529151919092169163f255527891604480830192602092919082900301818787803b1580156104af57600080fd5b505af11580156104c3573d6000803e3d6000fd5b505050506040513d60208110156104d957600080fd5b50519050806105195760405162461bcd60e51b815260040180806020018281038252603481526020018061177e6034913960400191505060405180910390fd5b826001600160a01b031663095ea7b383836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561057957600080fd5b505af115801561058d573d6000803e3d6000fd5b505050506040513d60208110156105a357600080fd5b5050604080516340c10f1960e01b81523060048201526024810183905290516000916001600160a01b038516916340c10f199160448082019260209290919082900301818787803b1580156105f757600080fd5b505af115801561060b573d6000803e3d6000fd5b505050506040513d602081101561062157600080fd5b50516040805160608101825281815291925060009161064a918491906117106020830139610a9d565b6001600160a01b038516600090815260066020908152604091829020548251606081018452838152939450610693936001600160601b039091169285926116d090830139610b37565b6001600160a01b038516600090815260066020526040902080546001600160601b0319166001600160601b03929092169190911790556106d284610ba1565b6040805183815290516001600160a01b0386169133917eed5939179dc194223f0edd1517ecee2210b22da7f82c8e4b1795e93b9f06aa9181900360200190a35050505050565b60036020526000908152604090205463ffffffff1681565b60008061073f84846000610c15565b509150505b92915050565b6001546001600160a01b031681565b600260209081526000928352604080842090915290825290205463ffffffff808216916401000000008104909116906001600160601b03600160401b8204811691600160a01b90041684565b600460209081526000928352604080842090915290825290205463ffffffff1681565b6006602052600090815260409020546001600160601b031681565b6000546001600160a01b031681565b604080516060810182526001600160a01b0394851680825263ffffffff9490941660208201819052929094169301839052600780546001600160a01b031990811690931763ffffffff60a01b1916600160a01b909202919091179055600880549091169091179055565b6001600160a01b0382166108a15760405162461bcd60e51b81526004018080602001828103825260308152602001806116106030913960400191505060405180910390fd5b6000816001600160601b0316116108e95760405162461bcd60e51b815260040180806020018281038252602f815260200180611640602f913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526001600160601b038316604482015290516000916001600160a01b038516916323b872dd9160648082019260209290919082900301818787803b15801561094957600080fd5b505af115801561095d573d6000803e3d6000fd5b505050506040513d602081101561097357600080fd5b50519050806109b35760405162461bcd60e51b815260040180806020018281038252602e81526020018061166f602e913960400191505060405180910390fd5b6001600160a01b0383166000908152600660209081526040918290205482516060810190935260378084526109fe936001600160601b03909216928692919061157d90830139610b37565b6001600160a01b038416600090815260066020526040902080546001600160601b0319166001600160601b0392909216919091179055610a3d83610ba1565b604080516001600160601b038416815290516001600160a01b0385169133917f1b89874203ff7f0bba87c969ada3f32fda22ed38a6706d35199d21280c7811b19181900360200190a3505050565b60056020526000908152604090205481565b600081600160601b8410610b2f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610af4578181015183820152602001610adc565b50505050905090810190601f168015610b215780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509192915050565b6000838301826001600160601b038087169083161015610b985760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610af4578181015183820152602001610adc565b50949350505050565b6001600160a01b03811660009081526005602052604090205462015180429190910310610c12576001600160a01b03811660009081526005602090815260408083204290556006909152902080546001600160601b031981169091556001600160601b0316610c108282610f68565b505b50565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812054819063ffffffff908116908290851615610cc3576001600160a01b03861660009081526003602052604090205463ffffffff90811690831610610cb15760405162461bcd60e51b81526004018080602001828103825260398152602001806115446039913960400191505060405180910390fd5b610cbc828787611239565b9050610d35565b6001600160a01b03861660009081526003602052604090205463ffffffff90811690831610610d1457505050506001600160a01b03821660009081526003602052604081205463ffffffff16610f60565b506001600160a01b03851660009081526003602052604090205463ffffffff165b60008080845b8463ffffffff168163ffffffff161015610f55576001600160a01b03808b16600090815260026020908152604080832063ffffffff8087168552908352818420600154815484516372ec979560e01b815264010000000090910490931660048401529251909592909216926372ec979592602480840193829003018186803b158015610dc657600080fd5b505afa158015610dda573d6000803e3d6000fd5b505050506040513d6020811015610df057600080fd5b50519050600085821415610e05575083610eee565b600160009054906101000a90046001600160a01b03166001600160a01b03166337e6b1c18f60018660000160009054906101000a900463ffffffff16038660000160049054906101000a900463ffffffff166040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018363ffffffff1681526020018263ffffffff168152602001935050505060206040518083038186803b158015610eb757600080fd5b505afa158015610ecb573d6000803e3d6000fd5b505050506040513d6020811015610ee157600080fd5b5051919550909350849050835b8254600090610f31906001600160601b03600160401b8204811691610f2591600160a01b909104811690861663ffffffff61130b16565b9063ffffffff61136b16565b9050610f43888263ffffffff6113ad16565b97505060019093019250610d3b915050565b509195509193505050505b935093915050565b6000610f8c436040518060600160405280603f8152602001611505603f9139611407565b90506000610fb2426040518060800160405280604281526020016114c360429139611407565b6001600160a01b0385811660009081526003602090815260408083205460015482516312916bdd60e11b815263ffffffff6000198b01811660048301524260248301529351979850929091169593941692632522d7ba92604480840193919291829003018186803b15801561102657600080fd5b505afa15801561103a573d6000803e3d6000fd5b505050506040513d602081101561105057600080fd5b5051905063ffffffff82161580159061109a57506001600160a01b038616600090815260026020908152604080832063ffffffff6000198701811685529252909120548582169116145b1561110f576001600160a01b03868116600090815260026020908152604080832063ffffffff6000198801168452909152902080546001600160601b03888116600160a01b02908516600160401b026bffffffffffffffffffffffff60401b19909216919091179092169190911790556111e8565b6040805160808101825263ffffffff808716825285811660208084019182526001600160601b038087168587019081528b8216606087019081526001600160a01b03808f166000818152600287528a81208d8a16825287528a812099518a549851955194518716600160a01b0294909616600160401b026bffffffffffffffffffffffff60401b19958a166401000000000267ffffffff0000000019978b1663ffffffff199a8b161797909716969096179490941694909417161790955584526003905292909120805460018601909216919092161790555b604080516001600160601b038716815290516001600160a01b0388169133917ff61a5f2f4d0b2d871d5bf18717d08a6b0f543afa7e08dad5df1fea150f7296329181900360200190a3505050505050565b6001600160a01b03821660009081526003602052604081205463ffffffff908116908290841661126a5750806112c1565b606463ffffffff8516111561127e57606493505b6112a884870163ffffffff166040518060600160405280603b81526020016115b4603b9139611407565b90508163ffffffff168163ffffffff1611156112c15750805b6001600160a01b038516600090815260026020908152604080832063ffffffff600019860181168552925290912054164381141561130157600019909101905b5095945050505050565b60008261131a57506000610744565b8282028284828161132757fe5b04146113645760405162461bcd60e51b81526004018080602001828103825260218152602001806115ef6021913960400191505060405180910390fd5b9392505050565b600061136483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061145d565b600082820183811015611364576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000816401000000008410610b2f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610af4578181015183820152602001610adc565b600081836114ac5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610af4578181015183820152602001610adc565b5060008385816114b857fe5b049594505050505056fe46656553686172696e6750726f78793a3a5f7772697465436865636b706f696e743a20626c6f636b2074696d657374616d702065786365656473203332206269747346656553686172696e6750726f78793a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747346656553686172696e6750726f78793a3a7769746864726177466565733a206e6f20746f6b656e7320666f722061207769746864726177616c46656553686172696e6750726f78793a3a7472616e73666572546f6b656e733a20616d6f756e742065786365656473203936206269747346656553686172696e6750726f78793a3a77697468647261773a20636865636b706f696e7420696e64657820657863656564732033322062697473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7746656553686172696e6750726f78793a3a7472616e73666572546f6b656e733a20696e76616c6964206164647265737346656553686172696e6750726f78793a3a7472616e73666572546f6b656e733a20696e76616c696420616d6f756e745374616b696e673a3a7472616e73666572546f6b656e733a20746f6b656e207472616e73666572206661696c656446656553686172696e6750726f78793a3a7769746864726177466565733a206c6f616e20746f6b656e206e6f7420666f756e6446656553686172696e6750726f78793a3a7769746864726177466565733a20756e70726f636573736564416d6f756e742065786365656473203936206269747346656553686172696e6750726f78793a3a7769746864726177466565733a20706f6f6c20746f6b656e20616d6f756e742065786365656473203936206269747346656553686172696e6750726f78793a3a7769746864726177466565733a20696e76616c6964206164647265737346656553686172696e6750726f78793a3a7769746864726177466565733a206e6f20746f6b656e7320746f207769746864726177a265627a7a72315820db5527f5c7de82698817f5e913dd7bb5c4f1e6b13e88a8165a9b3b093aa8c38964736f6c63430005110032",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637913b451116100715780637913b451146102205780638b6fdcba1461024e5780638ce7442614610290578063a965b3a914610298578063abe979e1146102d4578063f3bdba8f14610309576100b4565b8063016cbd51146100b9578063164e68de146100f157806320020208146101195780633d67df6f146101585780634cf088d91461019857806370530017146101bc575b600080fd5b6100c161032f565b604080516001600160a01b03948516815263ffffffff909316602084015292168183015290519081900360600190f35b6101176004803603602081101561010757600080fd5b50356001600160a01b0316610353565b005b61013f6004803603602081101561012f57600080fd5b50356001600160a01b0316610718565b6040805163ffffffff9092168252519081900360200190f35b6101866004803603604081101561016e57600080fd5b506001600160a01b0381358116916020013516610730565b60408051918252519081900360200190f35b6101a061074a565b604080516001600160a01b039092168252519081900360200190f35b6101e8600480360360408110156101d257600080fd5b506001600160a01b038135169060200135610759565b6040805163ffffffff95861681529390941660208401526001600160601b039182168385015216606082015290519081900360800190f35b61013f6004803603604081101561023657600080fd5b506001600160a01b03813581169160200135166107a5565b6102746004803603602081101561026457600080fd5b50356001600160a01b03166107c8565b604080516001600160601b039092168252519081900360200190f35b6101a06107e3565b610117600480360360608110156102ae57600080fd5b506001600160a01b03813581169163ffffffff60208201351691604090910135166107f2565b610117600480360360408110156102ea57600080fd5b5080356001600160a01b031690602001356001600160601b031661085c565b6101866004803603602081101561031f57600080fd5b50356001600160a01b0316610a8b565b6007546008546001600160a01b0380831692600160a01b900463ffffffff16911683565b6001600160a01b0381166103985760405162461bcd60e51b815260040180806020018281038252602e815260200180611750602e913960400191505060405180910390fd5b60008054604080516310c59ce360e11b81526001600160a01b0385811660048301529151919092169163218b39c691602480830192602092919082900301818787803b1580156103e757600080fd5b505af11580156103fb573d6000803e3d6000fd5b505050506040513d602081101561041157600080fd5b505190506001600160a01b03811661045a5760405162461bcd60e51b815260040180806020018281038252603381526020018061169d6033913960400191505060405180910390fd5b6000805460408051631e4aaa4f60e31b81526001600160a01b0386811660048301523060248301529151919092169163f255527891604480830192602092919082900301818787803b1580156104af57600080fd5b505af11580156104c3573d6000803e3d6000fd5b505050506040513d60208110156104d957600080fd5b50519050806105195760405162461bcd60e51b815260040180806020018281038252603481526020018061177e6034913960400191505060405180910390fd5b826001600160a01b031663095ea7b383836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561057957600080fd5b505af115801561058d573d6000803e3d6000fd5b505050506040513d60208110156105a357600080fd5b5050604080516340c10f1960e01b81523060048201526024810183905290516000916001600160a01b038516916340c10f199160448082019260209290919082900301818787803b1580156105f757600080fd5b505af115801561060b573d6000803e3d6000fd5b505050506040513d602081101561062157600080fd5b50516040805160608101825281815291925060009161064a918491906117106020830139610a9d565b6001600160a01b038516600090815260066020908152604091829020548251606081018452838152939450610693936001600160601b039091169285926116d090830139610b37565b6001600160a01b038516600090815260066020526040902080546001600160601b0319166001600160601b03929092169190911790556106d284610ba1565b6040805183815290516001600160a01b0386169133917eed5939179dc194223f0edd1517ecee2210b22da7f82c8e4b1795e93b9f06aa9181900360200190a35050505050565b60036020526000908152604090205463ffffffff1681565b60008061073f84846000610c15565b509150505b92915050565b6001546001600160a01b031681565b600260209081526000928352604080842090915290825290205463ffffffff808216916401000000008104909116906001600160601b03600160401b8204811691600160a01b90041684565b600460209081526000928352604080842090915290825290205463ffffffff1681565b6006602052600090815260409020546001600160601b031681565b6000546001600160a01b031681565b604080516060810182526001600160a01b0394851680825263ffffffff9490941660208201819052929094169301839052600780546001600160a01b031990811690931763ffffffff60a01b1916600160a01b909202919091179055600880549091169091179055565b6001600160a01b0382166108a15760405162461bcd60e51b81526004018080602001828103825260308152602001806116106030913960400191505060405180910390fd5b6000816001600160601b0316116108e95760405162461bcd60e51b815260040180806020018281038252602f815260200180611640602f913960400191505060405180910390fd5b604080516323b872dd60e01b81523360048201523060248201526001600160601b038316604482015290516000916001600160a01b038516916323b872dd9160648082019260209290919082900301818787803b15801561094957600080fd5b505af115801561095d573d6000803e3d6000fd5b505050506040513d602081101561097357600080fd5b50519050806109b35760405162461bcd60e51b815260040180806020018281038252602e81526020018061166f602e913960400191505060405180910390fd5b6001600160a01b0383166000908152600660209081526040918290205482516060810190935260378084526109fe936001600160601b03909216928692919061157d90830139610b37565b6001600160a01b038416600090815260066020526040902080546001600160601b0319166001600160601b0392909216919091179055610a3d83610ba1565b604080516001600160601b038416815290516001600160a01b0385169133917f1b89874203ff7f0bba87c969ada3f32fda22ed38a6706d35199d21280c7811b19181900360200190a3505050565b60056020526000908152604090205481565b600081600160601b8410610b2f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610af4578181015183820152602001610adc565b50505050905090810190601f168015610b215780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509192915050565b6000838301826001600160601b038087169083161015610b985760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610af4578181015183820152602001610adc565b50949350505050565b6001600160a01b03811660009081526005602052604090205462015180429190910310610c12576001600160a01b03811660009081526005602090815260408083204290556006909152902080546001600160601b031981169091556001600160601b0316610c108282610f68565b505b50565b6001600160a01b038084166000908152600460209081526040808320938616835292905290812054819063ffffffff908116908290851615610cc3576001600160a01b03861660009081526003602052604090205463ffffffff90811690831610610cb15760405162461bcd60e51b81526004018080602001828103825260398152602001806115446039913960400191505060405180910390fd5b610cbc828787611239565b9050610d35565b6001600160a01b03861660009081526003602052604090205463ffffffff90811690831610610d1457505050506001600160a01b03821660009081526003602052604081205463ffffffff16610f60565b506001600160a01b03851660009081526003602052604090205463ffffffff165b60008080845b8463ffffffff168163ffffffff161015610f55576001600160a01b03808b16600090815260026020908152604080832063ffffffff8087168552908352818420600154815484516372ec979560e01b815264010000000090910490931660048401529251909592909216926372ec979592602480840193829003018186803b158015610dc657600080fd5b505afa158015610dda573d6000803e3d6000fd5b505050506040513d6020811015610df057600080fd5b50519050600085821415610e05575083610eee565b600160009054906101000a90046001600160a01b03166001600160a01b03166337e6b1c18f60018660000160009054906101000a900463ffffffff16038660000160049054906101000a900463ffffffff166040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018363ffffffff1681526020018263ffffffff168152602001935050505060206040518083038186803b158015610eb757600080fd5b505afa158015610ecb573d6000803e3d6000fd5b505050506040513d6020811015610ee157600080fd5b5051919550909350849050835b8254600090610f31906001600160601b03600160401b8204811691610f2591600160a01b909104811690861663ffffffff61130b16565b9063ffffffff61136b16565b9050610f43888263ffffffff6113ad16565b97505060019093019250610d3b915050565b509195509193505050505b935093915050565b6000610f8c436040518060600160405280603f8152602001611505603f9139611407565b90506000610fb2426040518060800160405280604281526020016114c360429139611407565b6001600160a01b0385811660009081526003602090815260408083205460015482516312916bdd60e11b815263ffffffff6000198b01811660048301524260248301529351979850929091169593941692632522d7ba92604480840193919291829003018186803b15801561102657600080fd5b505afa15801561103a573d6000803e3d6000fd5b505050506040513d602081101561105057600080fd5b5051905063ffffffff82161580159061109a57506001600160a01b038616600090815260026020908152604080832063ffffffff6000198701811685529252909120548582169116145b1561110f576001600160a01b03868116600090815260026020908152604080832063ffffffff6000198801168452909152902080546001600160601b03888116600160a01b02908516600160401b026bffffffffffffffffffffffff60401b19909216919091179092169190911790556111e8565b6040805160808101825263ffffffff808716825285811660208084019182526001600160601b038087168587019081528b8216606087019081526001600160a01b03808f166000818152600287528a81208d8a16825287528a812099518a549851955194518716600160a01b0294909616600160401b026bffffffffffffffffffffffff60401b19958a166401000000000267ffffffff0000000019978b1663ffffffff199a8b161797909716969096179490941694909417161790955584526003905292909120805460018601909216919092161790555b604080516001600160601b038716815290516001600160a01b0388169133917ff61a5f2f4d0b2d871d5bf18717d08a6b0f543afa7e08dad5df1fea150f7296329181900360200190a3505050505050565b6001600160a01b03821660009081526003602052604081205463ffffffff908116908290841661126a5750806112c1565b606463ffffffff8516111561127e57606493505b6112a884870163ffffffff166040518060600160405280603b81526020016115b4603b9139611407565b90508163ffffffff168163ffffffff1611156112c15750805b6001600160a01b038516600090815260026020908152604080832063ffffffff600019860181168552925290912054164381141561130157600019909101905b5095945050505050565b60008261131a57506000610744565b8282028284828161132757fe5b04146113645760405162461bcd60e51b81526004018080602001828103825260218152602001806115ef6021913960400191505060405180910390fd5b9392505050565b600061136483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061145d565b600082820183811015611364576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000816401000000008410610b2f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610af4578181015183820152602001610adc565b600081836114ac5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610af4578181015183820152602001610adc565b5060008385816114b857fe5b049594505050505056fe46656553686172696e6750726f78793a3a5f7772697465436865636b706f696e743a20626c6f636b2074696d657374616d702065786365656473203332206269747346656553686172696e6750726f78793a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747346656553686172696e6750726f78793a3a7769746864726177466565733a206e6f20746f6b656e7320666f722061207769746864726177616c46656553686172696e6750726f78793a3a7472616e73666572546f6b656e733a20616d6f756e742065786365656473203936206269747346656553686172696e6750726f78793a3a77697468647261773a20636865636b706f696e7420696e64657820657863656564732033322062697473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7746656553686172696e6750726f78793a3a7472616e73666572546f6b656e733a20696e76616c6964206164647265737346656553686172696e6750726f78793a3a7472616e73666572546f6b656e733a20696e76616c696420616d6f756e745374616b696e673a3a7472616e73666572546f6b656e733a20746f6b656e207472616e73666572206661696c656446656553686172696e6750726f78793a3a7769746864726177466565733a206c6f616e20746f6b656e206e6f7420666f756e6446656553686172696e6750726f78793a3a7769746864726177466565733a20756e70726f636573736564416d6f756e742065786365656473203936206269747346656553686172696e6750726f78793a3a7769746864726177466565733a20706f6f6c20746f6b656e20616d6f756e742065786365656473203936206269747346656553686172696e6750726f78793a3a7769746864726177466565733a20696e76616c6964206164647265737346656553686172696e6750726f78793a3a7769746864726177466565733a206e6f20746f6b656e7320746f207769746864726177a265627a7a72315820db5527f5c7de82698817f5e913dd7bb5c4f1e6b13e88a8165a9b3b093aa8c38964736f6c63430005110032",
"linkReferences": {},
"deployedLinkReferences": {}
}