test-contracts-sovryn
Version:
Smart contracts for the Sovryn protocol and external integrations.
638 lines (637 loc) • 29.5 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "StakingProxy",
"sourceName": "contracts/governance/Staking/StakingProxy.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "SOV",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_oldImplementation",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "_newImplementation",
"type": "address"
}
],
"name": "ImplementationChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_oldOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "_newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": true,
"inputs": [],
"name": "DELEGATION_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "DOMAIN_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "MAX_DURATION",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "MAX_VOTING_WEIGHT",
"outputs": [
{
"internalType": "uint96",
"name": "",
"type": "uint96"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SOVToken",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "WEIGHT_FACTOR",
"outputs": [
{
"internalType": "uint96",
"name": "",
"type": "uint96"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "admins",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "allUnlocked",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"name": "delegateStakingCheckpoints",
"outputs": [
{
"internalType": "uint32",
"name": "fromBlock",
"type": "uint32"
},
{
"internalType": "uint96",
"name": "stake",
"type": "uint96"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "delegates",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "feeSharing",
"outputs": [
{
"internalType": "contract IFeeSharingProxy",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getImplementation",
"outputs": [
{
"internalType": "address",
"name": "_implementation",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getProxyOwner",
"outputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isOwner",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "kickoffTS",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "newStakingContract",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "numDelegateStakingCheckpoints",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "numTotalStakingCheckpoints",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "numUserStakingCheckpoints",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_implementation",
"type": "address"
}
],
"name": "setImplementation",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "setProxyOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"name": "totalStakingCheckpoints",
"outputs": [
{
"internalType": "uint32",
"name": "fromBlock",
"type": "uint32"
},
{
"internalType": "uint96",
"name": "stake",
"type": "uint96"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"name": "userStakingCheckpoints",
"outputs": [
{
"internalType": "uint32",
"name": "fromBlock",
"type": "uint32"
},
{
"internalType": "uint96",
"name": "stake",
"type": "uint96"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "vestingCodeHashes",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "vestingRegistryLogic",
"outputs": [
{
"internalType": "contract VestingRegistryLogic",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "vestingWhitelist",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "weightScaling",
"outputs": [
{
"internalType": "uint96",
"name": "",
"type": "uint96"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60c0604052600a608081905269534f565374616b696e6760b01b60a09081526200002d9160029190620001ea565b506005805460ff19169055600d80546001600160a01b0316600360a01b1790553480156200005a57600080fd5b506040516200115338038062001153833981810160405260208110156200008057600080fd5b50516000620000976001600160e01b036200010e16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350916000805160206200110e833981519152908290a350620000e4336001600160e01b036200011316565b600380546001600160a01b0319166001600160a01b0392909216919091179055426001556200028c565b335b90565b6001600160a01b0381166200015a5760405162461bcd60e51b81526004018080602001828103825260258152602001806200112e6025913960400191505060405180910390fd5b6001600160a01b038116620001776001600160e01b03620001c216565b6001600160a01b03166000805160206200110e83398151915260405160405180910390a3604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f01902055565b604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f0190205490565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022d57805160ff19168380011785556200025d565b828001600101855582156200025d579182015b828111156200025d57825182559160200191906001019062000240565b506200026b9291506200026f565b5090565b6200011091905b808211156200026b576000815560010162000276565b610e72806200029c6000396000f3fe6080604052600436106101cc5760003560e01c806394c2ce58116100f7578063bf626ec111610095578063db27ec1811610064578063db27ec181461066d578063dfb267c2146106a6578063e7a324dc146106dc578063f2fde38b146106f1576101cc565b8063bf626ec1146105db578063caaee91c146105f0578063d27569e714610625578063d784d4261461063a576101cc565b8063aaf10f42116100d1578063aaf10f4214610569578063adae90021461057e578063ae81dfe4146105b1578063b1724b46146105c6576101cc565b806394c2ce58146105065780639929e8861461053f578063a58848c514610554576101cc565b806327dd1b001161016f5780637ecebe001161013e5780637ecebe00146104665780638da5cb5b146104995780638f32d59b146104ae5780639436e7d4146104c3576101cc565b806327dd1b0014610348578063429b62e51461038157806368cefccc146103b45780636b6fde0e14610421576101cc565b8063104932cf116101ab578063104932cf146102d857806317748adc146102ed5780631ab7710d1461031e57806320606b7014610333576101cc565b8062073f991461024257806303a18fa31461026957806307392cc01461029a575b60006101d6610724565b90506001600160a01b03811661021d5760405162461bcd60e51b8152600401808060200182810382526023815260200180610df66023913960400191505060405180910390fd5b60405136600082376000803683855af43d806000843e81801561023e578184f35b8184fd5b34801561024e57600080fd5b5061025761074f565b60408051918252519081900360200190f35b34801561027557600080fd5b5061027e610755565b604080516001600160a01b039092168252519081900360200190f35b3480156102a657600080fd5b506102c4600480360360208110156102bd57600080fd5b5035610764565b604080519115158252519081900360200190f35b3480156102e457600080fd5b5061027e610779565b3480156102f957600080fd5b50610302610788565b604080516001600160601b039092168252519081900360200190f35b34801561032a57600080fd5b5061027e61078d565b34801561033f57600080fd5b506102576107b5565b34801561035457600080fd5b5061027e6004803603604081101561036b57600080fd5b506001600160a01b0381351690602001356107d0565b34801561038d57600080fd5b506102c4600480360360208110156103a457600080fd5b50356001600160a01b03166107f6565b3480156103c057600080fd5b506103f9600480360360608110156103d757600080fd5b5080356001600160a01b0316906020810135906040013563ffffffff1661080b565b6040805163ffffffff90931683526001600160601b0390911660208301528051918290030190f35b34801561042d57600080fd5b506103f96004803603606081101561044457600080fd5b5080356001600160a01b0316906020810135906040013563ffffffff16610847565b34801561047257600080fd5b506102576004803603602081101561048957600080fd5b50356001600160a01b0316610883565b3480156104a557600080fd5b5061027e610895565b3480156104ba57600080fd5b506102c46108a4565b3480156104cf57600080fd5b506104ed600480360360208110156104e657600080fd5b50356108c8565b6040805163ffffffff9092168252519081900360200190f35b34801561051257600080fd5b506104ed6004803603604081101561052957600080fd5b506001600160a01b0381351690602001356108e0565b34801561054b57600080fd5b506102c4610903565b34801561056057600080fd5b5061027e61090c565b34801561057557600080fd5b5061027e610724565b34801561058a57600080fd5b506102c4600480360360208110156105a157600080fd5b50356001600160a01b031661091b565b3480156105bd57600080fd5b5061027e610930565b3480156105d257600080fd5b50610257610944565b3480156105e757600080fd5b5061030261094c565b3480156105fc57600080fd5b506106236004803603602081101561061357600080fd5b50356001600160a01b0316610962565b005b34801561063157600080fd5b506103026109d3565b34801561064657600080fd5b506106236004803603602081101561065d57600080fd5b50356001600160a01b03166109d8565b34801561067957600080fd5b506104ed6004803603604081101561069057600080fd5b506001600160a01b038135169060200135610a46565b3480156106b257600080fd5b506103f9600480360360408110156106c957600080fd5b508035906020013563ffffffff16610a69565b3480156106e857600080fd5b50610257610a9f565b3480156106fd57600080fd5b506106236004803603602081101561071457600080fd5b50356001600160a01b0316610aba565b604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b815290519081900360120190205490565b60015481565b600d546001600160a01b031681565b60106020526000908152604090205460ff1681565b6011546001600160a01b031681565b600981565b604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f0190205490565b604051806043610d6882396043019050604051809103902081565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b600f6020526000908152604090205460ff1681565b600a60209081526000938452604080852082529284528284209052825290205463ffffffff81169064010000000090046001600160601b031682565b600860209081526000938452604080852082529284528284209052825290205463ffffffff81169064010000000090046001600160601b031682565b600c6020526000908152604090205481565b6000546001600160a01b031690565b600080546001600160a01b03166108b9610b0b565b6001600160a01b031614905090565b60076020526000908152604090205463ffffffff1681565b600960209081526000928352604080842090915290825290205463ffffffff1681565b60055460ff1681565b6003546001600160a01b031681565b600e6020526000908152604090205460ff1681565b60055461010090046001600160a01b031681565b63059fa60081565b600d54600160a01b90046001600160601b031681565b61096a61078d565b6001600160a01b0316336001600160a01b0316146109c7576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b6109d081610b0f565b50565b600a81565b6109e061078d565b6001600160a01b0316336001600160a01b031614610a3d576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b6109d081610bc2565b600b60209081526000928352604080842090915290825290205463ffffffff1681565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b60405180604b610dab8239604b019050604051809103902081565b610ac26108a4565b610b02576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6109d081610c78565b3390565b6001600160a01b038116610b545760405162461bcd60e51b8152600401808060200182810382526025815260200180610e196025913960400191505060405180910390fd5b806001600160a01b0316610b6661078d565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f01902055565b6001600160a01b038116610c075760405162461bcd60e51b8152600401808060200182810382526029815260200180610d3f6029913960400191505060405180910390fd5b806001600160a01b0316610c19610724565b6001600160a01b03167fcfbf4028add9318bbf716f08c348595afb063b0e9feed1f86d33681a4b3ed4d360405160405180910390a3604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b8152905190819003601201902055565b6001600160a01b038116610cbd5760405162461bcd60e51b8152600401808060200182810382526026815260200180610d196026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737350726f78793a3a736574496d706c656d656e746174696f6e3a20696e76616c69642061646472657373454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742944656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206c6f636b446174652c75696e74323536206e6f6e63652c75696e74323536206578706972792950726f78793a3a28293a20696d706c656d656e746174696f6e206e6f7420666f756e6450726f78793a3a73657450726f78794f776e65723a20696e76616c69642061646472657373a265627a7a72315820e833a5c2625147691199c0c1e76bb3a8522a2ea1c6082c18e848521a5951994564736f6c634300051100328be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e050726f78793a3a73657450726f78794f776e65723a20696e76616c69642061646472657373",
"deployedBytecode": "0x6080604052600436106101cc5760003560e01c806394c2ce58116100f7578063bf626ec111610095578063db27ec1811610064578063db27ec181461066d578063dfb267c2146106a6578063e7a324dc146106dc578063f2fde38b146106f1576101cc565b8063bf626ec1146105db578063caaee91c146105f0578063d27569e714610625578063d784d4261461063a576101cc565b8063aaf10f42116100d1578063aaf10f4214610569578063adae90021461057e578063ae81dfe4146105b1578063b1724b46146105c6576101cc565b806394c2ce58146105065780639929e8861461053f578063a58848c514610554576101cc565b806327dd1b001161016f5780637ecebe001161013e5780637ecebe00146104665780638da5cb5b146104995780638f32d59b146104ae5780639436e7d4146104c3576101cc565b806327dd1b0014610348578063429b62e51461038157806368cefccc146103b45780636b6fde0e14610421576101cc565b8063104932cf116101ab578063104932cf146102d857806317748adc146102ed5780631ab7710d1461031e57806320606b7014610333576101cc565b8062073f991461024257806303a18fa31461026957806307392cc01461029a575b60006101d6610724565b90506001600160a01b03811661021d5760405162461bcd60e51b8152600401808060200182810382526023815260200180610df66023913960400191505060405180910390fd5b60405136600082376000803683855af43d806000843e81801561023e578184f35b8184fd5b34801561024e57600080fd5b5061025761074f565b60408051918252519081900360200190f35b34801561027557600080fd5b5061027e610755565b604080516001600160a01b039092168252519081900360200190f35b3480156102a657600080fd5b506102c4600480360360208110156102bd57600080fd5b5035610764565b604080519115158252519081900360200190f35b3480156102e457600080fd5b5061027e610779565b3480156102f957600080fd5b50610302610788565b604080516001600160601b039092168252519081900360200190f35b34801561032a57600080fd5b5061027e61078d565b34801561033f57600080fd5b506102576107b5565b34801561035457600080fd5b5061027e6004803603604081101561036b57600080fd5b506001600160a01b0381351690602001356107d0565b34801561038d57600080fd5b506102c4600480360360208110156103a457600080fd5b50356001600160a01b03166107f6565b3480156103c057600080fd5b506103f9600480360360608110156103d757600080fd5b5080356001600160a01b0316906020810135906040013563ffffffff1661080b565b6040805163ffffffff90931683526001600160601b0390911660208301528051918290030190f35b34801561042d57600080fd5b506103f96004803603606081101561044457600080fd5b5080356001600160a01b0316906020810135906040013563ffffffff16610847565b34801561047257600080fd5b506102576004803603602081101561048957600080fd5b50356001600160a01b0316610883565b3480156104a557600080fd5b5061027e610895565b3480156104ba57600080fd5b506102c46108a4565b3480156104cf57600080fd5b506104ed600480360360208110156104e657600080fd5b50356108c8565b6040805163ffffffff9092168252519081900360200190f35b34801561051257600080fd5b506104ed6004803603604081101561052957600080fd5b506001600160a01b0381351690602001356108e0565b34801561054b57600080fd5b506102c4610903565b34801561056057600080fd5b5061027e61090c565b34801561057557600080fd5b5061027e610724565b34801561058a57600080fd5b506102c4600480360360208110156105a157600080fd5b50356001600160a01b031661091b565b3480156105bd57600080fd5b5061027e610930565b3480156105d257600080fd5b50610257610944565b3480156105e757600080fd5b5061030261094c565b3480156105fc57600080fd5b506106236004803603602081101561061357600080fd5b50356001600160a01b0316610962565b005b34801561063157600080fd5b506103026109d3565b34801561064657600080fd5b506106236004803603602081101561065d57600080fd5b50356001600160a01b03166109d8565b34801561067957600080fd5b506104ed6004803603604081101561069057600080fd5b506001600160a01b038135169060200135610a46565b3480156106b257600080fd5b506103f9600480360360408110156106c957600080fd5b508035906020013563ffffffff16610a69565b3480156106e857600080fd5b50610257610a9f565b3480156106fd57600080fd5b506106236004803603602081101561071457600080fd5b50356001600160a01b0316610aba565b604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b815290519081900360120190205490565b60015481565b600d546001600160a01b031681565b60106020526000908152604090205460ff1681565b6011546001600160a01b031681565b600981565b604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f0190205490565b604051806043610d6882396043019050604051809103902081565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b600f6020526000908152604090205460ff1681565b600a60209081526000938452604080852082529284528284209052825290205463ffffffff81169064010000000090046001600160601b031682565b600860209081526000938452604080852082529284528284209052825290205463ffffffff81169064010000000090046001600160601b031682565b600c6020526000908152604090205481565b6000546001600160a01b031690565b600080546001600160a01b03166108b9610b0b565b6001600160a01b031614905090565b60076020526000908152604090205463ffffffff1681565b600960209081526000928352604080842090915290825290205463ffffffff1681565b60055460ff1681565b6003546001600160a01b031681565b600e6020526000908152604090205460ff1681565b60055461010090046001600160a01b031681565b63059fa60081565b600d54600160a01b90046001600160601b031681565b61096a61078d565b6001600160a01b0316336001600160a01b0316146109c7576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b6109d081610b0f565b50565b600a81565b6109e061078d565b6001600160a01b0316336001600160a01b031614610a3d576040805162461bcd60e51b8152602060048201526015602482015274141c9bde1e4e8e881858d8d95cdcc819195b9a5959605a1b604482015290519081900360640190fd5b6109d081610bc2565b600b60209081526000928352604080842090915290825290205463ffffffff1681565b600660209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b60405180604b610dab8239604b019050604051809103902081565b610ac26108a4565b610b02576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6109d081610c78565b3390565b6001600160a01b038116610b545760405162461bcd60e51b8152600401808060200182810382526025815260200180610e196025913960400191505060405180910390fd5b806001600160a01b0316610b6661078d565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3604080516e35b2bc97383937bc3c9737bbb732b960891b8152905190819003600f01902055565b6001600160a01b038116610c075760405162461bcd60e51b8152600401808060200182810382526029815260200180610d3f6029913960400191505060405180910390fd5b806001600160a01b0316610c19610724565b6001600160a01b03167fcfbf4028add9318bbf716f08c348595afb063b0e9feed1f86d33681a4b3ed4d360405160405180910390a3604080517135b2bc9734b6b83632b6b2b73a30ba34b7b760711b8152905190819003601201902055565b6001600160a01b038116610cbd5760405162461bcd60e51b8152600401808060200182810382526026815260200180610d196026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737350726f78793a3a736574496d706c656d656e746174696f6e3a20696e76616c69642061646472657373454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742944656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206c6f636b446174652c75696e74323536206e6f6e63652c75696e74323536206578706972792950726f78793a3a28293a20696d706c656d656e746174696f6e206e6f7420666f756e6450726f78793a3a73657450726f78794f776e65723a20696e76616c69642061646472657373a265627a7a72315820e833a5c2625147691199c0c1e76bb3a8522a2ea1c6082c18e848521a5951994564736f6c63430005110032",
"linkReferences": {},
"deployedLinkReferences": {}
}