UNPKG

@uniswap/v4-periphery

Version:

🦄 Peripheral smart contracts for interacting with Uniswap v4

1 lines • 108 kB
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_fuzz_hookMiner","inputs":[{"name":"flags","type":"uint16","internalType":"uint16"},{"name":"number","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hookMiner_addressCollision","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602b575f80fd5b50612aa9806100395f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c8063916a17c611610088578063ba414fa611610063578063ba414fa614610185578063de120a471461019d578063e20c9f71146101b0578063fa7626d4146101b8575f80fd5b8063916a17c614610160578063b0464fdc14610175578063b5508aa91461017d575f80fd5b80633f7286f4116100c35780633f7286f41461012457806366d9a9a01461012c57806382f07ab01461014157806385226c811461014b575f80fd5b80631ed7831c146100e95780632ade3880146101075780633e5e3c231461011c575b5f80fd5b6100f16101c5565b6040516100fe91906112db565b60405180910390f35b61010f610232565b6040516100fe919061137f565b6100f161037b565b6100f16103e6565b610134610451565b6040516100fe91906114ed565b6101496105ca565b005b610153610970565b6040516100fe9190611589565b610168610a3b565b6040516100fe91906115fe565b610168610b3e565b610153610c41565b61018d610d0c565b60405190151581526020016100fe565b6101496101ab3660046116a0565b610ddc565b6100f1610f22565b601f5461018d9060ff1681565b6060601680548060200260200160405190810160405280929190818152602001828054801561022857602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101fd575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015610372575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b8282101561035b578382905f5260205f200180546102d0906116d0565b80601f01602080910402602001604051908101604052809291908181526020018280546102fc906116d0565b80156103475780601f1061031e57610100808354040283529160200191610347565b820191905f5260205f20905b81548152906001019060200180831161032a57829003601f168201915b5050505050815260200190600101906102b3565b505050508152505081526020019060010190610255565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561022857602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101fd575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561022857602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101fd575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015610372578382905f5260205f2090600202016040518060400160405290815f820180546104a4906116d0565b80601f01602080910402602001604051908101604052809291908181526020018280546104d0906116d0565b801561051b5780601f106104f25761010080835404028352916020019161051b565b820191905f5260205f20905b8154815290600101906020018083116104fe57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156105b257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161055f5790505b50505050508152505081526020019060010190610474565b60405160c0906064905f90819061064b90309086906105eb602082016112ce565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408181525f6020830152810188905261ffff891660608201526080015b604051602081830303815290604052610f8d565b915091505f815f8587604051610660906112ce565b73ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915261ffff1660408201526060018190604051809103905ff59050801580156106ab573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff166323f84def6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156106f2575f80fd5b505afa158015610704573d5f803e3d5ffd5b505050506107128184611116565b6107888173ffffffffffffffffffffffffffffffffffffffff16634e70b1dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107829190611721565b856111b0565b610799613fff8281169087166111b0565b5f80610804308861ffff16604051806020016107b4906112ce565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408181525f602083015281018b905261ffff8c166060820152608001610637565b915091506108128286611208565b61081c8185611276565b5f815f888a60405161082d906112ce565b73ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915261ffff1660408201526060018190604051809103905ff5905080158015610878573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff166323f84def6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156108bf575f80fd5b505afa1580156108d1573d5f803e3d5ffd5b505050506108df8184611116565b6109558173ffffffffffffffffffffffffffffffffffffffff16634e70b1dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561092b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094f9190611721565b886111b0565b610966613fff828116908a166111b0565b5050505050505050565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610372578382905f5260205f200180546109b0906116d0565b80601f01602080910402602001604051908101604052809291908181526020018280546109dc906116d0565b8015610a275780601f106109fe57610100808354040283529160200191610a27565b820191905f5260205f20905b815481529060010190602001808311610a0a57829003601f168201915b505050505081526020019060010190610993565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610372575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015610b2657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610ad35790505b50505050508152505081526020019060010190610a5e565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610372575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015610c2957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610bd65790505b50505050508152505081526020019060010190610b61565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610372578382905f5260205f20018054610c81906116d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610cad906116d0565b8015610cf85780601f10610ccf57610100808354040283529160200191610cf8565b820191905f5260205f20905b815481529060010190602001808311610cdb57829003601f168201915b505050505081526020019060010190610c64565b6008545f9060ff1615610d23575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015610db1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd59190611721565b1415905090565b5f80610df7308561ffff16604051806020016105eb906112ce565b915091505f815f8587604051610e0c906112ce565b73ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915261ffff1660408201526060018190604051809103905ff5905080158015610e57573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff166323f84def6040518163ffffffff1660e01b81526004015f6040518083038186803b158015610e9e575f80fd5b505afa158015610eb0573d5f803e3d5ffd5b50505050610ebe8184611116565b610f0a8173ffffffffffffffffffffffffffffffffffffffff16634e70b1dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075e573d5f803e3d5ffd5b610f1b613fff8281169087166111b0565b5050505050565b6060601580548060200260200160405190810160405280929190818152602001828054801561022857602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101fd575050505050905090565b5f80613fff851694505f8484604051602001610faa92919061174f565b60405160208183030381529060405290505f805b620272bc8110156110a6578251602080850191909120604080517fff00000000000000000000000000000000000000000000000000000000000000818501527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608e901b1660218201526035810185905260558082019390935281518082039093018352607501905280519101209150613fff821673ffffffffffffffffffffffffffffffffffffffff891614801561108d575073ffffffffffffffffffffffffffffffffffffffff82163b155b1561109e57909350915061110d9050565b600101610fbe565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f486f6f6b4d696e65723a20636f756c64206e6f742066696e642073616c740000604482015260640160405180910390fd5b94509492505050565b6040517f515361f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808416600483015282166024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063515361f6906044015b5f6040518083038186803b158015611196575f80fd5b505afa1580156111a8573d5f803e3d5ffd5b505050505050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c5490604401611180565b6040517fb12e169400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808416600483015282166024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063b12e169490604401611180565b6040517f898e83fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d9063898e83fc90604401611180565b6113318061176c83390190565b602080825282518282018190525f918401906040840190835b8181101561132857835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016112f4565b509095945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611485577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805173ffffffffffffffffffffffffffffffffffffffff168652602090810151604082880181905281519088018190529101906060600582901b8801810191908801905f5b8181101561146b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352611455848651611333565b602095860195909450929092019160010161141b565b5091975050506020948501949290920191506001016113a5565b50929695505050505050565b5f8151808452602084019350602083015f5b828110156114e35781517fffffffff00000000000000000000000000000000000000000000000000000000168652602095860195909101906001016114a3565b5093949350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611485577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281518051604087526115576040880182611333565b90506020820151915086810360208801526115728183611491565b965050506020938401939190910190600101611513565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611485577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526115e9858351611333565b945060209384019391909101906001016115af565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611485577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815173ffffffffffffffffffffffffffffffffffffffff8151168652602081015190506040602087015261168a6040870182611491565b9550506020938401939190910190600101611624565b5f80604083850312156116b1575f80fd5b823561ffff811681146116c2575f80fd5b946020939093013593505050565b600181811c908216806116e457607f821691505b60208210810361171b577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f60208284031215611731575f80fd5b5051919050565b5f81518060208401855e5f93019283525090919050565b5f61176361175d8386611738565b84611738565b94935050505056fe60a060405234801561000f575f80fd5b5060405161133138038061133183398101604081905261002e9161038e565b6001600160a01b038316608052815f81905550604051806101c001604052806120008361ffff16166001600160a01b03165f1415151581526020016110008361ffff16166001600160a01b03165f1415151581526020016108008361ffff16166001600160a01b03165f1415151581526020016104008361ffff16166001600160a01b03165f1415151581526020016102008361ffff16166001600160a01b03165f1415151581526020016101008361ffff16166001600160a01b03165f14151515815260200160808361ffff16166001600160a01b03165f14151515815260200160408361ffff16166001600160a01b03165f14151515815260200160208361ffff16166001600160a01b03165f14151515815260200160108361ffff16166001600160a01b03165f14151515815260200160088361ffff16166001600160a01b03165f14151515815260200160048361ffff16166001600160a01b03165f14151515815260200160028361ffff16166001600160a01b03165f14151515815260200160018361ffff16166001600160a01b03165f1415151581525060015f820151815f015f6101000a81548160ff0219169083151502179055506020820151815f0160016101000a81548160ff0219169083151502179055506040820151815f0160026101000a81548160ff0219169083151502179055506060820151815f0160036101000a81548160ff0219169083151502179055506080820151815f0160046101000a81548160ff02191690831515021790555060a0820151815f0160056101000a81548160ff02191690831515021790555060c0820151815f0160066101000a81548160ff02191690831515021790555060e0820151815f0160076101000a81548160ff021916908315150217905550610100820151815f0160086101000a81548160ff021916908315150217905550610120820151815f0160096101000a81548160ff021916908315150217905550610140820151815f01600a6101000a81548160ff021916908315150217905550610160820151815f01600b6101000a81548160ff021916908315150217905550610180820151815f01600c6101000a81548160ff0219169083151502179055506101a0820151815f01600d6101000a81548160ff0219169083151502179055509050505050506103df565b5f805f606084860312156103a0575f80fd5b83516001600160a01b03811681146103b6575f80fd5b60208501516040860151919450925061ffff811681146103d4575f80fd5b809150509250925092565b608051610f096104285f395f81816102e50152818161035801528181610514015281816105a301528181610632015281816106b80152818161074501526107ce0152610f095ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c80639f063efc11610088578063c4e833ce11610063578063c4e833ce14610267578063dc4c90d3146102e0578063dc98354e1461032c578063e1b4af6914610254575f80fd5b80639f063efc146101a8578063b47b2fb114610206578063b6a8b0fa14610254575f80fd5b80634e70b1dc116100c35780634e70b1dc1461013c578063575e24b4146101525780636c2bbe7e146101a85780636fe7e6eb146101f3575f80fd5b806321d0ee70146100e957806323f84def14610132578063259982e5146100e9575b5f80fd5b6100fc6100f7366004610aee565b61033f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b61013a6103c6565b005b6101445f5481565b604051908152602001610129565b610165610160366004610b75565b6104f9565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff1690820152606001610129565b6101bb6101b6366004610bcf565b610589565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352602083019190915201610129565b6100fc610201366004610c5a565b610619565b610219610214366004610cb9565b61069e565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b602083015201610129565b6100fc610262366004610d3a565b61072c565b604080516101c0810182525f80825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082015290516101299190610d94565b6103077f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610129565b6100fc61033a366004610eb5565b6107b5565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146103af576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103bc8686868686610838565b9695505050505050565b604080516101c08101825260015460ff8082161515835261010080830482161515602085015262010000830482161515948401949094526301000000820481161515606084015264010000000082048116151560808401526501000000000082048116151560a0840152660100000000000082048116151560c084015267010000000000000082048116151560e0840152680100000000000000008204811615159383019390935269010000000000000000008104831615156101208301526a01000000000000000000008104831615156101408301526b0100000000000000000000008104831615156101608301526c010000000000000000000000008104831615156101808301526d0100000000000000000000000000900490911615156101a08201526104f790309061086b565b565b5f80803373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461056b576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61057888888888886109d4565b925092509250955095509592505050565b5f803373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146105fa576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61060989898989898989610a09565b9150915097509795505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610689576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61069585858585610838565b95945050505050565b5f803373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461070f576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61071d888888888888610a09565b91509150965096945050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461079c576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107aa878787878787610838565b979650505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610825576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610830848484610838565b949350505050565b5f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805115156120008316151514158061088f5750602081015115156110008316151514155b806108a65750604081015115156108008316151514155b806108bd5750606081015115156104008316151514155b806108d45750608081015115156102008316151514155b806108eb575060a081015115156101008316151514155b80610901575060c0810151151560808316151514155b80610917575060e0810151151560408316151514155b8061092e5750610100810151151560208316151514155b806109455750610120810151151560108316151514155b8061095c5750610140810151151560088316151514155b806109735750610160810151151560048316151514155b8061098a5750610180810151151560028316151514155b806109a157506101a0810151151560018316151514155b156109d0576109d07fe65af6a00000000000000000000000000000000000000000000000000000000083610a3d565b5050565b5f805f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f806040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f5273ffffffffffffffffffffffffffffffffffffffff811660045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff81168114610a80575f80fd5b50565b5f60a08284031215610a93575f80fd5b50919050565b5f60808284031215610a93575f80fd5b5f8083601f840112610ab9575f80fd5b50813567ffffffffffffffff811115610ad0575f80fd5b602083019150836020828501011115610ae7575f80fd5b9250929050565b5f805f805f6101608688031215610b03575f80fd5b8535610b0e81610a5f565b9450610b1d8760208801610a83565b9350610b2c8760c08801610a99565b925061014086013567ffffffffffffffff811115610b48575f80fd5b610b5488828901610aa9565b969995985093965092949392505050565b5f60608284031215610a93575f80fd5b5f805f805f6101408688031215610b8a575f80fd5b8535610b9581610a5f565b9450610ba48760208801610a83565b9350610bb38760c08801610b65565b925061012086013567ffffffffffffffff811115610b48575f80fd5b5f805f805f805f6101a0888a031215610be6575f80fd5b8735610bf181610a5f565b9650610c008960208a01610a83565b9550610c0f8960c08a01610a99565b94506101408801359350610160880135925061018088013567ffffffffffffffff811115610c3b575f80fd5b610c478a828b01610aa9565b989b979a50959850939692959293505050565b5f805f806101008587031215610c6e575f80fd5b8435610c7981610a5f565b9350610c888660208701610a83565b925060c0850135610c9881610a5f565b915060e0850135600281900b8114610cae575f80fd5b939692955090935050565b5f805f805f806101608789031215610ccf575f80fd5b8635610cda81610a5f565b9550610ce98860208901610a83565b9450610cf88860c08901610b65565b9350610120870135925061014087013567ffffffffffffffff811115610d1c575f80fd5b610d2889828a01610aa9565b979a9699509497509295939492505050565b5f805f805f806101208789031215610d50575f80fd5b8635610d5b81610a5f565b9550610d6a8860208901610a83565b945060c0870135935060e0870135925061010087013567ffffffffffffffff811115610d1c575f80fd5b8151151581526101c081016020830151610db2602084018215159052565b506040830151610dc6604084018215159052565b506060830151610dda606084018215159052565b506080830151610dee608084018215159052565b5060a0830151610e0260a084018215159052565b5060c0830151610e1660c084018215159052565b5060e0830151610e2a60e084018215159052565b50610100830151610e4061010084018215159052565b50610120830151610e5661012084018215159052565b50610140830151610e6c61014084018215159052565b50610160830151610e8261016084018215159052565b50610180830151610e9861018084018215159052565b506101a0830151610eae6101a084018215159052565b5092915050565b5f805f60e08486031215610ec7575f80fd5b8335610ed281610a5f565b9250610ee18560208601610a83565b915060c0840135610ef181610a5f565b80915050925092509256fea164736f6c634300081a000aa164736f6c634300081a000a","sourceMap":"358:2468:210:-:0;;;3126:44:9;;;3166:4;-1:-1:-1;;3126:44:9;;;;;;;;1016:26:19;;;;;;;;;;;358:2468:210;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100e5575f3560e01c8063916a17c611610088578063ba414fa611610063578063ba414fa614610185578063de120a471461019d578063e20c9f71146101b0578063fa7626d4146101b8575f80fd5b8063916a17c614610160578063b0464fdc14610175578063b5508aa91461017d575f80fd5b80633f7286f4116100c35780633f7286f41461012457806366d9a9a01461012c57806382f07ab01461014157806385226c811461014b575f80fd5b80631ed7831c146100e95780632ade3880146101075780633e5e3c231461011c575b5f80fd5b6100f16101c5565b6040516100fe91906112db565b60405180910390f35b61010f610232565b6040516100fe919061137f565b6100f161037b565b6100f16103e6565b610134610451565b6040516100fe91906114ed565b6101496105ca565b005b610153610970565b6040516100fe9190611589565b610168610a3b565b6040516100fe91906115fe565b610168610b3e565b610153610c41565b61018d610d0c565b60405190151581526020016100fe565b6101496101ab3660046116a0565b610ddc565b6100f1610f22565b601f5461018d9060ff1681565b6060601680548060200260200160405190810160405280929190818152602001828054801561022857602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101fd575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015610372575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b8282101561035b578382905f5260205f200180546102d0906116d0565b80601f01602080910402602001604051908101604052809291908181526020018280546102fc906116d0565b80156103475780601f1061031e57610100808354040283529160200191610347565b820191905f5260205f20905b81548152906001019060200180831161032a57829003601f168201915b5050505050815260200190600101906102b3565b505050508152505081526020019060010190610255565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561022857602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101fd575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561022857602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101fd575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015610372578382905f5260205f2090600202016040518060400160405290815f820180546104a4906116d0565b80601f01602080910402602001604051908101604052809291908181526020018280546104d0906116d0565b801561051b5780601f106104f25761010080835404028352916020019161051b565b820191905f5260205f20905b8154815290600101906020018083116104fe57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156105b257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161055f5790505b50505050508152505081526020019060010190610474565b60405160c0906064905f90819061064b90309086906105eb602082016112ce565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408181525f6020830152810188905261ffff891660608201526080015b604051602081830303815290604052610f8d565b915091505f815f8587604051610660906112ce565b73ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915261ffff1660408201526060018190604051809103905ff59050801580156106ab573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff166323f84def6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156106f2575f80fd5b505afa158015610704573d5f803e3d5ffd5b505050506107128184611116565b6107888173ffffffffffffffffffffffffffffffffffffffff16634e70b1dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107829190611721565b856111b0565b610799613fff8281169087166111b0565b5f80610804308861ffff16604051806020016107b4906112ce565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f9091011660408181525f602083015281018b905261ffff8c166060820152608001610637565b915091506108128286611208565b61081c8185611276565b5f815f888a60405161082d906112ce565b73ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915261ffff1660408201526060018190604051809103905ff5905080158015610878573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff166323f84def6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156108bf575f80fd5b505afa1580156108d1573d5f803e3d5ffd5b505050506108df8184611116565b6109558173ffffffffffffffffffffffffffffffffffffffff16634e70b1dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561092b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094f9190611721565b886111b0565b610966613fff828116908a166111b0565b5050505050505050565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610372578382905f5260205f200180546109b0906116d0565b80601f01602080910402602001604051908101604052809291908181526020018280546109dc906116d0565b8015610a275780601f106109fe57610100808354040283529160200191610a27565b820191905f5260205f20905b815481529060010190602001808311610a0a57829003601f168201915b505050505081526020019060010190610993565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610372575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015610b2657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610ad35790505b50505050508152505081526020019060010190610a5e565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610372575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015610c2957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610bd65790505b50505050508152505081526020019060010190610b61565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610372578382905f5260205f20018054610c81906116d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610cad906116d0565b8015610cf85780601f10610ccf57610100808354040283529160200191610cf8565b820191905f5260205f20905b815481529060010190602001808311610cdb57829003601f168201915b505050505081526020019060010190610c64565b6008545f9060ff1615610d23575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015610db1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd59190611721565b1415905090565b5f80610df7308561ffff16604051806020016105eb906112ce565b915091505f815f8587604051610e0c906112ce565b73ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915261ffff1660408201526060018190604051809103905ff5905080158015610e57573d5f803e3d5ffd5b5090508073ffffffffffffffffffffffffffffffffffffffff166323f84def6040518163ffffffff1660e01b81526004015f6040518083038186803b158015610e9e575f80fd5b505afa158015610eb0573d5f803e3d5ffd5b50505050610ebe8184611116565b610f0a8173ffffffffffffffffffffffffffffffffffffffff16634e70b1dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075e573d5f803e3d5ffd5b610f1b613fff8281169087166111b0565b5050505050565b6060601580548060200260200160405190810160405280929190818152602001828054801561022857602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116101fd575050505050905090565b5f80613fff851694505f8484604051602001610faa92919061174f565b60405160208183030381529060405290505f805b620272bc8110156110a6578251602080850191909120604080517fff00000000000000000000000000000000000000000000000000000000000000818501527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608e901b1660218201526035810185905260558082019390935281518082039093018352607501905280519101209150613fff821673ffffffffffffffffffffffffffffffffffffffff891614801561108d575073ffffffffffffffffffffffffffffffffffffffff82163b155b1561109e57909350915061110d9050565b600101610fbe565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f486f6f6b4d696e65723a20636f756c64206e6f742066696e642073616c740000604482015260640160405180910390fd5b94509492505050565b6040517f515361f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808416600483015282166024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063515361f6906044015b5f6040518083038186803b158015611196575f80fd5b505afa1580156111a8573d5f803e3d5ffd5b505050505050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c5490604401611180565b6040517fb12e169400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808416600483015282166024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063b12e169490604401611180565b6040517f898e83fc0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d9063898e83fc90604401611180565b6113318061176c83390190565b602080825282518282018190525f918401906040840190835b8181101561132857835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016112f4565b509095945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611485577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805173ffffffffffffffffffffffffffffffffffffffff168652602090810151604082880181905281519088018190529101906060600582901b8801810191908801905f5b8181101561146b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352611455848651611333565b602095860195909450929092019160010161141b565b5091975050506020948501949290920191506001016113a5565b50929695505050505050565b5f8151808452602084019350602083015f5b828110156114e35781517fffffffff00000000000000000000000000000000000000000000000000000000168652602095860195909101906001016114a3565b5093949350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611485577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281518051604087526115576040880182611333565b90506020820151915086810360208801526115728183611491565b965050506020938401939190910190600101611513565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611485577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526115e9858351611333565b945060209384019391909101906001016115af565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611485577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815173ffffffffffffffffffffffffffffffffffffffff8151168652602081015190506040602087015261168a6040870182611491565b9550506020938401939190910190600101611624565b5f80604083850312156116b1575f80fd5b823561ffff811681146116c2575f80fd5b946020939093013593505050565b600181811c908216806116e457607f821691505b60208210810361171b577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f60208284031215611731575f80fd5b5051919050565b5f81518060208401855e5f93019283525090919050565b5f61176361175d8386611738565b84611738565b94935050505056fe60a060405234801561000f575f80fd5b5060405161133138038061133183398101604081905261002e9161038e565b6001600160a01b038316608052815f81905550604051806101c001604052806120008361ffff16166001600160a01b03165f1415151581526020016110008361ffff16166001600160a01b03165f1415151581526020016108008361ffff16166001600160a01b03165f1415151581526020016104008361ffff16166001600160a01b03165f1415151581526020016102008361ffff16166001600160a01b03165f1415151581526020016101008361ffff16166001600160a01b03165f14151515815260200160808361ffff16166001600160a01b03165f14151515815260200160408361ffff16166001600160a01b03165f14151515815260200160208361ffff16166001600160a01b03165f14151515815260200160108361ffff16166001600160a01b03165f14151515815260200160088361ffff16166001600160a01b03165f14151515815260200160048361ffff16166001600160a01b03165f14151515815260200160028361ffff16166001600160a01b03165f14151515815260200160018361ffff16166001600160a01b03165f1415151581525060015f820151815f015f6101000a81548160ff0219169083151502179055506020820151815f0160016101000a81548160ff0219169083151502179055506040820151815f0160026101000a81548160ff0219169083151502179055506060820151815f0160036101000a81548160ff0219169083151502179055506080820151815f0160046101000a81548160ff02191690831515021790555060a0820151815f0160056101000a81548160ff02191690831515021790555060c0820151815f0160066101000a81548160ff02191690831515021790555060e0820151815f0160076101000a81548160ff021916908315150217905550610100820151815f0160086101000a81548160ff021916908315150217905550610120820151815f0160096101000a81548160ff021916908315150217905550610140820151815f01600a6101000a81548160ff021916908315150217905550610160820151815f01600b6101000a81548160ff021916908315150217905550610180820151815f01600c6101000a81548160ff0219169083151502179055506101a0820151815f01600d6101000a81548160ff0219169083151502179055509050505050506103df565b5f805f606084860312156103a0575f80fd5b83516001600160a01b03811681146103b6575f80fd5b60208501516040860151919450925061ffff811681146103d4575f80fd5b809150509250925092565b608051610f096104285f395f81816102e50152818161035801528181610514015281816105a301528181610632015281816106b80152818161074501526107ce0152610f095ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c80639f063efc11610088578063c4e833ce11610063578063c4e833ce14610267578063dc4c90d3146102e0578063dc98354e1461032c578063e1b4af6914610254575f80fd5b80639f063efc146101a8578063b47b2fb114610206578063b6a8b0fa14610254575f80fd5b80634e70b1dc116100c35780634e70b1dc1461013c578063575e24b4146101525780636c2bbe7e146101a85780636fe7e6eb146101f3575f80fd5b806321d0ee70146100e957806323f84def14610132578063259982e5146100e9575b5f80fd5b6100fc6100f7366004610aee565b61033f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b61013a6103c6565b005b6101445f5481565b604051908152602001610129565b610165610160366004610b75565b6104f9565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff1690820152606001610129565b6101bb6101b6366004610bcf565b610589565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352602083019190915201610129565b6100fc610201366004610c5a565b610619565b610219610214366004610cb9565b61069e565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b602083015201610129565b6100fc610262366004610d3a565b61072c565b604080516101c0810182525f80825260208201819052818301819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082015290516101299190610d94565b6103077f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610129565b6100fc61033a366004610eb5565b6107b5565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146103af576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103bc8686868686610838565b9695505050505050565b604080516101c08101825260015460ff8082161515835261010080830482161515602085015262010000830482161515948401949094526301000000820481161515606084015264010000000082048116151560808401526501000000000082048116151560a0840152660100000000000082048116151560c084015267010000000000000082048116151560e0840152680100000000000000008204811615159383019390935269010000000000000000008104831615156101208301526a01000000000000000000008104831615156101408301526b0100000000000000000000008104831615156101608301526c010000000000000000000000008104831615156101808301526d0100000000000000000000000000900490911615156101a08201526104f790309061086b565b565b5f80803373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461056b576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61057888888888886109d4565b925092509250955095509592505050565b5f803373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146105fa576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61060989898989898989610a09565b9150915097509795505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610689576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61069585858585610838565b95945050505050565b5f803373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461070f576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61071d888888888888610a09565b91509150965096945050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461079c576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107aa878787878787610838565b979650505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610825576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610830848484610838565b949350505050565b5f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805115156120008316151514158061088f5750602081015115156110008316151514155b806108a65750604081015115156108008316151514155b806108bd5750606081015115156104008316151514155b806108d45750608081015115156102008316151514155b806108eb575060a081015115156101008316151514155b80610901575060c0810151151560808316151514155b80610917575060e0810151151560408316151514155b8061092e5750610100810151151560208316151514155b806109455750610120810151151560108316151514155b8061095c5750610140810151151560088316151514155b806109735750610160810151151560048316151514155b8061098a5750610180810151151560028316151514155b806109a157506101a0810151151560018316151514155b156109d0576109d07fe65af6a00000000000000000000000000000000000000000000000000000000083610a3d565b5050565b5f805f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f806040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f5273ffffffffffffffffffffffffffffffffffffffff811660045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff81168114610a80575f80fd5b50565b5f60a08284031215610a93575f80fd5b50919050565b5f60808284031215610a93575f80fd5b5f8083601f840112610ab9575f80fd5b50813567ffffffffffffffff811115610ad0575f80fd5b602083019150836020828501011115610ae7575f80fd5b9250929050565b5f805f805f6101608688031215610b03575f80fd5b8535610b0e81610a5f565b9450610b1d8760208801610a83565b9350610b2c8760c08801610a99565b925061014086013567ffffffffffffffff811115610b48575f80fd5b610b5488828901610aa9565b969995985093965092949392505050565b5f60608284031215610a93575f80fd5b5f805f805f6101408688031215610b8a575f80fd5b8535610b9581610a5f565b9450610ba48760208801610a83565b9350610bb38760c08801610b65565b925061012086013567ffffffffffffffff811115610b48575f80fd5b5f805f805f805f6101a0888a031215610be6575f80fd5b8735610bf181610a5f565b9650610c008960208a01610a83565b9550610c0f8960c08a01610a99565b94506101408801359350610160880135925061018088013567ffffffffffffffff811115610c3b575f80fd5b610c478a828b01610aa9565b989b979a50959850939692959293505050565b5f805f806101008587031215610c6e575f80fd5b8435610c7981610a5f565b9350610c888660208701610a83565b925060c0850135610c9881610a5f565b915060e0850135600281900b8114610cae575f80fd5b939692955090935050565b5f805f805f806101608789031215610ccf575f80fd5b8635610cda81610a5f565b9550610ce98860208901610a83565b9450610cf88860c08901610b65565b9350610120870135925061014087013567ffffffffffffffff811115610d1c575f80fd5b610d28