14 txs
3k calls
constructor
constructor(address _controller, address _morpho)
functions
allowedSetTokens
viewfunction allowedSetTokens(address) view returns (bool)
anySetAllowed
viewfunction anySetAllowed() view returns (bool)
controller
viewfunction controller() view returns (address)
getCollateralAndBorrowBalances
viewfunction getCollateralAndBorrowBalances(address _setToken) view returns (uint256 collateralBalance, uint256 borrowBalance, uint256 borrowSharesU256)
getMarketId
viewfunction getMarketId(address _setToken) view returns (bytes32)
marketParams
viewfunction marketParams(address) view returns (address loanToken, address collateralToken, address oracle, address irm, uint256 lltv)
morpho
viewfunction morpho() view returns (address)
owner
viewfunction owner() view returns (address)
componentIssueHook
nonpayablefunction componentIssueHook(address _setToken, uint256 _setTokenQuantity, address _component, bool _isEquity)
componentRedeemHook
nonpayablefunction componentRedeemHook(address _setToken, uint256 _setTokenQuantity, address _component, bool _isEquity)
delever
nonpayablefunction delever(address _setToken, uint256 _redeemQuantityUnits, uint256 _minRepayQuantityUnits, string _tradeAdapterName, bytes _tradeData)
deleverToZeroBorrowBalance
nonpayablefunction deleverToZeroBorrowBalance(address _setToken, uint256 _redeemQuantityUnits, string _tradeAdapterName, bytes _tradeData) returns (uint256)
enterCollateralPosition
nonpayablefunction enterCollateralPosition(address _setToken)
exitCollateralPosition
nonpayablefunction exitCollateralPosition(address _setToken)
initialize
nonpayablefunction initialize(address _setToken, tuple _marketParams)
lever
nonpayablefunction lever(address _setToken, uint256 _borrowQuantityUnits, uint256 _minReceiveQuantityUnits, string _tradeAdapterName, bytes _tradeData)
moduleIssueHook
nonpayablefunction moduleIssueHook(address _setToken, uint256)
moduleRedeemHook
nonpayablefunction moduleRedeemHook(address _setToken, uint256)
registerToModule
nonpayablefunction registerToModule(address _setToken, address _debtIssuanceModule)
removeModule
nonpayablefunction removeModule()
renounceOwnership
nonpayablefunction renounceOwnership()
sync
nonpayablefunction sync(address _setToken)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateAllowedSetToken
nonpayablefunction updateAllowedSetToken(address _setToken, bool _status)
updateAnySetAllowed
nonpayablefunction updateAnySetAllowed(bool _anySetAllowed)
events
AnySetAllowedUpdated
event AnySetAllowedUpdated(bool indexed _anySetAllowed)
LeverageDecreased
event LeverageDecreased(address indexed _setToken, address indexed _collateralAsset, address indexed _repayAsset, address _exchangeAdapter, uint256 _totalRedeemAmount, uint256 _totalRepayAmount, uint256 _protocolFee)
LeverageIncreased
event LeverageIncreased(address indexed _setToken, address indexed _borrowAsset, address indexed _collateralAsset, address _exchangeAdapter, uint256 _totalBorrowAmount, uint256 _totalReceiveAmount, uint256 _protocolFee)
MorphoMarketUpdated
event MorphoMarketUpdated(address indexed _setToken, bytes32 _marketId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetTokenStatusUpdated
event SetTokenStatusUpdated(address indexed _setToken, bool indexed _added)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162005a7c38038062005a7c8339810160408190526200003491620000c6565b600080546001600160a01b0319166001600160a01b038416178155600180556200005d620000c2565b600280546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060601b6001600160601b031916608052506200011d565b3390565b60008060408385031215620000d9578182fd5b8251620000e68162000104565b6020840151909250620000f98162000104565b809150509250929050565b6001600160a01b03811681146200011a57600080fd5b50565b60805160601c615905620001776000398061175452806118505280611ea85280611f0d528061200a528061217352806124ab5280612510528061258752806125ec528061296a5280612a03528061390b52506159056000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063a5841194116100de578063da35e28311610097578063ee78244f11610071578063ee78244f1461030f578063f25fcc9f14610322578063f2fde38b14610335578063f77c47911461034857610173565b8063da35e283146102c5578063e758a2b5146102e9578063e93353a3146102fc57610173565b8063a58411941461026f578063b1dd4d9214610282578063c137f4d714610297578063c153dd07146101a0578063c690a74c146102aa578063d8fbc833146102bd57610173565b80635b136512116101305780635b136512146102045780635c99030614610217578063715018a61461022a5780637bb3526514610232578063847ef08d146102525780638da5cb5b1461025a57610173565b80630fb96b211461017857806311976c041461018d5780633fe6106b146101a057806348a2f01b146101b35780635199e418146101de57806356b27e1a146101f1575b600080fd5b61018b610186366004614aeb565b610350565b005b61018b61019b366004614bba565b6105d2565b61018b6101ae366004614ac0565b610837565b6101c66101c136600461481d565b61084f565b6040516101d59392919061580a565b60405180910390f35b61018b6101ec366004614958565b6108ed565b61018b6101ff366004614bba565b61095f565b61018b6102123660046149fb565b610b1c565b61018b610225366004614a28565b610c21565b61018b610e9c565b610245610240366004614b3d565b610f1b565b6040516101d59190614f10565b61018b6111f4565b610262611350565b6040516101d59190614dbd565b61018b61027d36600461481d565b61135f565b61028a6113a2565b6040516101d59190614f05565b61018b6102a5366004614aeb565b6113ab565b61018b6102b83660046149c3565b61160a565b610262611752565b6102d86102d336600461481d565b611776565b6040516101d5959493929190614deb565b61018b6102f736600461481d565b6117b8565b61018b61030a36600461481d565b611a52565b61028a61031d36600461481d565b611b86565b61024561033036600461481d565b611b9b565b61018b61034336600461481d565b611c2e565b610262611ce5565b8361035a81611cf4565b610362614686565b506001600160a01b03808616600090815260036020818152604092839020835160a081018552815486168152600182015486169281019290925260028101548516938201939093529082015490921660608301526004015460808201528280156103e15750836001600160a01b031681602001516001600160a01b0316145b156104bd576040516308bafae960e21b81526000906001600160a01b038816906322ebeba4906104179088903090600401614dd1565b60206040518083038186803b15801561042f57600080fd5b505afa158015610443573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104679190614c60565b9050600081136104925760405162461bcd60e51b8152600401610489906154f0565b60405180910390fd5b60006104ad876104a184611e39565b9063ffffffff611e5f16565b90506104ba888483611e92565b50505b826105ca57836001600160a01b031681600001516001600160a01b0316146104f75760405162461bcd60e51b815260040161048990615004565b6040516308bafae960e21b81526000906001600160a01b038816906322ebeba4906105289088903090600401614dd1565b60206040518083038186803b15801561054057600080fd5b505afa158015610554573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105789190614c60565b90506000811261059a5760405162461bcd60e51b81526004016104899061506a565b60006105ba876104a16105b58560001963ffffffff611f6516565b611e39565b90506105c7888483611fd0565b50505b505050505050565b600260015414156105f55760405162461bcd60e51b8152600401610489906156c7565b60026001558461060481612036565b61060c614686565b506001600160a01b03808716600090815260036020818152604092839020835160a081018552815486168152600182015486169281018390526002820154861694810194909452918201549093166060830152600401546080820152906106855760405162461bcd60e51b81526004016104899061569b565b61068d6146b4565b6106a588836020015184600001518a8a8a6000612081565b90506106ba8160000151838360600151612139565b60006106d082846020015185600001518861219f565b905060006106e38a85600001518461242d565b905060006106f7838363ffffffff61245016565b905061070a846000015186836000612492565b610718848660000151612647565b60a084015184516040516370a0823160e01b81526000926001600160a01b0316916370a082319161074c9190600401614dbd565b60206040518083038186803b15801561076457600080fd5b505afa158015610778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079c9190614c60565b905080156107af576107af8c8783611e92565b84516107ba906126fd565b85600001516001600160a01b031686602001516001600160a01b03168d6001600160a01b03167f7cda30123ddfc96659344700585861a8670352b9cc86d1b1054d10083b1dcdd488602001518960600151878960405161081d9493929190614f30565b60405180910390a450506001805550505050505050505050565b8161084181611cf4565b61084a8361135f565b505050565b600080600061085c614686565b506001600160a01b03808516600090815260036020818152604092839020835160a081018552815486168152600182015486169281018390526002820154861694810194909452918201549093166060830152600401546080820152906108d55760405162461bcd60e51b81526004016104899061569b565b6108df858261293a565b935093509350509193909250565b6108f5612a83565b6002546001600160a01b039081169116146109225760405162461bcd60e51b815260040161048990615446565b6005805460ff19168215159081179091556040517f563e1633136cdd43b8793897cb53ba2a9e31c18b3ae0b6827fbbb03b9902e6c690600090a250565b600260015414156109825760405162461bcd60e51b8152600401610489906156c7565b60026001558461099181612036565b610999614686565b506001600160a01b03808716600090815260036020818152604092839020835160a08101855281548616815260018201548616928101839052600282015486169481019490945291820154909316606083015260040154608082015290610a125760405162461bcd60e51b81526004016104899061569b565b610a1a6146b4565b610a3288836000015184602001518a8a8a6001612081565b9050610a478160000151838360600151611fd0565b6000610a5d82846000015185602001518861219f565b90506000610a708a85602001518461242d565b90506000610a84838363ffffffff61245016565b9050610a9584600001518683611e92565b8351610aa0906126fd565b84602001516001600160a01b031685600001516001600160a01b03168c6001600160a01b03167f359f8b62a966cfd521a3815681266407201b20a7c334925faa49e7d9d5dd57ab876020015188606001518688604051610b039493929190614f30565b60405180910390a4505060018055505050505050505050565b81610b2681612036565b6040516335fc6c9f60e21b81526001600160a01b0384169063d7f1b27c90610b52908590600401614dbd565b60206040518083038186803b158015610b6a57600080fd5b505afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba29190614974565b610bbe5760405162461bcd60e51b81526004016104899061531d565b6040516306cd8db760e51b81526001600160a01b0383169063d9b1b6e090610bea908690600401614dbd565b600060405180830381600087803b158015610c0457600080fd5b505af1158015610c18573d6000803e3d6000fd5b50505050505050565b8133610c2d8282612a87565b83610c3781612ab1565b60055460ff16610c79576001600160a01b03851660009081526004602052604090205460ff16610c795760405162461bcd60e51b81526004016104899061547b565b846001600160a01b0316630ffe0f1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cb457600080fd5b505af1158015610cc8573d6000803e3d6000fd5b50505050846001600160a01b031663d7f1b27c610d116040518060400160405280601581526020017444656661756c7449737375616e63654d6f64756c6560581b815250612b72565b6040518263ffffffff1660e01b8152600401610d2d9190614dbd565b60206040518083038186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d9190614974565b610d995760405162461bcd60e51b81526004016104899061531d565b6060856001600160a01b031663b2494df36040518163ffffffff1660e01b815260040160006040518083038186803b158015610dd457600080fd5b505afa158015610de8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e1091908101906148ad565b905060005b8151811015610e9157818181518110610e2a57fe5b60200260200101516001600160a01b031663d9b1b6e0886040518263ffffffff1660e01b8152600401610e5d9190614dbd565b600060405180830381600087803b158015610e7757600080fd5b505af1925050508015610e88575060015b50600101610e15565b506105ca8686612b89565b610ea4612a83565b6002546001600160a01b03908116911614610ed15760405162461bcd60e51b815260040161048990615446565b6002546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600280546001600160a01b0319169055565b600060026001541415610f405760405162461bcd60e51b8152600401610489906156c7565b600260015584610f4f81612036565b610f57614686565b506001600160a01b03808716600090815260036020818152604092839020835160a08101855281548616815260018201548616928101839052600282015486169481019490945291820154909316606083015260040154608082015290610fd05760405162461bcd60e51b81526004016104899061569b565b6000876001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561100b57600080fd5b505afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110439190614c60565b90506000611057888363ffffffff611e5f16565b90506000806110668b8661293a565b92509250506110736146b4565b61108c8c8760200151886000015187878f60008c612c59565b90506110a18160000151878360600151612139565b6110b581876020015188600001518c61219f565b5080516110c490878585612492565b6110d2818760000151612647565b60a081015181516040516370a0823160e01b81526000926001600160a01b0316916370a08231916111069190600401614dbd565b60206040518083038186803b15801561111e57600080fd5b505afa158015611132573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111569190614c60565b90508015611169576111698d8883611e92565b8151611174906126fd565b86600001516001600160a01b031687602001516001600160a01b03168e6001600160a01b03167f7cda30123ddfc96659344700585861a8670352b9cc86d1b1054d10083b1dcdd4856020015186606001518960006040516111d89493929190614f30565b60405180910390a4505060018055509998505050505050505050565b336111fe8161205c565b336112088161135f565b6001600160a01b038116600081815260036020819052604080832080546001600160a01b03199081168255600182018054821690556002820180548216905592810180549093169092556004918201839055805163b2494df360e01b815290516060949363b2494df39383810193919291829003018186803b15801561128d57600080fd5b505afa1580156112a1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112c991908101906148ad565b905060005b815181101561134a578181815181106112e357fe5b60200260200101516001600160a01b031663e0799620846040518263ffffffff1660e01b81526004016113169190614dbd565b600060405180830381600087803b15801561133057600080fd5b505af1925050508015611341575060015b506001016112ce565b50505050565b6002546001600160a01b031690565b600260015414156113825760405162461bcd60e51b8152600401610489906156c7565b6002600155806113918161205c565b61139a826126fd565b505060018055565b60055460ff1681565b836113b581611cf4565b6113bd614686565b506001600160a01b03808616600090815260036020818152604092839020835160a0810185528154861681526001820154861692810192909252600281015485169382019390935290820154909216606083015260040154608082015282801561143c5750836001600160a01b031681602001516001600160a01b0316145b15611503576040516308bafae960e21b81526000906001600160a01b038816906322ebeba4906114729088903090600401614dd1565b60206040518083038186803b15801561148a57600080fd5b505afa15801561149e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c29190614c60565b9050600081136114e45760405162461bcd60e51b81526004016104899061506a565b60006114f3876104a184611e39565b9050611500888483612139565b50505b826105ca57836001600160a01b031681600001516001600160a01b03161461153d5760405162461bcd60e51b815260040161048990615004565b6040516308bafae960e21b81526000906001600160a01b038816906322ebeba49061156e9088903090600401614dd1565b60206040518083038186803b15801561158657600080fd5b505afa15801561159a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115be9190614c60565b9050600081126115e05760405162461bcd60e51b81526004016104899061506a565b60006115fb876104a16105b58560001963ffffffff611f6516565b90506105c78884836000612492565b611612612a83565b6002546001600160a01b0390811691161461163f5760405162461bcd60e51b815260040161048990615446565b600054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec9061166f908590600401614dbd565b60206040518083038186803b15801561168757600080fd5b505afa15801561169b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bf9190614974565b806116e257506001600160a01b03821660009081526004602052604090205460ff165b6116fe5760405162461bcd60e51b81526004016104899061541c565b6001600160a01b038216600081815260046020526040808220805460ff191685151590811790915590519092917f2035981b48691b10f6ac65174e570b4d0a8a889ae01bef3e5e7759ff9444f0c491a35050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6003602081905260009182526040909120805460018201546002830154938301546004909301546001600160a01b039283169491831693918316929091169085565b806117c281612036565b6117ca614686565b506001600160a01b038083166000908152600360208181526040808420815160a0810183528154871681526001820154871693810193909352600281015486169183019190915291820154909316606084015260040154608083015261182f82612d6c565b905061183961471d565b6040516349e2903160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906393c52062906118879085908990600401614f19565b60606040518083038186803b15801561189f57600080fd5b505afa1580156118b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d79190614d06565b905080602001516001600160801b03166000146119065760405162461bcd60e51b8152600401610489906151c4565b61191e858483604001516001600160801b0316612139565b611927856126fd565b60208301516040516370a0823160e01b81526000916001600160a01b0316906370a082319061195a908990600401614dbd565b60206040518083038186803b15801561197257600080fd5b505afa158015611986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119aa9190614c60565b90506000611a2f876001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ea57600080fd5b505afa1580156119fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a229190614c60565b839063ffffffff612d7316565b6020860151909150610c18906001600160a01b038916908363ffffffff612d9116565b80611a5c81612036565b611a64614686565b506001600160a01b038083166000908152600360208181526040808420815160a0810183528154871681526001820154871693810184905260028201548716818401529381015490951660608401526004948501546080840152516370a0823160e01b8152919390916370a0823191611adf91889101614dbd565b60206040518083038186803b158015611af757600080fd5b505afa158015611b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2f9190614c60565b905060008111611b515760405162461bcd60e51b8152600401610489906153e5565b611b5c848383611e92565b6020820151611b7d906001600160a01b03861690600063ffffffff612d9116565b61134a8461135f565b60046020526000908152604090205460ff1681565b6000611ba5614686565b506001600160a01b03808316600090815260036020818152604092839020835160a08101855281548616815260018201548616928101839052600282015486169481019490945291820154909316606083015260040154608082015290611c1e5760405162461bcd60e51b81526004016104899061569b565b611c2781612d6c565b9392505050565b611c36612a83565b6002546001600160a01b03908116911614611c635760405162461bcd60e51b815260040161048990615446565b6001600160a01b038116611c895760405162461bcd60e51b8152600401610489906150e9565b6002546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b6002604051631ade272960e11b81526001600160a01b038316906335bc4e5290611d22903390600401614dbd565b60206040518083038186803b158015611d3a57600080fd5b505afa158015611d4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d729190614c41565b6002811115611d7d57fe5b14611d9a5760405162461bcd60e51b8152600401610489906152e6565b6000546040516342f6e38960e01b81526001600160a01b03909116906342f6e38990611dca903390600401614dbd565b60206040518083038186803b158015611de257600080fd5b505afa158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1a9190614974565b611e365760405162461bcd60e51b8152600401610489906155dd565b50565b600080821215611e5b5760405162461bcd60e51b8152600401610489906152b1565b5090565b6000611e89670de0b6b3a7640000611e7d858563ffffffff612f0516565b9063ffffffff612f3f16565b90505b92915050565b6020820151611ed3906001600160a01b038516907f00000000000000000000000000000000000000000000000000000000000000008463ffffffff612f8116565b6040516310adc72560e21b8152732f2c59212d1d0468efa456fe51f49ed4a5538d64906342b71c9490611f39906001600160a01b038716907f00000000000000000000000000000000000000000000000000000000000000009087908790600401614f90565b60006040518083038186803b158015611f5157600080fd5b505af4158015610c18573d6000803e3d6000fd5b600082611f7457506000611e8c565b82600019148015611f885750600160ff1b82145b15611fa55760405162461bcd60e51b8152600401610489906154a9565b82820282848281611fb257fe5b0514611e895760405162461bcd60e51b8152600401610489906154a9565b60405163169bcf0960e11b8152732f2c59212d1d0468efa456fe51f49ed4a5538d6490632d379e1290611f39906001600160a01b038716907f00000000000000000000000000000000000000000000000000000000000000009087908790600401614f90565b6120408133613048565b61205c5760405162461bcd60e51b815260040161048990615664565b612065816130d6565b611e365760405162461bcd60e51b8152600401610489906150a1565b6120896146b4565b6000886001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156120c457600080fd5b505afa1580156120d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fc9190614c60565b905061212c8989896121148a8663ffffffff611e5f16565b6121248a8763ffffffff611e5f16565b898988612c59565b9998505050505050505050565b604051631007f97160e21b8152732f2c59212d1d0468efa456fe51f49ed4a5538d649063401fe5c490611f39906001600160a01b038716907f00000000000000000000000000000000000000000000000000000000000000009087908790600401614f90565b600080856000015190506000866060015190506122438688602001516001600160a01b031663334fc2896040518163ffffffff1660e01b815260040160206040518083038186803b1580156121f357600080fd5b505afa158015612207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222b9190614839565b6001600160a01b03851691908463ffffffff612f8116565b600080606089602001516001600160a01b031663e171fcab8a8a88888f608001518d6040518763ffffffff1660e01b815260040161228696959493929190614e1e565b60006040518083038186803b15801561229e57600080fd5b505afa1580156122b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122da9190810190614855565b925092509250846001600160a01b0316638f6f03328484846040518463ffffffff1660e01b815260040161231093929190614ede565b600060405180830381600087803b15801561232a57600080fd5b505af115801561233e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123669190810190614990565b5060006123f98b60e001518a6001600160a01b03166370a08231896040518263ffffffff1660e01b815260040161239d9190614dbd565b60206040518083038186803b1580156123b557600080fd5b505afa1580156123c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ed9190614c60565b9063ffffffff61245016565b90508a6080015181101561241f5760405162461bcd60e51b81526004016104899061522a565b9a9950505050505050505050565b60008061243b6000846131da565b905061244885858361326f565b949350505050565b6000611e8983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613316565b80156125745782516124d6906001600160a01b038616907f00000000000000000000000000000000000000000000000000000000000000008563ffffffff612f8116565b60405163354efce360e01b8152732f2c59212d1d0468efa456fe51f49ed4a5538d649063354efce39061253f906001600160a01b038816907f00000000000000000000000000000000000000000000000000000000000000009088906000908890600401614f56565b60006040518083038186803b15801561255757600080fd5b505af415801561256b573d6000803e3d6000fd5b5050505061134a565b82516125b2906001600160a01b038616907f00000000000000000000000000000000000000000000000000000000000000008563ffffffff612f8116565b60405163354efce360e01b8152732f2c59212d1d0468efa456fe51f49ed4a5538d649063354efce39061261b906001600160a01b038816907f00000000000000000000000000000000000000000000000000000000000000009088908890600090600401614f56565b60006040518083038186803b15801561263357600080fd5b505af41580156105c7573d6000803e3d6000fd5b81516040516370a0823160e01b81526000916001600160a01b038416916370a082319161267691600401614dbd565b60206040518083038186803b15801561268e57600080fd5b505afa1580156126a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c69190614c60565b90508260e00151811461084a57604083015160e084015184516105ca926001600160a01b039091169185919063ffffffff61334216565b612705614686565b506001600160a01b03808216600090815260036020818152604092839020835160a0810185528154861681526001820154861692810183905260028201548616948101949094529182015490931660608301526004015460808201529061277e5760405162461bcd60e51b81526004016104899061569b565b6000826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127b957600080fd5b505afa1580156127cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f19190614c60565b9050600080612801858585613483565b915091506000856001600160a01b03166322ebeba48660200151306040518363ffffffff1660e01b8152600401612839929190614dd1565b60206040518083038186803b15801561285157600080fd5b505afa158015612865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128899190614c60565b90508281146128a1576128a1868660200151856134f5565b84516040516308bafae960e21b81526000916001600160a01b038916916322ebeba4916128d2913090600401614dd1565b60206040518083038186803b1580156128ea57600080fd5b505afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129229190614c60565b9050808314610c1857610c18878760000151856134f5565b60008060008061294985612d6c565b905061295361471d565b6040516349e2903160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906393c52062906129a19085908b90600401614f19565b60606040518083038186803b1580156129b957600080fd5b505afa1580156129cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f19190614d06565b9050600080612a2f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168963ffffffff61352416565b60208701519195509350612a5692506001600160801b03169050838363ffffffff6137b116565b955082604001516001600160801b0316965082602001516001600160801b03169450505050509250925092565b3390565b612a918282613048565b612aad5760405162461bcd60e51b815260040161048990615664565b5050565b600054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90612ae1908490600401614dbd565b60206040518083038186803b158015612af957600080fd5b505afa158015612b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b319190614974565b612b4d5760405162461bcd60e51b815260040161048990615621565b612b56816137e8565b611e365760405162461bcd60e51b815260040161048990615166565b600080612b7e83613817565b9050611c2781613822565b6000612b94826138df565b6001600160a01b03848116600081815260036020818152604092839020885181546001600160a01b0319908116918816919091178255918901516001820180548416918816919091179055888401516002820180548416918816919091179055606089015192810180549092169290951691909117905560808601516004909301929092559051919250907ffc8bae3ed1ee6eb61577be9bbfed36601a07b31902c2e2ff54e924d8ecb3f6c990612c4c908490614f10565b60405180910390a2505050565b612c616146b4565b612c696146b4565b6040518061010001604052808b6001600160a01b03168152602001612c8d87612b72565b6001600160a01b0316815260200184815260200188815260200187815260200185612cb8578a612cba565b895b6001600160a01b0316815260200185612cd35789612cd5565b8a5b6001600160a01b03168152602001896001600160a01b03166370a082318d6040518263ffffffff1660e01b8152600401612d0f9190614dbd565b60206040518083038186803b158015612d2757600080fd5b505afa158015612d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5f9190614c60565b9052905061212c816139c6565b60a0902090565b6000611e8982611e7d85670de0b6b3a764000063ffffffff612f0516565b6000612d9d8484613a99565b905080158015612dad5750600082115b15612e2457612dbc8484613b20565b612e1f576040516304e3532760e41b81526001600160a01b03851690634e35327090612dec908690600401614dbd565b600060405180830381600087803b158015612e0657600080fd5b505af1158015612e1a573d6000803e3d6000fd5b505050505b612ea1565b808015612e2f575081155b15612ea157612e3e8484613b20565b612ea157604051636f86c89760e01b81526001600160a01b03851690636f86c89790612e6e908690600401614dbd565b600060405180830381600087803b158015612e8857600080fd5b505af1158015612e9c573d6000803e3d6000fd5b505050505b836001600160a01b0316632ba57d1784612eba85613bac565b6040518363ffffffff1660e01b8152600401612ed7929190614ec5565b600060405180830381600087803b158015612ef157600080fd5b505af11580156105c7573d6000803e3d6000fd5b600082612f1457506000611e8c565b82820282848281612f2157fe5b0414611e895760405162461bcd60e51b8152600401610489906153a4565b6000611e8983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bd1565b60608282604051602401612f96929190614ec5565b60408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b179052516347b7819960e11b81529091506001600160a01b03861690638f6f033290612ff29087906000908690600401614ede565b600060405180830381600087803b15801561300c57600080fd5b505af1158015613020573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105ca9190810190614990565b6000816001600160a01b0316836001600160a01b031663481c6a756040518163ffffffff1660e01b815260040160206040518083038186803b15801561308d57600080fd5b505afa1580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c59190614839565b6001600160a01b0316149392505050565b60008054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90613107908590600401614dbd565b60206040518083038186803b15801561311f57600080fd5b505afa158015613133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131579190614974565b8015611e8c57506040516335fc6c9f60e21b81526001600160a01b0383169063d7f1b27c9061318a903090600401614dbd565b60206040518083038186803b1580156131a257600080fd5b505afa1580156131b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8c9190614974565b6000805460405163792aa04f60e01b815282916001600160a01b03169063792aa04f9061320d9030908890600401614ec5565b60206040518083038186803b15801561322557600080fd5b505afa158015613239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325d9190614c60565b9050612448838263ffffffff611e5f16565b801561084a5761084a826000809054906101000a90046001600160a01b03166001600160a01b031663469048406040518163ffffffff1660e01b815260040160206040518083038186803b1580156132c657600080fd5b505afa1580156132da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132fe9190614839565b6001600160a01b03861691908463ffffffff613c0816565b6000818484111561333a5760405162461bcd60e51b81526004016104899190614fc5565b505050900390565b600080600080866001600160a01b03166370a08231896040518263ffffffff1660e01b81526004016133749190614dbd565b60206040518083038186803b15801561338c57600080fd5b505afa1580156133a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c49190614c60565b90506000613447896001600160a01b03166366cb8d2f8a6040518263ffffffff1660e01b81526004016133f79190614dbd565b60206040518083038186803b15801561340f57600080fd5b505afa158015613423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b59190614c60565b9050600082156134645761345d88888585613d4a565b9050613468565b5060005b6134738a8a83612d91565b9199909850909650945050505050565b60008082613496575060009050806134ed565b6000806134a3878761293a565b5090925090506134c16134bc838763ffffffff612d7316565b613bac565b93506134e86000196134dc6134bc848963ffffffff613d9916565b9063ffffffff611f6516565b925050505b935093915050565b60408051602081019091526000815261084a906001600160a01b0385169084903090859063ffffffff613df816565b600080600080600061353586612d6c565b905061353f61473d565b604051632e3071cd60e11b81526001600160a01b03891690635c60e39a9061356b908590600401614f10565b60c06040518083038186803b15801561358357600080fd5b505afa158015613597573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135bb9190614c78565b60808101519091506001600160801b0316420380158015906135e9575060408201516001600160801b031615155b8015613601575060608801516001600160a01b031615155b1561377d576060880151604051638c00bf6b60e01b81526000916001600160a01b031690638c00bf6b9061363b908c9087906004016157a3565b60206040518083038186803b15801561365357600080fd5b505afa158015613667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061368b9190614c60565b905060006136bc6136a2838563ffffffff6143b116565b60408601516001600160801b03169063ffffffff61442316565b90506136c781614438565b604085018051919091016001600160801b031690526136e581614438565b84516001600160801b0391018116855260a0850151161561377a5760006137228560a001516001600160801b03168361442390919063ffffffff16565b905060006137578287600001516001600160801b03160387602001516001600160801b0316846144619092919063ffffffff16565b905061376281614438565b602087018051919091016001600160801b0316905250505b50505b508051602082015160408301516060909301516001600160801b039283169b9183169a509282169850911695509350505050565b60006124486137c784600163ffffffff61449816565b6137da84620f424063ffffffff61449816565b86919063ffffffff6144bd16565b6040516353bae5f760e01b81526000906001600160a01b038316906353bae5f79061318a903090600401614dbd565b805160209091012090565b60008054819061383a906001600160a01b03166144e7565b6001600160a01b031663e6d642c530856040518363ffffffff1660e01b8152600401613867929190614ec5565b60206040518083038186803b15801561387f57600080fd5b505afa158015613893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b79190614839565b90506001600160a01b038116611e8c5760405162461bcd60e51b8152600401610489906151fb565b60006138ea82612d6c565b90506138f461473d565b604051632e3071cd60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635c60e39a90613940908590600401614f10565b60c06040518083038186803b15801561395857600080fd5b505afa15801561396c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139909190614c78565b905080608001516001600160801b0316600014156139c05760405162461bcd60e51b815260040161048990614fd8565b50919050565b80516001600160a01b0390811660009081526003602052604090206001015416613a025760405162461bcd60e51b815260040161048990615255565b80516001600160a01b0390811660009081526003602052604090205416613a3b5760405162461bcd60e51b815260040161048990615285565b8060c001516001600160a01b03168160a001516001600160a01b03161415613a755760405162461bcd60e51b81526004016104899061572c565b6000816060015111611e365760405162461bcd60e51b81526004016104899061519d565b600080836001600160a01b03166366cb8d2f846040518263ffffffff1660e01b8152600401613ac89190614dbd565b60206040518083038186803b158015613ae057600080fd5b505afa158015613af4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b189190614c60565b139392505050565b600080836001600160a01b031663a7bdad03846040518263ffffffff1660e01b8152600401613b4f9190614dbd565b60006040518083038186803b158015613b6757600080fd5b505afa158015613b7b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ba391908101906148ad565b51119392505050565b6000600160ff1b8210611e5b5760405162461bcd60e51b815260040161048990615595565b60008183613bf25760405162461bcd60e51b81526004016104899190614fc5565b506000838581613bfe57fe5b0495945050505050565b801561134a576040516370a0823160e01b81526000906001600160a01b038516906370a0823190613c3d908890600401614dbd565b60206040518083038186803b158015613c5557600080fd5b505afa158015613c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c8d9190614c60565b9050613c9b85858585614566565b6040516370a0823160e01b81526000906001600160a01b038616906370a0823190613cca908990600401614dbd565b60206040518083038186803b158015613ce257600080fd5b505afa158015613cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d1a9190614c60565b9050613d2c828463ffffffff61245016565b81146105ca5760405162461bcd60e51b815260040161048990615527565b600080613d6d613d60848863ffffffff611e5f16565b869063ffffffff61245016565b9050613d8f86613d83868463ffffffff61245016565b9063ffffffff612d7316565b9695505050505050565b600081613db85760405162461bcd60e51b815260040161048990615779565b60008311613dc7576000611e89565b611e896001613dec84611e7d836123ed89670de0b6b3a764000063ffffffff612f0516565b9063ffffffff61449816565b81156140ed5760405163df5e9b2960e01b81526001600160a01b0386169063df5e9b2990613e2a908790600401614dbd565b60206040518083038186803b158015613e4257600080fd5b505afa158015613e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e7a9190614974565b613f41576040516304e3532760e41b81526001600160a01b03861690634e35327090613eaa908790600401614dbd565b600060405180830381600087803b158015613ec457600080fd5b505af1158015613ed8573d6000803e3d6000fd5b505060405163ea0ee55960e01b81526001600160a01b038816925063ea0ee5599150613f0a9087908790600401614dd1565b600060405180830381600087803b158015613f2457600080fd5b505af1158015613f38573d6000803e3d6000fd5b50505050614024565b604051637d96659360e01b81526001600160a01b03861690637d96659390613f6f9087908790600401614dd1565b60206040518083038186803b158015613f8757600080fd5b505afa158015613f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fbf9190614974565b6140245760405163ea0ee55960e01b81526001600160a01b0386169063ea0ee55990613ff19087908790600401614dd1565b600060405180830381600087803b15801561400b57600080fd5b505af115801561401f573d6000803e3d6000fd5b505050505b6040516363a90fc160e01b81526001600160a01b038616906363a90fc19061405490879087908790600401614ea1565b600060405180830381600087803b15801561406e57600080fd5b505af1158015614082573d6000803e3d6000fd5b50506040516326898fe160e01b81526001600160a01b03881692506326898fe191506140b690879087908690600401614e6c565b600060405180830381600087803b1580156140d057600080fd5b505af11580156140e4573d6000803e3d6000fd5b505050506143aa565b80511561410c5760405162461bcd60e51b81526004016104899061555e565b6040516308bafae960e21b81526001600160a01b038616906322ebeba49061413a9087908790600401614dd1565b60206040518083038186803b15801561415257600080fd5b505afa158015614166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061418a9190614c60565b156143aa5760405163a7bdad0360e01b81526060906001600160a01b0387169063a7bdad03906141be908890600401614dbd565b60006040518083038186803b1580156141d657600080fd5b505afa1580156141ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261421291908101906148ad565b6040516366cb8d2f60e01b81529091506001600160a01b038716906366cb8d2f90614241908890600401614dbd565b60206040518083038186803b15801561425957600080fd5b505afa15801561426d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142919190614c60565b15801561429f575080516001145b1561434857836001600160a01b0316816000815181106142bb57fe5b60200260200101516001600160a01b0316146142e95760405162461bcd60e51b815260040161048990615354565b604051636f86c89760e01b81526001600160a01b03871690636f86c89790614315908890600401614dbd565b600060405180830381600087803b15801561432f57600080fd5b505af1158015614343573d6000803e3d6000fd5b505050505b60405163acf3f07760e01b81526001600160a01b0387169063acf3f077906143769088908890600401614dd1565b600060405180830381600087803b15801561439057600080fd5b505af11580156143a4573d6000803e3d6000fd5b50505050505b5050505050565b6000806143c4848463ffffffff612f0516565b905060006143eb82806143e6670de0b6b3a7640000600263ffffffff612f0516565b614670565b9050600061440d82846143e6670de0b6b3a7640000600363ffffffff612f0516565b9050613d8f81613dec858563ffffffff61449816565b6000611e898383670de0b6b3a7640000614670565b60006001600160801b03821115611e5b5760405162461bcd60e51b8152600401610489906156fe565b600061244861447983620f424063ffffffff61449816565b61448a85600163ffffffff61449816565b86919063ffffffff61467016565b600082820183811015611e895760405162461bcd60e51b81526004016104899061512f565b600061244882611e7d6144d782600163ffffffff61245016565b613dec888863ffffffff612f0516565b6040516373b2e76b60e11b81526000906001600160a01b0383169063e765ced690614516908490600401614f10565b60206040518083038186803b15801561452e57600080fd5b505afa158015614542573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8c9190614839565b801561134a5760608282604051602401614581929190614ec5565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052516347b7819960e11b81529091506060906001600160a01b03871690638f6f0332906145e09088906000908790600401614ede565b600060405180830381600087803b1580156145fa57600080fd5b505af115801561460e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526146369190810190614990565b8051909150156105ca57808060200190518101906146549190614974565b6105ca5760405162461bcd60e51b81526004016104899061503b565b600061244882611e7d868663ffffffff612f0516565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b60405180610100016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b8051611e8c81615897565b600082601f83011261478d578081fd5b81356147a061479b82615847565b615820565b91508082528360208285010111156147b757600080fd5b8060208401602084013760009082016020015292915050565b600082601f8301126147e0578081fd5b81516147ee61479b82615847565b915080825283602082850101111561480557600080fd5b61481681602084016020860161586b565b5092915050565b60006020828403121561482e578081fd5b8135611e8981615897565b60006020828403121561484a578081fd5b8151611e8981615897565b600080600060608486031215614869578182fd5b835161487481615897565b60208501516040860151919450925067ffffffffffffffff811115614897578182fd5b6148a3868287016147d0565b9150509250925092565b600060208083850312156148bf578182fd5b825167ffffffffffffffff808211156148d6578384fd5b81850186601f8201126148e7578485fd5b80519250818311156148f7578485fd5b8383029150614907848301615820565b8381528481019082860184840187018a1015614921578788fd5b8794505b8585101561494b576149378a82614772565b835260019490940193918601918601614925565b5098975050505050505050565b600060208284031215614969578081fd5b8135611e89816158ac565b600060208284031215614985578081fd5b8151611e89816158ac565b6000602082840312156149a1578081fd5b815167ffffffffffffffff8111156149b7578182fd5b612448848285016147d0565b600080604083850312156149d5578182fd5b82356149e081615897565b915060208301356149f0816158ac565b809150509250929050565b60008060408385031215614a0d578182fd5b8235614a1881615897565b915060208301356149f081615897565b60008082840360c0811215614a3b578283fd5b8335614a4681615897565b925060a0601f1982011215614a59578182fd5b50614a6460a0615820565b6020840135614a7281615897565b81526040840135614a8281615897565b60208201526060840135614a9581615897565b60408201526080840135614aa881615897565b606082015260a0939093013560808401525092909150565b60008060408385031215614ad2578182fd5b8235614add81615897565b946020939093013593505050565b60008060008060808587031215614b00578182fd5b8435614b0b81615897565b9350602085013592506040850135614b2281615897565b91506060850135614b32816158ac565b939692955090935050565b60008060008060808587031215614b52578182fd5b8435614b5d81615897565b935060208501359250604085013567ffffffffffffffff80821115614b80578384fd5b614b8c8883890161477d565b93506060870135915080821115614ba1578283fd5b50614bae8782880161477d565b91505092959194509250565b600080600080600060a08688031215614bd1578283fd5b8535614bdc81615897565b94506020860135935060408601359250606086013567ffffffffffffffff80821115614c06578283fd5b614c1289838a0161477d565b93506080880135915080821115614c27578283fd5b50614c348882890161477d565b9150509295509295909350565b600060208284031215614c52578081fd5b815160038110611e89578182fd5b600060208284031215614c71578081fd5b5051919050565b600060c08284031215614c89578081fd5b614c9360c0615820565b8251614c9e816158ba565b81526020830151614cae816158ba565b60208201526040830151614cc1816158ba565b60408201526060830151614cd4816158ba565b60608201526080830151614ce7816158ba565b608082015260a0830151614cfa816158ba565b60a08201529392505050565b600060608284031215614d17578081fd5b614d216060615820565b825181526020830151614d33816158ba565b60208201526040830151614d46816158ba565b60408201529392505050565b60008151808452614d6a81602086016020860161586b565b601f01601f19169290920160200192915050565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260608083015190911690830152608090810151910152565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039586168152938516602085015291841660408401529092166060820152608081019190915260a00190565b6001600160a01b038781168252868116602083015285166040820152606081018490526080810183905260c060a08201819052600090614e6090830184614d52565b98975050505050505050565b6001600160a01b03848116825283166020820152606060408201819052600090614e9890830184614d52565b95945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b038516825283602083015260606040830152614e986060830184614d52565b901515815260200190565b90815260200190565b9182526001600160a01b0316602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6001600160a01b038681168252851660208201526101208101614f7c6040830186614d7e565b60e082019390935261010001529392505050565b6001600160a01b038581168252841660208201526101008101614fb66040830185614d7e565b8260e083015295945050505050565b600060208252611e896020830184614d52565b60208082526012908201527113585c9ad95d081b9bdd0818dc99585d195960721b604082015260600190565b60208082526017908201527f4465627420636f6d706f6e656e74206d69736d61746368000000000000000000604082015260600190565b602080825260159082015274115490cc8c081d1c985b9cd9995c8819985a5b1959605a1b604082015260600190565b6020808252601a908201527f436f6d706f6e656e74206d757374206265206e65676174697665000000000000604082015260600190565b60208082526028908201527f4d75737420626520612076616c696420616e6420696e697469616c697a65642060408201526729b2ba2a37b5b2b760c11b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f4d7573742062652070656e64696e6720696e697469616c697a6174696f6e0000604082015260600190565b6020808252600d908201526c05175616e74697479206973203609c1b604082015260600190565b60208082526018908201527f426f72726f772062616c616e6365206d75737420626520300000000000000000604082015260600190565b60208082526015908201527426bab9ba103132903b30b634b21030b230b83a32b960591b604082015260600190565b6020808252601190820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b604082015260600190565b60208082526016908201527510dbdb1b185d195c985b081b9bdd08195b98589b195960521b604082015260600190565b602080825260129082015271109bdc9c9bddc81b9bdd08195b98589b195960721b604082015260600190565b6020808252818101527f53616665436173743a2076616c7565206d75737420626520706f736974697665604082015260600190565b60208082526018908201527f4f6e6c7920746865206d6f64756c652063616e2063616c6c0000000000000000604082015260600190565b60208082526018908201527f49737375616e6365206e6f7420696e697469616c697a65640000000000000000604082015260600190565b60208082526030908201527f45787465726e616c20706f736974696f6e73206d757374206265203020746f2060408201526f1c995b5bdd994818dbdb5c1bdb995b9d60821b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526017908201527f436f6c6c61746572616c2062616c616e63652069732030000000000000000000604082015260600190565b60208082526010908201526f24b73b30b634b21029b2ba2a37b5b2b760811b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601490820152732737ba1030b63637bbb2b21029b2ba2a37b5b2b760611b604082015260600190565b60208082526027908201527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f604082015266766572666c6f7760c81b606082015260800190565b6020808252601a908201527f436f6d706f6e656e74206d75737420626520706f736974697665000000000000604082015260600190565b6020808252601d908201527f496e76616c696420706f7374207472616e736665722062616c616e6365000000604082015260600190565b60208082526018908201527f5061737365642064617461206d757374206265206e756c6c0000000000000000604082015260600190565b60208082526028908201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604082015267371034b73a191a9b60c11b606082015260800190565b60208082526024908201527f4d6f64756c65206d75737420626520656e61626c6564206f6e20636f6e74726f604082015263363632b960e11b606082015260800190565b60208082526023908201527f4d75737420626520636f6e74726f6c6c65722d656e61626c656420536574546f60408201526235b2b760e91b606082015260800190565b6020808252601c908201527f4d7573742062652074686520536574546f6b656e206d616e6167657200000000604082015260600190565b60208082526012908201527110dbdb1b185d195c985b081b9bdd081cd95d60721b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526014908201527313505617d55253950c4c8e17d15610d15151115160621b604082015260600190565b6020808252602d908201527f436f6c6c61746572616c20616e6420626f72726f77206173736574206d75737460408201526c08189948191a5999995c995b9d609a1b606082015260800190565b60208082526010908201526f043616e742064697669646520627920360841b604082015260600190565b61016081016157b28285614d7e565b6001600160801b038084511660a08401528060208501511660c08401528060408501511660e084015280606085015116610100840152806080850151166101208401528060a085015116610140840152509392505050565b9283526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561583f57600080fd5b604052919050565b600067ffffffffffffffff82111561585d578081fd5b50601f01601f191660200190565b60005b8381101561588657818101518382015260200161586e565b8381111561134a5750506000910152565b6001600160a01b0381168114611e3657600080fd5b8015158114611e3657600080fd5b6001600160801b0381168114611e3657600080fdfea2646970667358221220411a9abdf8cc5ffdd743dbc67a8246920d1b321adbff2c6a17332fbf46f0c83564736f6c634300060a00330000000000000000000000001246553a53cd2897eb26bee87a0db0fb456f39d1000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb