0 txs
2 calls
constructor
constructor()
functions
approvedTokens
viewfunction approvedTokens(address) view returns (bool)
factory
viewfunction factory() view returns (address)
getOrder
viewfunction getOrder(address user, uint256 nftId) view returns (tuple)
owner
viewfunction owner() view returns (address)
positionManager
viewfunction positionManager() view returns (address)
positionPartiallyFilled
viewfunction positionPartiallyFilled(uint256 nftId) view returns (bool)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
swapRouter
viewfunction swapRouter() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
weth
viewfunction weth() view returns (address)
cancelOrder
nonpayablefunction cancelOrder(address user, uint256 nftId)
createOrder
nonpayablefunction createOrder(tuple params) returns (uint256 nftId)
fulfillOrders
nonpayablefunction fulfillOrders(address[] _users, uint256[] _nftIds)
initialize
nonpayablefunction initialize(address positionManager_, address swapRouter_)
renounceOwnership
nonpayablefunction renounceOwnership()
swapAndCreateOrder
payablefunction swapAndCreateOrder(tuple swapParams, tuple orderParams, uint256 orderSlippage) payable returns (uint256 nftId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withDrawFees
nonpayablefunction withDrawFees(address[] tokens)
events
Initialized
event Initialized(uint64 version)
OrderCompleted
event OrderCompleted(address indexed user, uint256 indexed nftId, address pool)
OrderCreated
event OrderCreated(address indexed user, uint256 indexed nftId, address pool, int24 tickLower, int24 tickUpper, uint256 orderAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedInnerCall
error FailedInnerCall()
InsufficientInputAmount
error InsufficientInputAmount()
InsufficientOutputAmount
error InsufficientOutputAmount()
InvalidInitialization
error InvalidInitialization()
InvalidPair
error InvalidPair()
InvalidParams
error InvalidParams()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TokenMismatch
error TokenMismatch()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b60805161340e6200010460003960008181610d3e01528181610d670152610ea8015261340e6000f3fe6080604052600436106101185760003560e01c80638da5cb5b116100a0578063c45a015511610064578063c45a015514610321578063edb2584114610341578063edb5e960146103f6578063f1dcddde14610416578063f2fde38b1461042957600080fd5b80638da5cb5b1461026e578063995739d914610283578063ad3cb1cc146102a3578063b0d897c1146102e1578063c31c9c071461030157600080fd5b80636a206137116100e75780636a206137146101b95780636d1ea3fa146101d9578063715018a614610219578063791b98bc1461022e57806381230d761461024e57600080fd5b80633fc8cef314610124578063485cc955146101615780634f1ef2861461018357806352d1902d1461019657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b50600054610144906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561016d57600080fd5b5061018161017c366004612890565b610449565b005b61018161019136600461296e565b610696565b3480156101a257600080fd5b506101ab6106b5565b604051908152602001610158565b3480156101c557600080fd5b506101816101d4366004612a16565b6106d2565b3480156101e557600080fd5b506102096101f4366004612a42565b60046020526000908152604090205460ff1681565b6040519015158152602001610158565b34801561022557600080fd5b50610181610712565b34801561023a57600080fd5b50600254610144906001600160a01b031681565b34801561025a57600080fd5b50610181610269366004612aee565b610726565b34801561027a57600080fd5b50610144610789565b34801561028f57600080fd5b5061018161029e366004612bb0565b6107b7565b3480156102af57600080fd5b506102d4604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101589190612c6e565b3480156102ed57600080fd5b506101ab6102fc366004612d92565b6108ec565b34801561030d57600080fd5b50600554610144906001600160a01b031681565b34801561032d57600080fd5b50600154610144906001600160a01b031681565b34801561034d57600080fd5b506103c461035c366004612a16565b6040805160608082018352600080835260208084018290529284018190526001600160a01b0395861681526003835283812094815293825292829020825193840183528054851684526001810154851691840191909152600201549092169181019190915290565b6040805182516001600160a01b0390811682526020808501518216908301529282015190921690820152606001610158565b34801561040257600080fd5b50610209610411366004612daf565b610926565b6101ab610424366004612dc8565b610a89565b34801561043557600080fd5b50610181610444366004612a42565b610cd7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561048f5750825b905060008267ffffffffffffffff1660011480156104ac5750303b155b9050811580156104ba575080155b156104d85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050257845460ff60401b1916600160401b1785555b61050b33610d1a565b610513610d2b565b600280546001600160a01b0319166001600160a01b0389169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561056c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105909190612e95565b600160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550866001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106189190612e95565b600080546001600160a01b03199081166001600160a01b039384161790915560058054909116918816919091179055831561068d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b61069e610d33565b6106a782610dd8565b6106b18282610de0565b5050565b60006106bf610e9d565b506000805160206133b983398151915290565b336001600160a01b038316148061070157506106ec610789565b6001600160a01b0316336001600160a01b0316145b156106b1576106b181836000610ee6565b61071a6113ec565b610724600061141e565b565b815160005b818110156107835761077183828151811061074857610748612eb2565b602002602001015185838151811061076257610762612eb2565b60200260200101516001610ee6565b8061077b81612ede565b91505061072b565b50505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6107bf6113ec565b805180156108ac5760005b818110156108a7576108956107dd610789565b8483815181106107ef576107ef612eb2565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561083f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108639190612ef7565b85848151811061087557610875612eb2565b60200260200101516001600160a01b031661148f9092919063ffffffff16565b8061089f81612ede565b9150506107ca565b505050565b6108b4610789565b6001600160a01b03166108fc479081150290604051600060405180830381858888f193505050501580156108a7573d6000803e3d6000fd5b60006108f7826114ee565b60a08201518251610917916001600160a01b039091169033903090611571565b610920826115aa565b92915050565b60025460405163133f757160e31b815260048101839052600091829182916001600160a01b0316906399fbab889060240161018060405180830381865afa158015610975573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109999190612f3d565b5050505050965096505050505050600060036000336001600160a01b03166001600160a01b03168152602001908152602001600020600086815260200190815260200160002060010160009054906101000a90046001600160a01b031690506000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190613040565b50505050509150508360020b8160020b12158015610a7f57508260020b8160020b125b9695505050505050565b6000610a94836114ee565b60005484516001600160a01b03908116911614610ac45760405163936bb5ad60e01b815260040160405180910390fd5b348460a0015114610ae85760405163098fb56160e01b815260040160405180910390fd5b60208401516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610b33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b579190612ef7565b6005546040805163414bf38960e01b815288516001600160a01b03908116600483015260208a0151811660248301529189015162ffffff1660448201526060890151821660648201526080890151608482015260a089015160a482015260c089015160c482015260e0890151821660e4820152929350169063414bf3899034906101040160206040518083038185885af1158015610bf9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c1e9190612ef7565b5060208501516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e9190612ef7565b9050610c9a82826130d3565b60a0860181905261271090610cb09086906130e6565b610cba9190613113565b8560a00151610cc991906130d3565b60e0860152610a7f856115aa565b610cdf6113ec565b6001600160a01b038116610d0e57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d178161141e565b50565b610d226117ac565b610d17816117f5565b6107246117ac565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610dba57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dae6000805160206133b9833981519152546001600160a01b031690565b6001600160a01b031614155b156107245760405163703e46dd60e11b815260040160405180910390fd5b610d176113ec565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e3a575060408051601f3d908101601f19168201909252610e3791810190612ef7565b60015b610e6257604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d05565b6000805160206133b98339815191528114610e9357604051632a87526960e21b815260048101829052602401610d05565b6108a783836117fd565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107245760405163703e46dd60e11b815260040160405180910390fd5b6001600160a01b03828116600090815260036020908152604080832087845282528083208151606081018352815486168152600182015486169381019390935260029081015485168383015254905163133f757160e31b815260048101889052919383928392839283929116906399fbab889060240161018060405180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190612f3d565b505050509750975097505050505050600086602001519050600080826001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101b9190613040565b50505050509150915089801561103657508460020b8160020b125b1561104957505050505050505050505050565b60025461105f906001600160a01b03168d611853565b6040805160a081018252600091810182905260608101829052608081018290528f81526001600160801b0388166020820152929a509098506110a088611987565b905060006110ad88611987565b90506110bf8583838660200151611da7565b60608501908152604080860192835242608087019081526002549151630624e65f60e11b81528751600482015260208801516001600160801b031660248201529351604485015291516064840152905160848301526001600160a01b031690630c49ccbe9060a40160408051808303816000875af1158015611145573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111699190613127565b505050505050505050505060006040518060800160405280888152602001306001600160a01b031681526020016001600160801b03801681526020016001600160801b0380168152509050600080600260009054906101000a90046001600160a01b03166001600160a01b031663fc6f7865846040518263ffffffff1660e01b81526004016112369190815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b60408051808303816000875af1158015611254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112789190613127565b6001600160a01b038a1660009081526003602090815260408083208e8452909152902080546001600160a01b03199081168255600182018054821690556002909101805490911690559092509050801561137157600054604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b50505050838161133691906130d3565b6040519091506001600160a01b0389169082156108fc029083906000818181858888f1935050505015801561136f573d6000803e3d6000fd5b505b811561139a5761138185836130d3565b865190925061139a906001600160a01b0316898461148f565b6020808701516040516001600160a01b0391821681528b92918b16917f74521722fc86dc8b2bda041d06bd7a9029ef72153c049c301a329c8ce6fbdeef910160405180910390a3505050505050505050565b336113f5610789565b6001600160a01b0316146107245760405163118cdaa760e01b8152336004820152602401610d05565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6040516001600160a01b038381166024830152604482018390526108a791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611e43565b60005481516001600160a01b039081169116148061151f575060005460208201516001600160a01b03908116911614155b1561153d57604051630793df6360e21b815260040160405180910390fd5b60c0810151151580611553575061010081015115155b15610d1757604051635435b28960e11b815260040160405180910390fd5b6040516001600160a01b0384811660248301528381166044830152606482018390526107839186918216906323b872dd906084016114bc565b30610120820152805160009033906115c190611ea6565b600254604051634418b22b60e11b81526000916001600160a01b0316906388316456906115f290879060040161314b565b6080604051808303816000875af1158015611611573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611635919061320f565b50600154875160208901516040808b01519051630b4c774160e11b81526001600160a01b039384166004820152918316602483015262ffffff16604482015294975091945060009391169150631698ee8290606401602060405180830381865afa1580156116a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cb9190612e95565b604080516060808201835288516001600160a01b03908116835284811660208085018281528a84168688018181526000828152600385528981208f82528552899020975188549087166001600160a01b031991821617895592516001890180549188169185169190911790555160029788018054919096169216919091179093558b8401516080808e0151885194855291870b9284019290925290940b81860152918201879052925193945087937f794b879c8a9a99ee59e4f4c8745a319751e426cbb223a1b539381d7b95aadf96929181900390910190a3505050919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661072457604051631afcd79f60e31b815260040160405180910390fd5b610cdf6117ac565b61180682611f08565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561184b576108a78282611f6d565b6106b1611fe3565b6000806000806000806000806000806000808d6001600160a01b03166399fbab888e6040518263ffffffff1660e01b815260040161189391815260200190565b61018060405180830381865afa1580156118b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d59190612f3d565b6001600160801b03169b506001600160801b03169b509b509b509b509b509b509b509b509b5050506119728e6040518061014001604052808d6001600160a01b031681526020018c6001600160a01b031681526020018b62ffffff1681526020018a60020b81526020018960020b8152602001886001600160801b0316815260200187815260200186815260200185815260200184815250612002565b9b509b50505050505050505050509250929050565b60008060008360020b1261199e578260020b6119ab565b8260020b6119ab9061324b565b90506119ba620d89e719613267565b60020b8111156119f05760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401610d05565b600081600116600003611a0757600160801b611a19565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611a58576080611a53826ffff97272373d413259a46990580e213a6130e6565b901c90505b6004821615611a82576080611a7d826ffff2e50f5f656932ef12357cf3c7fdcc6130e6565b901c90505b6008821615611aac576080611aa7826fffe5caca7e10e4e61c3624eaa0941cd06130e6565b901c90505b6010821615611ad6576080611ad1826fffcb9843d60f6159c9db58835c9266446130e6565b901c90505b6020821615611b00576080611afb826fff973b41fa98c081472e6896dfb254c06130e6565b901c90505b6040821615611b2a576080611b25826fff2ea16466c96a3843ec78b326b528616130e6565b901c90505b6080821615611b54576080611b4f826ffe5dee046a99a2a811c461f1969c30536130e6565b901c90505b610100821615611b7f576080611b7a826ffcbe86c7900a88aedcffc83b479aa3a46130e6565b901c90505b610200821615611baa576080611ba5826ff987a7253ac413176f2b074cf7815e546130e6565b901c90505b610400821615611bd5576080611bd0826ff3392b0822b70005940c7a398e4b70f36130e6565b901c90505b610800821615611c00576080611bfb826fe7159475a2c29b7443b29c7fa6e889d96130e6565b901c90505b611000821615611c2b576080611c26826fd097f3bdfd2022b8845ad8f792aa58256130e6565b901c90505b612000821615611c56576080611c51826fa9f746462d870fdf8a65dc1f90e061e56130e6565b901c90505b614000821615611c81576080611c7c826f70d869a156d2a1b890bb3df62baf32f76130e6565b901c90505b618000821615611cac576080611ca7826f31be135f97d08fd981231505542fcfa66130e6565b901c90505b62010000821615611cd8576080611cd3826f09aa508b5b7a84e1c677de54f3e99bc96130e6565b901c90505b62020000821615611d03576080611cfe826e5d6af8dedb81196699c329225ee6046130e6565b901c90505b62040000821615611d2d576080611d28826d2216e584f5fa1ea926041bedfe986130e6565b901c90505b62080000821615611d55576080611d50826b048a170391f7dc42444e8fa26130e6565b901c90505b60008460020b1315611d7057611d6d81600019613113565b90505b611d7f64010000000082613289565b15611d8b576001611d8e565b60005b611d9f9060ff16602083901c61329d565b949350505050565b600080836001600160a01b0316856001600160a01b03161115611dc8579293925b846001600160a01b0316866001600160a01b031611611df357611dec858585612131565b9150611e3a565b836001600160a01b0316866001600160a01b03161015611e2c57611e18868585612131565b9150611e258587856121ae565b9050611e3a565b611e378585856121ae565b90505b94509492505050565b6000611e586001600160a01b038416836121f8565b90508051600014158015611e7d575080806020019051810190611e7b91906132b0565b155b156108a757604051635274afe760e01b81526001600160a01b0384166004820152602401610d05565b6001600160a01b03811660009081526004602052604090205460ff16610d1757600254611ee2906001600160a01b038381169116600019612206565b6001600160a01b0381166000908152600460205260409020805460ff1916600117905550565b806001600160a01b03163b600003611f3e57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d05565b6000805160206133b983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611f8a91906132cb565b600060405180830381855af49150503d8060008114611fc5576040519150601f19603f3d011682016040523d82523d6000602084013e611fca565b606091505b5091509150611fda858383612296565b95945050505050565b34156107245760405163b398979f60e01b815260040160405180910390fd5b6000806000806120c26120b3876001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561204c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120709190612e95565b604051806060016040528089600001516001600160a01b0316815260200189602001516001600160a01b03168152602001896040015162ffffff168152506122f2565b866060015187608001516123db565b915091508461010001516120f78660c00151846120df91906130d3565b8760a001516001600160801b0316600160801b61266a565b612101919061329d565b935084610120015161211c8660e00151836120df91906130d3565b612126919061329d565b925050509250929050565b6000826001600160a01b0316846001600160a01b03161115612151579192915b6001600160a01b03841661219a6fffffffffffffffffffffffffffffffff60601b606085901b1661218287876132e7565b6001600160a01b0316866001600160a01b031661266a565b6121a49190613113565b90505b9392505050565b6000826001600160a01b0316846001600160a01b031611156121ce579192915b6121a46001600160801b0383166121e586866132e7565b6001600160a01b0316600160601b61266a565b60606121a78383600061271c565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261225784826127af565b610783576040516001600160a01b0384811660248301526000604483015261228c91869182169063095ea7b3906064016114bc565b6107838482611e43565b6060826122ab576122a682612852565b6121a7565b81511580156122c257506001600160a01b0384163b155b156122eb57604051639996b31560e01b81526001600160a01b0385166004820152602401610d05565b50806121a7565b600081602001516001600160a01b031682600001516001600160a01b03161061231a57600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b6000806000856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa15801561241e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124429190613040565b505060405163f30dba9360e01b815260028b900b60048201529395506000945084936001600160a01b038c16935063f30dba939250602401905061010060405180830381865afa15801561249a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124be919061330e565b505060405163f30dba9360e01b815260028d900b600482015293975091955060009450849350506001600160a01b038c169163f30dba93915060240161010060405180830381865afa158015612518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253c919061330e565b505050509350935050508860020b8560020b1215612563578184039650808303955061265d565b8760020b8560020b12156126525760008a6001600160a01b031663f30583996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d59190612ef7565b905060008b6001600160a01b031663461413196040518163ffffffff1660e01b8152600401602060405180830381865afa158015612617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263b9190612ef7565b90508386830303985082858203039750505061265d565b838203965082810395505b5050505050935093915050565b60008080600019858709858702925082811083820303915050806000036126a3576000841161269857600080fd5b5082900490506121a7565b8084116126af57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6060814710156127415760405163cd78605960e01b8152306004820152602401610d05565b600080856001600160a01b0316848660405161275d91906132cb565b60006040518083038185875af1925050503d806000811461279a576040519150601f19603f3d011682016040523d82523d6000602084013e61279f565b606091505b5091509150610a7f868383612296565b6000806000846001600160a01b0316846040516127cc91906132cb565b6000604051808303816000865af19150503d8060008114612809576040519150601f19603f3d011682016040523d82523d6000602084013e61280e565b606091505b509150915081801561283857508051158061283857508080602001905181019061283891906132b0565b8015611fda5750505050506001600160a01b03163b151590565b8051156128625780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b0381168114610d1757600080fd5b600080604083850312156128a357600080fd5b82356128ae8161287b565b915060208301356128be8161287b565b809150509250929050565b80356128d48161287b565b919050565b634e487b7160e01b600052604160045260246000fd5b604051610160810167ffffffffffffffff81118282101715612913576129136128d9565b60405290565b604051610100810167ffffffffffffffff81118282101715612913576129136128d9565b604051601f8201601f1916810167ffffffffffffffff81118282101715612966576129666128d9565b604052919050565b6000806040838503121561298157600080fd5b823561298c8161287b565b915060208381013567ffffffffffffffff808211156129aa57600080fd5b818601915086601f8301126129be57600080fd5b8135818111156129d0576129d06128d9565b6129e2601f8201601f1916850161293d565b915080825287848285010111156129f857600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060408385031215612a2957600080fd5b8235612a348161287b565b946020939093013593505050565b600060208284031215612a5457600080fd5b81356121a78161287b565b600067ffffffffffffffff821115612a7957612a796128d9565b5060051b60200190565b600082601f830112612a9457600080fd5b81356020612aa9612aa483612a5f565b61293d565b82815260059290921b84018101918181019086841115612ac857600080fd5b8286015b84811015612ae35780358352918301918301612acc565b509695505050505050565b60008060408385031215612b0157600080fd5b823567ffffffffffffffff80821115612b1957600080fd5b818501915085601f830112612b2d57600080fd5b81356020612b3d612aa483612a5f565b82815260059290921b84018101918181019089841115612b5c57600080fd5b948201945b83861015612b83578535612b748161287b565b82529482019490820190612b61565b96505086013592505080821115612b9957600080fd5b50612ba685828601612a83565b9150509250929050565b60006020808385031215612bc357600080fd5b823567ffffffffffffffff811115612bda57600080fd5b8301601f81018513612beb57600080fd5b8035612bf9612aa482612a5f565b81815260059190911b82018301908381019087831115612c1857600080fd5b928401925b82841015612c3f578335612c308161287b565b82529284019290840190612c1d565b979650505050505050565b60005b83811015612c65578181015183820152602001612c4d565b50506000910152565b6020815260008251806020840152612c8d816040850160208701612c4a565b601f01601f19169190910160400192915050565b62ffffff81168114610d1757600080fd5b80356128d481612ca1565b8060020b8114610d1757600080fd5b80356128d481612cbd565b60006101608284031215612cea57600080fd5b612cf26128ef565b9050612cfd826128c9565b8152612d0b602083016128c9565b6020820152612d1c60408301612cb2565b6040820152612d2d60608301612ccc565b6060820152612d3e60808301612ccc565b608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120612d7b8184016128c9565b818301525061014080830135818301525092915050565b60006101608284031215612da557600080fd5b6121a78383612cd7565b600060208284031215612dc157600080fd5b5035919050565b6000806000838503610280811215612ddf57600080fd5b61010080821215612def57600080fd5b612df7612919565b91508535612e048161287b565b8252612e12602087016128c9565b6020830152612e2360408701612cb2565b6040830152612e34606087016128c9565b60608301526080860135608083015260a086013560a083015260c086013560c0830152612e6360e087016128c9565b60e0830152819450612e7787828801612cd7565b9350505061026084013590509250925092565b80516128d48161287b565b600060208284031215612ea757600080fd5b81516121a78161287b565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612ef057612ef0612ec8565b5060010190565b600060208284031215612f0957600080fd5b5051919050565b80516128d481612ca1565b80516128d481612cbd565b80516001600160801b03811681146128d457600080fd5b6000806000806000806000806000806000806101808d8f031215612f6057600080fd5b8c516bffffffffffffffffffffffff81168114612f7c57600080fd5b9b50612f8a60208e01612e8a565b9a50612f9860408e01612e8a565b9950612fa660608e01612e8a565b9850612fb460808e01612f10565b9750612fc260a08e01612f1b565b9650612fd060c08e01612f1b565b9550612fde60e08e01612f26565b94506101008d015193506101208d01519250612ffd6101408e01612f26565b915061300c6101608e01612f26565b90509295989b509295989b509295989b565b805161ffff811681146128d457600080fd5b805180151581146128d457600080fd5b600080600080600080600060e0888a03121561305b57600080fd5b87516130668161287b565b602089015190975061307781612cbd565b95506130856040890161301e565b94506130936060890161301e565b93506130a16080890161301e565b925060a088015160ff811681146130b757600080fd5b91506130c560c08901613030565b905092959891949750929550565b8181038181111561092057610920612ec8565b808202811582820484141761092057610920612ec8565b634e487b7160e01b600052601260045260246000fd5b600082613122576131226130fd565b500490565b6000806040838503121561313a57600080fd5b505080516020909101519092909150565b81516001600160a01b031681526101608101602083015161317760208401826001600160a01b03169052565b50604083015161318e604084018262ffffff169052565b5060608301516131a3606084018260020b9052565b5060808301516131b8608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516131fe828501826001600160a01b03169052565b505061014092830151919092015290565b6000806000806080858703121561322557600080fd5b8451935061323560208601612f26565b6040860151606090960151949790965092505050565b6000600160ff1b820161326057613260612ec8565b5060000390565b60008160020b627fffff19810361328057613280612ec8565b60000392915050565b600082613298576132986130fd565b500690565b8082018082111561092057610920612ec8565b6000602082840312156132c257600080fd5b6121a782613030565b600082516132dd818460208701612c4a565b9190910192915050565b6001600160a01b0382811682821603908082111561330757613307612ec8565b5092915050565b600080600080600080600080610100898b03121561332b57600080fd5b61333489612f26565b9750602089015180600f0b811461334a57600080fd5b80975050604089015195506060890151945060808901518060060b811461337057600080fd5b60a08a01519094506133818161287b565b60c08a015190935063ffffffff8116811461339b57600080fd5b91506133a960e08a01613030565b9050929598509295989093965056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212200fce2a490493ce310a25f580f8392ce9b59858675f96ef2f9ebce6b5081ecc5364736f6c63430008140033