@venusprotocol/governance-contracts
Version:
546 lines (545 loc) • 39.9 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "CollateralFactorsRiskSteward",
"sourceName": "contracts/RiskSteward/CollateralFactorsRiskSteward.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "corePoolComptroller_",
"type": "address"
},
{
"internalType": "address",
"name": "riskStewardReceiver_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "InvalidPool",
"type": "error"
},
{
"inputs": [],
"name": "InvalidSafeDeltaBps",
"type": "error"
},
{
"inputs": [],
"name": "InvalidTwoUintLength",
"type": "error"
},
{
"inputs": [],
"name": "OnlyRiskStewardReceiver",
"type": "error"
},
{
"inputs": [],
"name": "RedundantValue",
"type": "error"
},
{
"inputs": [],
"name": "RenounceOwnershipNotAllowed",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "errorCode",
"type": "uint256"
}
],
"name": "SetCollateralFactorFailed",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "calledContract",
"type": "address"
},
{
"internalType": "string",
"name": "methodSignature",
"type": "string"
}
],
"name": "Unauthorized",
"type": "error"
},
{
"inputs": [],
"name": "UnsupportedUpdateType",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAddressNotAllowed",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "updateId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "market",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newCollateralFactor",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newLiquidationThreshold",
"type": "uint256"
}
],
"name": "CollateralFactorsUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "oldAccessControlManager",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newAccessControlManager",
"type": "address"
}
],
"name": "NewAccessControlManager",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferStarted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldSafeDeltaBps",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newSafeDeltaBps",
"type": "uint256"
}
],
"name": "SafeDeltaBpsUpdated",
"type": "event"
},
{
"inputs": [],
"name": "COLLATERAL_FACTORS",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "COLLATERAL_FACTORS_KEY",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "CORE_POOL_COMPTROLLER",
"outputs": [
{
"internalType": "contract ICorePoolComptroller",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "RISK_STEWARD_RECEIVER",
"outputs": [
{
"internalType": "contract IRiskStewardReceiver",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "acceptOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "accessControlManager",
"outputs": [
{
"internalType": "contract IAccessControlManagerV8",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "referenceId",
"type": "string"
},
{
"internalType": "uint256",
"name": "updateId",
"type": "uint256"
},
{
"internalType": "address",
"name": "market",
"type": "address"
},
{
"internalType": "string",
"name": "updateType",
"type": "string"
},
{
"internalType": "bytes32",
"name": "updateTypeKey",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "newValue",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "previousValue",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"internalType": "address",
"name": "publisher",
"type": "address"
},
{
"internalType": "uint96",
"name": "poolId",
"type": "uint96"
},
{
"internalType": "uint32",
"name": "destLzEid",
"type": "uint32"
},
{
"internalType": "bytes",
"name": "additionalData",
"type": "bytes"
}
],
"internalType": "struct RiskParameterUpdate",
"name": "update",
"type": "tuple"
}
],
"name": "applyUpdate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "accessControlManager_",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "referenceId",
"type": "string"
},
{
"internalType": "uint256",
"name": "updateId",
"type": "uint256"
},
{
"internalType": "address",
"name": "market",
"type": "address"
},
{
"internalType": "string",
"name": "updateType",
"type": "string"
},
{
"internalType": "bytes32",
"name": "updateTypeKey",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "newValue",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "previousValue",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"internalType": "address",
"name": "publisher",
"type": "address"
},
{
"internalType": "uint96",
"name": "poolId",
"type": "uint96"
},
{
"internalType": "uint32",
"name": "destLzEid",
"type": "uint32"
},
{
"internalType": "bytes",
"name": "additionalData",
"type": "bytes"
}
],
"internalType": "struct RiskParameterUpdate",
"name": "update",
"type": "tuple"
}
],
"name": "isSafeForDirectExecution",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"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": "renounceOwnership",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "safeDeltaBps",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "accessControlManager_",
"type": "address"
}
],
"name": "setAccessControlManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "safeDeltaBps_",
"type": "uint256"
}
],
"name": "setSafeDeltaBps",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60c060405234801561001057600080fd5b50604051611bcc380380611bcc83398101604081905261002f91610160565b6100388161005a565b6001600160a01b03808316608052811660a052610053610084565b5050610193565b6001600160a01b038116610081576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff16156100f05760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610142576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811461015b57600080fd5b919050565b6000806040838503121561017357600080fd5b61017c83610144565b915061018a60208401610144565b90509250929050565b60805160a0516119ff6101cd600039600081816101f6015261077201526000818161030501528181610e46015261106901526119ff6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063b4a0bdf311610097578063e62569be11610066578063e62569be1461027a578063ee97f265146102e4578063f2fde38b146102ed578063fa7b81a01461030057600080fd5b8063b4a0bdf314610218578063bf63783914610236578063c4d66de814610249578063e30c39781461025c57600080fd5b8063715018a6116100d3578063715018a6146101a257806379ba5097146101aa5780638da5cb5b146101b2578063b296e6cb146101f157600080fd5b80630e32cb861461010557806312cc26471461011a5780632c47d86f1461016c57806342b7cfbd1461017f575b600080fd5b6101186101133660046115fe565b610327565b005b6101566040518060400160405280601181526020017f636f6c6c61746572616c466163746f727300000000000000000000000000000081525081565b6040516101639190611686565b60405180910390f35b61011861017a366004611699565b61033b565b61019261018d3660046116b2565b610434565b6040519015158152602001610163565b610118610671565b6101186106a3565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610163565b6101cc7f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff166101cc565b6101186102443660046116b2565b61075a565b6101186102573660046115fe565b610927565b60655473ffffffffffffffffffffffffffffffffffffffff166101cc565b60408051808201909152601181527f636f6c6c61746572616c466163746f72730000000000000000000000000000006020909101526102d67f8370b9108dc54d549f7f967730058d7047833aa4750d10ac92879dc48e94db6881565b604051908152602001610163565b6102d660c95481565b6101186102fb3660046115fe565b610ab7565b6101cc7f000000000000000000000000000000000000000000000000000000000000000081565b61032f610b67565b61033881610bea565b50565b6103796040518060400160405280601881526020017f7365745361666544656c74614270732875696e74323536290000000000000000815250610d0c565b6127108111156103b5576040517fc514758500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c9548082036103f1576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c982905560408051828152602081018490527fa05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab91015b60405180910390a15050565b60408051808201909152601181527f636f6c6c61746572616c466163746f727300000000000000000000000000000060209091015260007f7c8f46ef723ab2ab60806988cffa728fb87cc55b8af2ef536d78623b716b249860808301350161063f576104a861014083016101208401611708565b6bffffffffffffffffffffffff16156104c357506000919050565b60006104d560608401604085016115fe565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190611725565b905060008061059261055860a0870187611742565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610de592505050565b90925090506000806105b3856105ae60608a0160408b016115fe565b610e41565b9150915081841480156105c557508083145b156105fc576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b811580610607575080155b15610619575060009695505050505050565b6106238483610fd6565b801561063457506106348382610fd6565b979650505050505050565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff168114610751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61033881611026565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146107c9576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107db60608301604084016115fe565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108499190611725565b9050600061085f61014084016101208501611708565b60408051808201909152601181527f636f6c6c61746572616c466163746f727300000000000000000000000000000060209091015290507f7c8f46ef723ab2ab60806988cffa728fb87cc55b8af2ef536d78623b716b249860808401350161063f576109226020840135836108da60608701604088016115fe565b846108e860a0890189611742565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061105792505050565b505050565b600054610100900460ff16158080156109475750600054600160ff909116105b806109615750303b158015610961575060005460ff166001145b6109ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610748565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a4b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a54826112e7565b8015610ab357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610428565b5050565b610abf610b67565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610b2260335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610748565b565b73ffffffffffffffffffffffffffffffffffffffff8116610c8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610748565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610428565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610d6590339086906004016117a7565b602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da691906117f3565b905080610ab3573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016107489392919061180e565b6000808251604014610e23576040517f3bead5a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82806020019051810190610e379190611850565b9094909350915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f8e8f294b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152851690638e8f294b9060240160e060405180830381865afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190611874565b50939650909450610fcf9350505050565b6040517f8e8f294b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152851690638e8f294b90602401606060405180830381865afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc891906118e7565b9093509150505b9250929050565b600080828411610fef57610fea848461194b565b610ff9565b610ff9838561194b565b905060006127108460c95461100e919061195e565b6110189190611975565b909111159150505b92915050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103388161138f565b60008061106383610de5565b915091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036111b5576040517f9159b1770000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018490526064820183905260009190881690639159b177906084016020604051808303816000875af115801561114e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117291906119b0565b905080156111af576040517ff69d209900000000000000000000000000000000000000000000000000000000815260048101829052602401610748565b5061128b565b6bffffffffffffffffffffffff8416156111fb576040517f2083cd4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f5cc4fdeb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526024820184905260448201839052871690635cc4fdeb90606401600060405180830381600087803b15801561127257600080fd5b505af1158015611286573d6000803e3d6000fd5b505050505b604080518381526020810183905273ffffffffffffffffffffffffffffffffffffffff87169189917f345175133778c4fdb297de94ca161a1248998f240be2ae89b35225d0167e0648910160405180910390a350505050505050565b600054610100900460ff1661137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b611386611406565b610338816114a5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610be861153c565b600054610100900460ff1661032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b600054610100900460ff166115d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610be833611026565b73ffffffffffffffffffffffffffffffffffffffff8116811461033857600080fd5b60006020828403121561161057600080fd5b813561161b816115dc565b9392505050565b6000815180845260005b818110156116485760208185018101518683018201520161162c565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061161b6020830184611622565b6000602082840312156116ab57600080fd5b5035919050565b6000602082840312156116c457600080fd5b813567ffffffffffffffff8111156116db57600080fd5b8201610180818503121561161b57600080fd5b6bffffffffffffffffffffffff8116811461033857600080fd5b60006020828403121561171a57600080fd5b813561161b816116ee565b60006020828403121561173757600080fd5b815161161b816115dc565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261177757600080fd5b83018035915067ffffffffffffffff82111561179257600080fd5b602001915036819003821315610fcf57600080fd5b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006117d66040830184611622565b949350505050565b805180151581146117ee57600080fd5b919050565b60006020828403121561180557600080fd5b61161b826117de565b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526118476060830184611622565b95945050505050565b6000806040838503121561186357600080fd5b505080516020909101519092909150565b600080600080600080600060e0888a03121561188f57600080fd5b611898886117de565b9650602088015195506118ad604089016117de565b9450606088015193506080880151925060a08801516118cb816116ee565b91506118d960c089016117de565b905092959891949750929550565b6000806000606084860312156118fc57600080fd5b611905846117de565b925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156110205761102061191c565b80820281158282048414176110205761102061191c565b6000826119ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156119c257600080fd5b505191905056fea264697066735822122084b3e9480a69f40c7501f05acd488455a6cbdb0445afd1f687116b636361c5c264736f6c63430008190033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063b4a0bdf311610097578063e62569be11610066578063e62569be1461027a578063ee97f265146102e4578063f2fde38b146102ed578063fa7b81a01461030057600080fd5b8063b4a0bdf314610218578063bf63783914610236578063c4d66de814610249578063e30c39781461025c57600080fd5b8063715018a6116100d3578063715018a6146101a257806379ba5097146101aa5780638da5cb5b146101b2578063b296e6cb146101f157600080fd5b80630e32cb861461010557806312cc26471461011a5780632c47d86f1461016c57806342b7cfbd1461017f575b600080fd5b6101186101133660046115fe565b610327565b005b6101566040518060400160405280601181526020017f636f6c6c61746572616c466163746f727300000000000000000000000000000081525081565b6040516101639190611686565b60405180910390f35b61011861017a366004611699565b61033b565b61019261018d3660046116b2565b610434565b6040519015158152602001610163565b610118610671565b6101186106a3565b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610163565b6101cc7f000000000000000000000000000000000000000000000000000000000000000081565b60975473ffffffffffffffffffffffffffffffffffffffff166101cc565b6101186102443660046116b2565b61075a565b6101186102573660046115fe565b610927565b60655473ffffffffffffffffffffffffffffffffffffffff166101cc565b60408051808201909152601181527f636f6c6c61746572616c466163746f72730000000000000000000000000000006020909101526102d67f8370b9108dc54d549f7f967730058d7047833aa4750d10ac92879dc48e94db6881565b604051908152602001610163565b6102d660c95481565b6101186102fb3660046115fe565b610ab7565b6101cc7f000000000000000000000000000000000000000000000000000000000000000081565b61032f610b67565b61033881610bea565b50565b6103796040518060400160405280601881526020017f7365745361666544656c74614270732875696e74323536290000000000000000815250610d0c565b6127108111156103b5576040517fc514758500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c9548082036103f1576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c982905560408051828152602081018490527fa05c0cb0e77decc6503407c6ca159106b8b001d9feb7927d08fad60094a934ab91015b60405180910390a15050565b60408051808201909152601181527f636f6c6c61746572616c466163746f727300000000000000000000000000000060209091015260007f7c8f46ef723ab2ab60806988cffa728fb87cc55b8af2ef536d78623b716b249860808301350161063f576104a861014083016101208401611708565b6bffffffffffffffffffffffff16156104c357506000919050565b60006104d560608401604085016115fe565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190611725565b905060008061059261055860a0870187611742565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610de592505050565b90925090506000806105b3856105ae60608a0160408b016115fe565b610e41565b9150915081841480156105c557508083145b156105fc576040517f925cd79500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b811580610607575080155b15610619575060009695505050505050565b6106238483610fd6565b801561063457506106348382610fd6565b979650505050505050565b6040517f80919d7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f96c553eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606554339073ffffffffffffffffffffffffffffffffffffffff168114610751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61033881611026565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146107c9576040517f3a739dd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107db60608301604084016115fe565b73ffffffffffffffffffffffffffffffffffffffff16635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108499190611725565b9050600061085f61014084016101208501611708565b60408051808201909152601181527f636f6c6c61746572616c466163746f727300000000000000000000000000000060209091015290507f7c8f46ef723ab2ab60806988cffa728fb87cc55b8af2ef536d78623b716b249860808401350161063f576109226020840135836108da60608701604088016115fe565b846108e860a0890189611742565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061105792505050565b505050565b600054610100900460ff16158080156109475750600054600160ff909116105b806109615750303b158015610961575060005460ff166001145b6109ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610748565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a4b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a54826112e7565b8015610ab357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610428565b5050565b610abf610b67565b6065805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610b2260335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60335473ffffffffffffffffffffffffffffffffffffffff163314610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610748565b565b73ffffffffffffffffffffffffffffffffffffffff8116610c8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610748565b6097805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610428565b6097546040517f18c5e8ab00000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906318c5e8ab90610d6590339086906004016117a7565b602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da691906117f3565b905080610ab3573330836040517f4a3fa2930000000000000000000000000000000000000000000000000000000081526004016107489392919061180e565b6000808251604014610e23576040517f3bead5a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82806020019051810190610e379190611850565b9094909350915050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f8e8f294b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152851690638e8f294b9060240160e060405180830381865afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190611874565b50939650909450610fcf9350505050565b6040517f8e8f294b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152851690638e8f294b90602401606060405180830381865afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc891906118e7565b9093509150505b9250929050565b600080828411610fef57610fea848461194b565b610ff9565b610ff9838561194b565b905060006127108460c95461100e919061195e565b6110189190611975565b909111159150505b92915050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103388161138f565b60008061106383610de5565b915091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036111b5576040517f9159b1770000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff8516600482015273ffffffffffffffffffffffffffffffffffffffff8681166024830152604482018490526064820183905260009190881690639159b177906084016020604051808303816000875af115801561114e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117291906119b0565b905080156111af576040517ff69d209900000000000000000000000000000000000000000000000000000000815260048101829052602401610748565b5061128b565b6bffffffffffffffffffffffff8416156111fb576040517f2083cd4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f5cc4fdeb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301526024820184905260448201839052871690635cc4fdeb90606401600060405180830381600087803b15801561127257600080fd5b505af1158015611286573d6000803e3d6000fd5b505050505b604080518381526020810183905273ffffffffffffffffffffffffffffffffffffffff87169189917f345175133778c4fdb297de94ca161a1248998f240be2ae89b35225d0167e0648910160405180910390a350505050505050565b600054610100900460ff1661137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b611386611406565b610338816114a5565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661149d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610be861153c565b600054610100900460ff1661032f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b600054610100900460ff166115d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610748565b610be833611026565b73ffffffffffffffffffffffffffffffffffffffff8116811461033857600080fd5b60006020828403121561161057600080fd5b813561161b816115dc565b9392505050565b6000815180845260005b818110156116485760208185018101518683018201520161162c565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061161b6020830184611622565b6000602082840312156116ab57600080fd5b5035919050565b6000602082840312156116c457600080fd5b813567ffffffffffffffff8111156116db57600080fd5b8201610180818503121561161b57600080fd5b6bffffffffffffffffffffffff8116811461033857600080fd5b60006020828403121561171a57600080fd5b813561161b816116ee565b60006020828403121561173757600080fd5b815161161b816115dc565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261177757600080fd5b83018035915067ffffffffffffffff82111561179257600080fd5b602001915036819003821315610fcf57600080fd5b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006117d66040830184611622565b949350505050565b805180151581146117ee57600080fd5b919050565b60006020828403121561180557600080fd5b61161b826117de565b600073ffffffffffffffffffffffffffffffffffffffff8086168352808516602084015250606060408301526118476060830184611622565b95945050505050565b6000806040838503121561186357600080fd5b505080516020909101519092909150565b600080600080600080600060e0888a03121561188f57600080fd5b611898886117de565b9650602088015195506118ad604089016117de565b9450606088015193506080880151925060a08801516118cb816116ee565b91506118d960c089016117de565b905092959891949750929550565b6000806000606084860312156118fc57600080fd5b611905846117de565b925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156110205761102061191c565b80820281158282048414176110205761102061191c565b6000826119ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000602082840312156119c257600080fd5b505191905056fea264697066735822122084b3e9480a69f40c7501f05acd488455a6cbdb0445afd1f687116b636361c5c264736f6c63430008190033",
"linkReferences": {},
"deployedLinkReferences": {}
}