{"abi":[{"type":"constructor","inputs":[{"name":"underlyingToken_","type":"address","internalType":"address"},{"name":"zerc20_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FEE_MANAGER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"feeParams","inputs":[],"outputs":[{"name":"params","type":"tuple","internalType":"struct IncentiveLib.FeeParams","components":[{"name":"targetLiquidity","type":"uint256","internalType":"uint256"},{"name":"k","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"feeSurplus","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_feeParams","type":"tuple","internalType":"struct IncentiveLib.FeeParams","components":[{"name":"targetLiquidity","type":"uint256","internalType":"uint256"},{"name":"k","type":"uint256","internalType":"uint256"}]},{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quoteUnwrapFee","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"feeAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"quoteWrapReward","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"reward","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeParams","inputs":[{"name":"params","type":"tuple","internalType":"struct IncentiveLib.FeeParams","components":[{"name":"targetLiquidity","type":"uint256","internalType":"uint256"},{"name":"k","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"underlyingToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"unwrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"unwrapWithMinOut","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minOut","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdrawRewards","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"wrapWithMinOut","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minOut","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"zerc20","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IzERC20"}],"stateMutability":"view"},{"type":"event","name":"FeeParamsUpdated","inputs":[{"name":"params","type":"tuple","indexed":false,"internalType":"struct IncentiveLib.FeeParams","components":[{"name":"targetLiquidity","type":"uint256","internalType":"uint256"},{"name":"k","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RewardsWithdrawn","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unwrapped","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"feeAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Wrapped","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reward","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"DecimalMismatch","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientLiquidity","inputs":[]},{"type":"error","name":"InsufficientRewards","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidK","inputs":[]},{"type":"error","name":"InvalidMsgValue","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidTarget","inputs":[]},{"type":"error","name":"NativeTokenNotSupported","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlippageExceeded","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnderlyingPullFailed","inputs":[]},{"type":"error","name":"UnderlyingSendFailed","inputs":[]},{"type":"error","name":"UnderlyingTokenMismatch","inputs":[{"name":"expected","type":"address","internalType":"address"},{"name":"actual","type":"address","internalType":"address"}]},{"type":"error","name":"Zerc20TokenMismatch","inputs":[{"name":"expected","type":"address","internalType":"address"},{"name":"actual","type":"address","internalType":"address"}]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]},{"type":"error","name":"ZeroReceiver","inputs":[]}],"bytecode":{"object":"0x61010060405230608052348015610014575f5ffd5b5060405161279d38038061279d8339810160408190526100339161017b565b6001600160a01b0382161580159061005357506001600160a01b03811615155b6100705760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0380831660a081905290821660c05273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1460e0526100a76100ae565b50506101ac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100fe5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161461015d5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b0381168114610176575f5ffd5b919050565b5f5f6040838503121561018c575f5ffd5b61019583610160565b91506101a360208401610160565b90509250929050565b60805160a05160c05160e05161253261026b5f395f8181610159015281816105e301528181610622015281816109c601528181610f55015281816110d2015261183101525f818161052f015281816107b3015281816109ec01528181610b170152818161156701526117c801525f8181610263015281816106ba01528181610a9401528181610ffc015281816111100152818161149d0152818161190301526119a001525f81816113f30152818161141c01526116fe01526125325ff3fe60806040526004361061014a575f3560e01c80638703c980116100b3578063ad3cb1cc1161006d578063ad3cb1cc14610468578063c5d7952d146104a5578063d547741f146104c4578063d6ef7af0146104e3578063de462b9714610502578063e20f2d8b14610521575f5ffd5b80638703c9801461035d57806391d148541461037c5780639242164f1461039b57806396723da01461040f578063a217fddf14610422578063a49eb07c14610435575f5ffd5b80632f2ff15d116101045780632f2ff15d146102ba57806333966a45146102d957806336568abe146102f85780634f1ef2861461031757806352d1902d1461032a5780637647691d1461033e575f5ffd5b806301ffc9a7146101ae57806305db2f41146101e257806313bac82014610223578063248a9ca3146102365780632495a599146102555780632c9e813d1461029b575f5ffd5b366101aa57610157610553565b7f000000000000000000000000000000000000000000000000000000000000000061019557604051635885ca3f60e11b815260040160405180910390fd5b61019f343361058a565b506101a861085e565b005b5f5ffd5b3480156101b9575f5ffd5b506101cd6101c8366004612114565b610888565b60405190151581526020015b60405180910390f35b3480156101ed575f5ffd5b506102157f8e24cef3d118e2320bff2d4ac4e82fd5ff0dd3a6e6044ca19f91cd3b6f84750e81565b6040519081526020016101d9565b61021561023136600461214f565b6108be565b348015610241575f5ffd5b5061021561025036600461217d565b6108db565b348015610260575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101d9565b3480156102a6575f5ffd5b506101a86102b53660046121aa565b6108fb565b3480156102c5575f5ffd5b506101a86102d436600461214f565b610c92565b3480156102e4575f5ffd5b506101a86102f33660046121d5565b610cb4565b348015610303575f5ffd5b506101a861031236600461214f565b610d68565b6101a8610325366004612234565b610da0565b348015610335575f5ffd5b50610215610dbf565b348015610349575f5ffd5b5061021561035836600461214f565b610dda565b348015610368575f5ffd5b506102156103773660046122db565b610ded565b348015610387575f5ffd5b506101cd61039636600461214f565b610e32565b3480156103a6575f5ffd5b506040805180820182525f808252602091820152815180830183525f5160206124dd5f395f51905f52548082527f63c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa01549183019182528351908152905191810191909152016101d9565b61021561041d3660046122db565b610e68565b34801561042d575f5ffd5b506102155f81565b348015610440575f5ffd5b507f63c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa0254610215565b348015610473575f5ffd5b50610498604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101d99190612311565b3480156104b0575f5ffd5b506102156104bf36600461217d565b610e7b565b3480156104cf575f5ffd5b506101a86104de36600461214f565b610e93565b3480156104ee575f5ffd5b506101a86104fd366004612346565b610eaf565b34801561050d575f5ffd5b5061021561051c36600461217d565b611070565b34801561052c575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610283565b61055b611088565b61058860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b906110c8565b565b5f825f036105ab57604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b0382166105d257604051630d753d9b60e31b815260040160405180910390fd5b5f5160206124dd5f395f51905f525f7f00000000000000000000000000000000000000000000000000000000000000006106135761060e6110cf565b61061d565b61061d3447612384565b90505f7f00000000000000000000000000000000000000000000000000000000000000001561068057853480821461067657604051631f89f67160e01b8152600481019290925260248201526044015b60405180910390fd5b50503490506106f8565b5f3480156106aa57604051631f89f67160e01b81526004810192909252602482015260440161066d565b506106e290506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333089611186565b816106eb6110cf565b6106f59190612384565b90505b805f0361071857604051630a67890d60e11b815260040160405180910390fd5b60028301545f8184101561072c575f610736565b6107368285612384565b6040805180820190915286548152600187015460208201529091505f9061075f908385876111bc565b905080156107805780866002015f82825461077a9190612384565b90915550505b61078a8185612397565b6040516340c10f1960e01b81526001600160a01b038a81166004830152602482018390529198507f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f19906044015f604051808303815f87803b1580156107f6575f5ffd5b505af1158015610808573d5f5f3e3d5ffd5b5050604080518a8152602081018590526001600160a01b038c1693503392507f9030e93f976e327ab5ef1166d3fe5cfb0820f381770421bbfef5bc656fa15687910160405180910390a350505050505092915050565b6105885f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610582565b5f6001600160e01b03198216637965db0b60e01b14806108b857506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6108c7610553565b6108d1838361058a565b90506108b861085e565b5f9081525f5160206124bd5f395f51905f52602052604090206001015490565b5f6109046111ef565b805490915060ff600160401b820416159067ffffffffffffffff165f8115801561092b5750825b90505f8267ffffffffffffffff1660011480156109475750303b155b905081158015610955575080155b156109735760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561099d57845460ff60401b1916600160401b1785555b6001600160a01b0386166109c45760405163d92e233d60e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015610a92577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6a91906123aa565b60ff16601214610a8d5760405163256774af60e11b815260040160405180910390fd5b610bb6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1291906123aa565b60ff167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b71573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9591906123aa565b60ff1614610bb65760405163256774af60e11b815260040160405180910390fd5b610bcd610bc8368990038901896123ca565b611217565b610bd56112b2565b610bdf5f876112ba565b50610c0a7f8e24cef3d118e2320bff2d4ac4e82fd5ff0dd3a6e6044ca19f91cd3b6f84750e876112ba565b5086355f5160206124dd5f395f51905f525560208701357f63c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa01558315610c8957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610c9b826108db565b610ca481611362565b610cae83836112ba565b50505050565b7f8e24cef3d118e2320bff2d4ac4e82fd5ff0dd3a6e6044ca19f91cd3b6f84750e610cde81611362565b610cf0610bc8368490038401846123ca565b81355f5160206124dd5f395f51905f528190556020808401357f63c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa01819055604080519384529183015280517f586734343936d3b8185acd03519434e1618f70bf3ffe0f67e7faf0c59392f3fd9281900390910190a15050565b6001600160a01b0381163314610d915760405163334bd91960e11b815260040160405180910390fd5b610d9b828261136f565b505050565b610da86113e8565b610db18261148c565b610dbb8282611637565b5050565b5f610dc86116f3565b505f51602061249d5f395f51905f5290565b5f610de3610553565b6108d1838361173c565b5f610df6610553565b610e00848361173c565b905082811015610e2357604051638199f5f360e01b815260040160405180910390fd5b610e2b61085e565b9392505050565b5f9182525f5160206124bd5f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f610e71610553565b610e00848361058a565b5f6108b8825f5160206124dd5f395f51905f52611a33565b610e9c826108db565b610ea581611362565b610cae838361136f565b610eb7610553565b5f610ec181611362565b5f5160206124dd5f395f51905f526001600160a01b038416610ef657604051630d753d9b60e31b815260040160405180910390fd5b825f03610f1657604051631f2a200560e01b815260040160405180910390fd5b8060020154831115610f3b576040516356e16dff60e11b815260040160405180910390fd5b82816002015f828254610f4e9190612384565b90915550507f000000000000000000000000000000000000000000000000000000000000000015610fef575f846001600160a01b0316846040515f6040518083038185875af1925050503d805f8114610fc2576040519150601f19603f3d011682016040523d82523d5f602084013e610fc7565b606091505b5050905080610fe957604051634c0e79fb60e11b815260040160405180910390fd5b50611023565b6110236001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611a8f565b836001600160a01b03167f8a43c4352486ec339f487f64af78ca5cbf06cd47833f073d3baf3a193e5031618460405161105e91815260200190565b60405180910390a25050610dbb61085e565b5f6108b8825f5160206124dd5f395f51905f52611ac4565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c1561058857604051633ee5aeb560e01b815260040160405180910390fd5b80825d5050565b5f7f0000000000000000000000000000000000000000000000000000000000000000156110fb57504790565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561115d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111819190612419565b905090565b611194848484846001611b15565b610cae57604051635274afe760e01b81526001600160a01b038516600482015260240161066d565b5f5f6111d185875f0151886020015186611b82565b9050838111156111e457839150506111e7565b90505b949350505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006108b8565b80516001600160801b0310156112405760405163416aebb560e11b815260040160405180910390fd5b6127108160200151111561126757604051632f62f0d960e21b815260040160405180910390fd5b80515f036112725750565b80515f90611281815f19612444565b61128b9190612444565b90508082602001511115610dbb57604051632f62f0d960e21b815260040160405180910390fd5b610588611cb7565b5f5f5160206124bd5f395f51905f526112d38484610e32565b611352575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556113083390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506108b8565b5f9150506108b8565b5092915050565b61136c8133611cdc565b50565b5f5f5160206124bd5f395f51905f526113888484610e32565b15611352575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506108b8565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114625f51602061249d5f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156105885760405163703e46dd60e11b815260040160405180910390fd5b5f61149681611362565b5f8290505f7f000000000000000000000000000000000000000000000000000000000000000090505f826001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151f9190612457565b905081816001600160a01b03808216908316146115625760405163f5e9e85360e01b81526001600160a01b0392831660048201529116602482015260440161066d565b50505f7f000000000000000000000000000000000000000000000000000000000000000090505f846001600160a01b031663e20f2d8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e99190612457565b905081816001600160a01b038082169083161461162c57604051638aa5406760e01b81526001600160a01b0392831660048201529116602482015260440161066d565b505050505050505050565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611691575060408051601f3d908101601f1916820190925261168e91810190612419565b60015b6116b957604051634c9c8ce360e01b81526001600160a01b038316600482015260240161066d565b5f51602061249d5f395f51905f5281146116e957604051632a87526960e21b81526004810182905260240161066d565b610d9b8383611d15565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105885760405163703e46dd60e11b815260040160405180910390fd5b5f825f0361175d57604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b03821661178457604051630d753d9b60e31b815260040160405180910390fd5b5f5160206124dd5f395f51905f525f61179d8583611ac4565b90506117a98186612384565b604051632770a7eb60e21b8152336004820152602481018790529093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639dc29fac906044015f604051808303815f87803b158015611811575f5ffd5b505af1158015611823573d5f5f3e3d5ffd5b505050505f8311156119c7577f0000000000000000000000000000000000000000000000000000000000000000156118ec57824710156118765760405163bb55fd2760e01b815260040160405180910390fd5b5f846001600160a01b0316846040515f6040518083038185875af1925050503d805f81146118bf576040519150601f19603f3d011682016040523d82523d5f602084013e6118c4565b606091505b50509050806118e657604051634c0e79fb60e11b815260040160405180910390fd5b506119c7565b6040516370a0823160e01b815230600482015283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611950573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119749190612419565b10156119935760405163bb55fd2760e01b815260040160405180910390fd5b6119c76001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611a8f565b80156119e65780826002015f8282546119e09190612397565b90915550505b60408051848152602081018390526001600160a01b0386169133917e04d6f644fc2d087d5be8fde32a4db2f8c58d96f5bb217130b5ca6d5af8f21d910160405180910390a3505092915050565b5f5f611a3d6110cf565b60028401549091505f81831015611a54575f611a5e565b611a5e8284612384565b604080518082019091528654815260018701546020820152909150611a85908284896111bc565b9695505050505050565b611a9c8383836001611d6a565b610d9b57604051635274afe760e01b81526001600160a01b038416600482015260240161066d565b5f5f611ace6110cf565b60028401549091505f81831015611ae5575f611aef565b611aef8284612384565b604080518082019091528654815260018701546020820152909150611a85908288611dcc565b6040516323b872dd60e01b5f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611b71578383151615611b65573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b5f831580611b8e575081155b15611b9a57505f6111e7565b6001600160801b03841115611bb057505f6111e7565b5f84611bbd815f19612444565b611bc79190612444565b905080841115611bda575f9150506111e7565b5f858710611be85785611bea565b865b90505f611bf8885f19612384565b851115611c0757505f19611c14565b611c118589612397565b90505b86811115611c1f5750855b818111611c31575f93505050506111e7565b5f611c3c8389612384565b90505f611c49838a612384565b90505f611c568380612472565b90505f611c638380612472565b90505f611c708284612384565b90505f611c7d828d612472565b90505f612710611c8e8f6002612472565b611c989190612472565b9050611ca48183612444565b9f9e505050505050505050505050505050565b611cbf611e17565b61058857604051631afcd79f60e31b815260040160405180910390fd5b611ce68282610e32565b610dbb5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161066d565b611d1e82611e30565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611d6257610d9b8282611e93565b610dbb611f2c565b60405163a9059cbb60e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611dc0578383151615611db4573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f5f611de184865f0151876020015186611f4b565b905082841115611df2579050610e2b565b5f81851015611e01575f611e0b565b611e0b8286612384565b9050611a858185612384565b5f611e206111ef565b54600160401b900460ff16919050565b806001600160a01b03163b5f03611e6557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161066d565b5f51602061249d5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f611ea08484612093565b9050808015611ec157505f3d1180611ec157505f846001600160a01b03163b115b15611ed657611ece6120a6565b9150506108b8565b8015611f0057604051639996b31560e01b81526001600160a01b038516600482015260240161066d565b3d15611f1357611f0e6120bf565b61135b565b60405163d6bda27560e01b815260040160405180910390fd5b34156105885760405163b398979f60e01b815260040160405180910390fd5b5f815f03611f5a57505f6111e7565b835f03611f6857505f6111e7565b6001600160801b03841115611f7e57505f6111e7565b845f03611f8c57505f6111e7565b5f84611f99815f19612444565b611fa39190612444565b905080841115611fb6575f9150506111e7565b5f858710611fc45785611fc6565b865b90505f87851015611fe057611fdb8589612384565b611fe2565b5f5b90505f878210611ff25787611ff4565b815b9050808311612009575f9450505050506111e7565b5f612014848a612384565b90505f612021838b612384565b90505f61202e8380612472565b90505f61203b8380612472565b90505f6120488383612384565b90505f612055828e612472565b90505f6127108f60026120689190612472565b6120729190612472565b905061207e82826120ca565b9b505050505050505050505050949350505050565b5f5f5f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b5f825f036120d957505f6108b8565b5f6120e48385612444565b90505f6120f18486612489565b9050801561210957612104826001612397565b61210b565b815b95945050505050565b5f60208284031215612124575f5ffd5b81356001600160e01b031981168114610e2b575f5ffd5b6001600160a01b038116811461136c575f5ffd5b5f5f60408385031215612160575f5ffd5b8235915060208301356121728161213b565b809150509250929050565b5f6020828403121561218d575f5ffd5b5035919050565b5f604082840312156121a4575f5ffd5b50919050565b5f5f606083850312156121bb575f5ffd5b6121c58484612194565b915060408301356121728161213b565b5f604082840312156121e5575f5ffd5b610e2b8383612194565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561222c5761222c6121ef565b604052919050565b5f5f60408385031215612245575f5ffd5b82356122508161213b565b9150602083013567ffffffffffffffff81111561226b575f5ffd5b8301601f8101851361227b575f5ffd5b803567ffffffffffffffff811115612295576122956121ef565b6122a8601f8201601f1916602001612203565b8181528660208385010111156122bc575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f606084860312156122ed575f5ffd5b833592506020840135915060408401356123068161213b565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f60408385031215612357575f5ffd5b82356123628161213b565b946020939093013593505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108b8576108b8612370565b808201808211156108b8576108b8612370565b5f602082840312156123ba575f5ffd5b815160ff81168114610e2b575f5ffd5b5f60408284031280156123db575f5ffd5b506040805190810167ffffffffffffffff811182821017156123ff576123ff6121ef565b604052823581526020928301359281019290925250919050565b5f60208284031215612429575f5ffd5b5051919050565b634e487b7160e01b5f52601260045260245ffd5b5f8261245257612452612430565b500490565b5f60208284031215612467575f5ffd5b8151610e2b8161213b565b80820281158282048414176108b8576108b8612370565b5f8261249757612497612430565b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680063c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa00a2646970667358221220d4ea43b7aa174b72dfe014eec326ada763b9ef878ce5b2a43c6e3139e2a00ea164736f6c63430008210033","sourceMap":"1198:14278:195:-:0;;;1084:4:100;1041:48;;3399:351:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3472:30:195;;;;;;:55;;-1:-1:-1;;;;;;3506:21:195;;;;3472:55;3464:79;;;;-1:-1:-1;;;3464:79:195;;;;;;;;;;;;-1:-1:-1;;;;;3553:43:195;;;;;;;3606:31;;;;;1641:42;3670:41;3647:64;;3721:22;:20;:22::i;:::-;3399:351;;1198:14278;;7709:422:99;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:99;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:99;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:99;-1:-1:-1;;;;;8033:33:99;;;;;8085:29;;638:50:219;;;8085:29:99;;626:2:219;611:18;8085:29:99;;;;;;;7979:146;7758:373;7709:422::o;14:177:219:-;93:13;;-1:-1:-1;;;;;135:31:219;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;494:200::-;1198:14278:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061014a575f3560e01c80638703c980116100b3578063ad3cb1cc1161006d578063ad3cb1cc14610468578063c5d7952d146104a5578063d547741f146104c4578063d6ef7af0146104e3578063de462b9714610502578063e20f2d8b14610521575f5ffd5b80638703c9801461035d57806391d148541461037c5780639242164f1461039b57806396723da01461040f578063a217fddf14610422578063a49eb07c14610435575f5ffd5b80632f2ff15d116101045780632f2ff15d146102ba57806333966a45146102d957806336568abe146102f85780634f1ef2861461031757806352d1902d1461032a5780637647691d1461033e575f5ffd5b806301ffc9a7146101ae57806305db2f41146101e257806313bac82014610223578063248a9ca3146102365780632495a599146102555780632c9e813d1461029b575f5ffd5b366101aa57610157610553565b7f000000000000000000000000000000000000000000000000000000000000000061019557604051635885ca3f60e11b815260040160405180910390fd5b61019f343361058a565b506101a861085e565b005b5f5ffd5b3480156101b9575f5ffd5b506101cd6101c8366004612114565b610888565b60405190151581526020015b60405180910390f35b3480156101ed575f5ffd5b506102157f8e24cef3d118e2320bff2d4ac4e82fd5ff0dd3a6e6044ca19f91cd3b6f84750e81565b6040519081526020016101d9565b61021561023136600461214f565b6108be565b348015610241575f5ffd5b5061021561025036600461217d565b6108db565b348015610260575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101d9565b3480156102a6575f5ffd5b506101a86102b53660046121aa565b6108fb565b3480156102c5575f5ffd5b506101a86102d436600461214f565b610c92565b3480156102e4575f5ffd5b506101a86102f33660046121d5565b610cb4565b348015610303575f5ffd5b506101a861031236600461214f565b610d68565b6101a8610325366004612234565b610da0565b348015610335575f5ffd5b50610215610dbf565b348015610349575f5ffd5b5061021561035836600461214f565b610dda565b348015610368575f5ffd5b506102156103773660046122db565b610ded565b348015610387575f5ffd5b506101cd61039636600461214f565b610e32565b3480156103a6575f5ffd5b506040805180820182525f808252602091820152815180830183525f5160206124dd5f395f51905f52548082527f63c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa01549183019182528351908152905191810191909152016101d9565b61021561041d3660046122db565b610e68565b34801561042d575f5ffd5b506102155f81565b348015610440575f5ffd5b507f63c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa0254610215565b348015610473575f5ffd5b50610498604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101d99190612311565b3480156104b0575f5ffd5b506102156104bf36600461217d565b610e7b565b3480156104cf575f5ffd5b506101a86104de36600461214f565b610e93565b3480156104ee575f5ffd5b506101a86104fd366004612346565b610eaf565b34801561050d575f5ffd5b5061021561051c36600461217d565b611070565b34801561052c575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610283565b61055b611088565b61058860017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b906110c8565b565b5f825f036105ab57604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b0382166105d257604051630d753d9b60e31b815260040160405180910390fd5b5f5160206124dd5f395f51905f525f7f00000000000000000000000000000000000000000000000000000000000000006106135761060e6110cf565b61061d565b61061d3447612384565b90505f7f00000000000000000000000000000000000000000000000000000000000000001561068057853480821461067657604051631f89f67160e01b8152600481019290925260248201526044015b60405180910390fd5b50503490506106f8565b5f3480156106aa57604051631f89f67160e01b81526004810192909252602482015260440161066d565b506106e290506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333089611186565b816106eb6110cf565b6106f59190612384565b90505b805f0361071857604051630a67890d60e11b815260040160405180910390fd5b60028301545f8184101561072c575f610736565b6107368285612384565b6040805180820190915286548152600187015460208201529091505f9061075f908385876111bc565b905080156107805780866002015f82825461077a9190612384565b90915550505b61078a8185612397565b6040516340c10f1960e01b81526001600160a01b038a81166004830152602482018390529198507f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f19906044015f604051808303815f87803b1580156107f6575f5ffd5b505af1158015610808573d5f5f3e3d5ffd5b5050604080518a8152602081018590526001600160a01b038c1693503392507f9030e93f976e327ab5ef1166d3fe5cfb0820f381770421bbfef5bc656fa15687910160405180910390a350505050505092915050565b6105885f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610582565b5f6001600160e01b03198216637965db0b60e01b14806108b857506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f6108c7610553565b6108d1838361058a565b90506108b861085e565b5f9081525f5160206124bd5f395f51905f52602052604090206001015490565b5f6109046111ef565b805490915060ff600160401b820416159067ffffffffffffffff165f8115801561092b5750825b90505f8267ffffffffffffffff1660011480156109475750303b155b905081158015610955575080155b156109735760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561099d57845460ff60401b1916600160401b1785555b6001600160a01b0386166109c45760405163d92e233d60e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015610a92577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6a91906123aa565b60ff16601214610a8d5760405163256774af60e11b815260040160405180910390fd5b610bb6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1291906123aa565b60ff167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b71573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9591906123aa565b60ff1614610bb65760405163256774af60e11b815260040160405180910390fd5b610bcd610bc8368990038901896123ca565b611217565b610bd56112b2565b610bdf5f876112ba565b50610c0a7f8e24cef3d118e2320bff2d4ac4e82fd5ff0dd3a6e6044ca19f91cd3b6f84750e876112ba565b5086355f5160206124dd5f395f51905f525560208701357f63c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa01558315610c8957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610c9b826108db565b610ca481611362565b610cae83836112ba565b50505050565b7f8e24cef3d118e2320bff2d4ac4e82fd5ff0dd3a6e6044ca19f91cd3b6f84750e610cde81611362565b610cf0610bc8368490038401846123ca565b81355f5160206124dd5f395f51905f528190556020808401357f63c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa01819055604080519384529183015280517f586734343936d3b8185acd03519434e1618f70bf3ffe0f67e7faf0c59392f3fd9281900390910190a15050565b6001600160a01b0381163314610d915760405163334bd91960e11b815260040160405180910390fd5b610d9b828261136f565b505050565b610da86113e8565b610db18261148c565b610dbb8282611637565b5050565b5f610dc86116f3565b505f51602061249d5f395f51905f5290565b5f610de3610553565b6108d1838361173c565b5f610df6610553565b610e00848361173c565b905082811015610e2357604051638199f5f360e01b815260040160405180910390fd5b610e2b61085e565b9392505050565b5f9182525f5160206124bd5f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f610e71610553565b610e00848361058a565b5f6108b8825f5160206124dd5f395f51905f52611a33565b610e9c826108db565b610ea581611362565b610cae838361136f565b610eb7610553565b5f610ec181611362565b5f5160206124dd5f395f51905f526001600160a01b038416610ef657604051630d753d9b60e31b815260040160405180910390fd5b825f03610f1657604051631f2a200560e01b815260040160405180910390fd5b8060020154831115610f3b576040516356e16dff60e11b815260040160405180910390fd5b82816002015f828254610f4e9190612384565b90915550507f000000000000000000000000000000000000000000000000000000000000000015610fef575f846001600160a01b0316846040515f6040518083038185875af1925050503d805f8114610fc2576040519150601f19603f3d011682016040523d82523d5f602084013e610fc7565b606091505b5050905080610fe957604051634c0e79fb60e11b815260040160405180910390fd5b50611023565b6110236001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611a8f565b836001600160a01b03167f8a43c4352486ec339f487f64af78ca5cbf06cd47833f073d3baf3a193e5031618460405161105e91815260200190565b60405180910390a25050610dbb61085e565b5f6108b8825f5160206124dd5f395f51905f52611ac4565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c1561058857604051633ee5aeb560e01b815260040160405180910390fd5b80825d5050565b5f7f0000000000000000000000000000000000000000000000000000000000000000156110fb57504790565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561115d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111819190612419565b905090565b611194848484846001611b15565b610cae57604051635274afe760e01b81526001600160a01b038516600482015260240161066d565b5f5f6111d185875f0151886020015186611b82565b9050838111156111e457839150506111e7565b90505b949350505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006108b8565b80516001600160801b0310156112405760405163416aebb560e11b815260040160405180910390fd5b6127108160200151111561126757604051632f62f0d960e21b815260040160405180910390fd5b80515f036112725750565b80515f90611281815f19612444565b61128b9190612444565b90508082602001511115610dbb57604051632f62f0d960e21b815260040160405180910390fd5b610588611cb7565b5f5f5160206124bd5f395f51905f526112d38484610e32565b611352575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556113083390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506108b8565b5f9150506108b8565b5092915050565b61136c8133611cdc565b50565b5f5f5160206124bd5f395f51905f526113888484610e32565b15611352575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506108b8565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061146e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114625f51602061249d5f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156105885760405163703e46dd60e11b815260040160405180910390fd5b5f61149681611362565b5f8290505f7f000000000000000000000000000000000000000000000000000000000000000090505f826001600160a01b0316632495a5996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151f9190612457565b905081816001600160a01b03808216908316146115625760405163f5e9e85360e01b81526001600160a01b0392831660048201529116602482015260440161066d565b50505f7f000000000000000000000000000000000000000000000000000000000000000090505f846001600160a01b031663e20f2d8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e99190612457565b905081816001600160a01b038082169083161461162c57604051638aa5406760e01b81526001600160a01b0392831660048201529116602482015260440161066d565b505050505050505050565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611691575060408051601f3d908101601f1916820190925261168e91810190612419565b60015b6116b957604051634c9c8ce360e01b81526001600160a01b038316600482015260240161066d565b5f51602061249d5f395f51905f5281146116e957604051632a87526960e21b81526004810182905260240161066d565b610d9b8383611d15565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105885760405163703e46dd60e11b815260040160405180910390fd5b5f825f0361175d57604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b03821661178457604051630d753d9b60e31b815260040160405180910390fd5b5f5160206124dd5f395f51905f525f61179d8583611ac4565b90506117a98186612384565b604051632770a7eb60e21b8152336004820152602481018790529093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639dc29fac906044015f604051808303815f87803b158015611811575f5ffd5b505af1158015611823573d5f5f3e3d5ffd5b505050505f8311156119c7577f0000000000000000000000000000000000000000000000000000000000000000156118ec57824710156118765760405163bb55fd2760e01b815260040160405180910390fd5b5f846001600160a01b0316846040515f6040518083038185875af1925050503d805f81146118bf576040519150601f19603f3d011682016040523d82523d5f602084013e6118c4565b606091505b50509050806118e657604051634c0e79fb60e11b815260040160405180910390fd5b506119c7565b6040516370a0823160e01b815230600482015283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611950573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119749190612419565b10156119935760405163bb55fd2760e01b815260040160405180910390fd5b6119c76001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611a8f565b80156119e65780826002015f8282546119e09190612397565b90915550505b60408051848152602081018390526001600160a01b0386169133917e04d6f644fc2d087d5be8fde32a4db2f8c58d96f5bb217130b5ca6d5af8f21d910160405180910390a3505092915050565b5f5f611a3d6110cf565b60028401549091505f81831015611a54575f611a5e565b611a5e8284612384565b604080518082019091528654815260018701546020820152909150611a85908284896111bc565b9695505050505050565b611a9c8383836001611d6a565b610d9b57604051635274afe760e01b81526001600160a01b038416600482015260240161066d565b5f5f611ace6110cf565b60028401549091505f81831015611ae5575f611aef565b611aef8284612384565b604080518082019091528654815260018701546020820152909150611a85908288611dcc565b6040516323b872dd60e01b5f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f51148316611b71578383151615611b65573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b5f831580611b8e575081155b15611b9a57505f6111e7565b6001600160801b03841115611bb057505f6111e7565b5f84611bbd815f19612444565b611bc79190612444565b905080841115611bda575f9150506111e7565b5f858710611be85785611bea565b865b90505f611bf8885f19612384565b851115611c0757505f19611c14565b611c118589612397565b90505b86811115611c1f5750855b818111611c31575f93505050506111e7565b5f611c3c8389612384565b90505f611c49838a612384565b90505f611c568380612472565b90505f611c638380612472565b90505f611c708284612384565b90505f611c7d828d612472565b90505f612710611c8e8f6002612472565b611c989190612472565b9050611ca48183612444565b9f9e505050505050505050505050505050565b611cbf611e17565b61058857604051631afcd79f60e31b815260040160405180910390fd5b611ce68282610e32565b610dbb5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161066d565b611d1e82611e30565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611d6257610d9b8282611e93565b610dbb611f2c565b60405163a9059cbb60e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316611dc0578383151615611db4573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f5f611de184865f0151876020015186611f4b565b905082841115611df2579050610e2b565b5f81851015611e01575f611e0b565b611e0b8286612384565b9050611a858185612384565b5f611e206111ef565b54600160401b900460ff16919050565b806001600160a01b03163b5f03611e6557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161066d565b5f51602061249d5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f611ea08484612093565b9050808015611ec157505f3d1180611ec157505f846001600160a01b03163b115b15611ed657611ece6120a6565b9150506108b8565b8015611f0057604051639996b31560e01b81526001600160a01b038516600482015260240161066d565b3d15611f1357611f0e6120bf565b61135b565b60405163d6bda27560e01b815260040160405180910390fd5b34156105885760405163b398979f60e01b815260040160405180910390fd5b5f815f03611f5a57505f6111e7565b835f03611f6857505f6111e7565b6001600160801b03841115611f7e57505f6111e7565b845f03611f8c57505f6111e7565b5f84611f99815f19612444565b611fa39190612444565b905080841115611fb6575f9150506111e7565b5f858710611fc45785611fc6565b865b90505f87851015611fe057611fdb8589612384565b611fe2565b5f5b90505f878210611ff25787611ff4565b815b9050808311612009575f9450505050506111e7565b5f612014848a612384565b90505f612021838b612384565b90505f61202e8380612472565b90505f61203b8380612472565b90505f6120488383612384565b90505f612055828e612472565b90505f6127108f60026120689190612472565b6120729190612472565b905061207e82826120ca565b9b505050505050505050505050949350505050565b5f5f5f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b5f825f036120d957505f6108b8565b5f6120e48385612444565b90505f6120f18486612489565b9050801561210957612104826001612397565b61210b565b815b95945050505050565b5f60208284031215612124575f5ffd5b81356001600160e01b031981168114610e2b575f5ffd5b6001600160a01b038116811461136c575f5ffd5b5f5f60408385031215612160575f5ffd5b8235915060208301356121728161213b565b809150509250929050565b5f6020828403121561218d575f5ffd5b5035919050565b5f604082840312156121a4575f5ffd5b50919050565b5f5f606083850312156121bb575f5ffd5b6121c58484612194565b915060408301356121728161213b565b5f604082840312156121e5575f5ffd5b610e2b8383612194565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561222c5761222c6121ef565b604052919050565b5f5f60408385031215612245575f5ffd5b82356122508161213b565b9150602083013567ffffffffffffffff81111561226b575f5ffd5b8301601f8101851361227b575f5ffd5b803567ffffffffffffffff811115612295576122956121ef565b6122a8601f8201601f1916602001612203565b8181528660208385010111156122bc575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f606084860312156122ed575f5ffd5b833592506020840135915060408401356123068161213b565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f60408385031215612357575f5ffd5b82356123628161213b565b946020939093013593505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108b8576108b8612370565b808201808211156108b8576108b8612370565b5f602082840312156123ba575f5ffd5b815160ff81168114610e2b575f5ffd5b5f60408284031280156123db575f5ffd5b506040805190810167ffffffffffffffff811182821017156123ff576123ff6121ef565b604052823581526020928301359281019290925250919050565b5f60208284031215612429575f5ffd5b5051919050565b634e487b7160e01b5f52601260045260245ffd5b5f8261245257612452612430565b500490565b5f60208284031215612467575f5ffd5b8151610e2b8161213b565b80820281158282048414176108b8576108b8612370565b5f8261249757612497612430565b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680063c90750c40e4ec3ae62a755935b126c2e8aa4b2b6c7a4a02d9adec8efbbaa00a2646970667358221220d4ea43b7aa174b72dfe014eec326ada763b9ef878ce5b2a43c6e3139e2a00ea164736f6c63430008210033","sourceMap":"1198:14278:195:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1239:21:114;:19;:21::i;:::-;15381:20:195::1;15373:56;;;;-1:-1:-1::0;;;15373:56:195::1;;;;;;;;;;;;15439:28;15445:9;15456:10;15439:5;:28::i;:::-;;1281:20:114::0;:18;:20::i;:::-;1198:14278:195;;;;;3527:202:127;;;;;;;;;;-1:-1:-1;3527:202:127;;;;;:::i;:::-;;:::i;:::-;;;470:14:219;;463:22;445:41;;433:2;418:18;3527:202:127;;;;;;;;1471:67:195;;;;;;;;;;;;1514:24;1471:67;;;;;643:25:219;;;631:2;616:18;1471:67:195;497:177:219;5162:158:195;;;;;;:::i;:::-;;:::i;4843:191:127:-;;;;;;;;;;-1:-1:-1;4843:191:127;;;;;:::i;:::-;;:::i;7759:98:195:-;;;;;;;;;;-1:-1:-1;7834:16:195;7759:98;;;-1:-1:-1;;;;;1780:32:219;;;1762:51;;1750:2;1735:18;7759:98:195;1600:219:219;3989:834:195;;;;;;;;;;-1:-1:-1;3989:834:195;;;;;:::i;:::-;;:::i;5330:136:127:-;;;;;;;;;;-1:-1:-1;5330:136:127;;;;;:::i;:::-;;:::i;8624:238:195:-;;;;;;;;;;-1:-1:-1;8624:238:195;;;;;:::i;:::-;;:::i;6432:245:127:-;;;;;;;;;;-1:-1:-1;6432:245:127;;;;;:::i;:::-;;:::i;3911:214:100:-;;;;;;:::i;:::-;;:::i;3466:126::-;;;;;;;;;;;;;:::i;6172:154:195:-;;;;;;;;;;-1:-1:-1;6172:154:195;;;;;:::i;:::-;;:::i;6643:266::-;;;;;;;;;;-1:-1:-1;6643:266:195;;;;;:::i;:::-;;:::i;3816:207:127:-;;;;;;;;;;-1:-1:-1;3816:207:127;;;;;:::i;:::-;;:::i;8084:147:195:-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;8176:48:195;;;;;;;-1:-1:-1;;;;;;;;;;;8176:48:195;;;;;;;;;;;;8084:147;;5004:32:219;;;5074:24;;5052:20;;;5045:54;;;;4977:18;8084:147:195;4800:305:219;5640:278:195;;;;;;:::i;:::-;;:::i;2424:49:127:-;;;;;;;;;;-1:-1:-1;2424:49:127;2469:4;2424:49;;8322:118:195;;;;;;;;;;-1:-1:-1;8393:40:195;;8322:118;;1732:58:100;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1732:58:100;;;;;;;;;;;;:::i;7184:159:195:-;;;;;;;;;;-1:-1:-1;7184:159:195;;;;;:::i;:::-;;:::i;5746:138:127:-;;;;;;;;;;-1:-1:-1;5746:138:127;;;;;:::i;:::-;;:::i;9143:720:195:-;;;;;;;;;;-1:-1:-1;9143:720:195;;;;;:::i;:::-;;:::i;7539:160::-;;;;;;;;;;-1:-1:-1;7539:160:195;;;;;:::i;:::-;;:::i;7936:86::-;;;;;;;;;;-1:-1:-1;8003:12:195;7936:86;;1965:315:114;2119:25;:23;:25::i;:::-;2219:54;2268:4;661:66;2219:41;:48;;:54::i;:::-;1965:315::o;11747:1481:195:-;11813:17;11850:6;11860:1;11850:11;11842:34;;;;-1:-1:-1;;;11842:34:195;;;;;;;;;;;;-1:-1:-1;;;;;11894:22:195;;11886:47;;;;-1:-1:-1;;;11886:47:195;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11944:33:195;12166:20;:79;;12225:20;:18;:20::i;:::-;12166:79;;;12189:33;12213:9;12189:21;:33;:::i;:::-;12142:103;;12255:16;12286:20;12282:377;;;12343:6;12330:9;:19;;;12322:64;;;;-1:-1:-1;;;12322:64:195;;;;;6801:25:219;;;;6842:18;;;6835:34;6774:18;;12322:64:195;;;;;;;;;;;12411:9;12400:20;;12282:377;;;12472:1;12459:9;:14;;12451:54;;;;-1:-1:-1;;;12451:54:195;;;;;6801:25:219;;;;6842:18;;;6835:34;6774:18;;12451:54:195;6627:248:219;12451:54:195;-1:-1:-1;12519:68:195;;-1:-1:-1;;;;;;12519:16:195;:33;12553:10;12573:4;12580:6;12519:33;:68::i;:::-;12635:13;12612:20;:18;:20::i;:::-;:36;;;;:::i;:::-;12601:47;;12282:377;12676:8;12688:1;12676:13;12668:46;;;;-1:-1:-1;;;12668:46:195;;;;;;;;;;;;12747:12;;;;12725:19;12866:28;;;;:62;;12927:1;12866:62;;;12897:27;12913:11;12897:13;:27;:::i;:::-;12955;;;;;;;;;;;;;;;;;;;;;12840:88;;-1:-1:-1;12938:14:195;;12955:67;;12840:88;13000:11;13013:8;12955:27;:67::i;:::-;12938:84;-1:-1:-1;13037:10:195;;13033:38;;13065:6;13049:1;:12;;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;13033:38:195;13093:17;13104:6;13093:8;:17;:::i;:::-;13120:38;;-1:-1:-1;;;13120:38:195;;-1:-1:-1;;;;;7463:32:219;;;13120:38:195;;;7445:51:219;7512:18;;;7505:34;;;13081:29:195;;-1:-1:-1;13120:12:195;:17;;;;;;7418:18:219;;13120:38:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13173:48:195;;;6801:25:219;;;6857:2;6842:18;;6835:34;;;-1:-1:-1;;;;;13173:48:195;;;-1:-1:-1;13181:10:195;;-1:-1:-1;13173:48:195;;6774:18:219;13173:48:195;;;;;;;11832:1396;;;;;;11747:1481;;;;:::o;2286:110:114:-;2334:55;2383:5;661:66;2334:41;1666:115:118;3527:202:127;3612:4;-1:-1:-1;;;;;;3635:47:127;;-1:-1:-1;;;3635:47:127;;:87;;-1:-1:-1;;;;;;;;;;1119:40:136;;;3686:36:127;3628:94;3527:202;-1:-1:-1;;3527:202:127:o;5162:158:195:-;5249:17;1239:21:114;:19;:21::i;:::-;5290:23:195::1;5296:6;5304:8;5290:5;:23::i;:::-;5278:35;;1281:20:114::0;:18;:20::i;4843:191:127:-;4908:7;5003:14;;;-1:-1:-1;;;;;;;;;;;5003:14:127;;;;;:24;;;;4843:191::o;3989:834:195:-;4158:30:99;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:99;-1:-1:-1;;;4302:15:99;;;4301:16;;4348:14;;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;:16;;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:99;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:99;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:99;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:99;-1:-1:-1;;;5011:22:99;;;4977:67;-1:-1:-1;;;;;4114:26:195;::::1;4106:50;;;;-1:-1:-1::0;;;4106:50:195::1;;;;;;;;;;;;4170:20;4166:362;;;4237:12;-1:-1:-1::0;;;;;4214:46:195::1;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;4266:2;4214:54;4206:82;;;;-1:-1:-1::0;;;4206:82:195::1;;;;;;;;;;;;4166:362;;;4439:16;-1:-1:-1::0;;;;;4416:50:195::1;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4344:124;;4367:12;-1:-1:-1::0;;;;;4344:46:195::1;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:124;;;4319:198;;;;-1:-1:-1::0;;;4319:198:195::1;;;;;;;;;;;;4537:30;:28;;::::0;;::::1;::::0;::::1;:10:::0;:28:::1;:::i;:::-;;:30::i;:::-;4578:22;:20;:22::i;:::-;4610:44;2469:4:127;4641:12:195::0;4610:10:::1;:44::i;:::-;;4664:42;1514:24;4693:12;4664:10;:42::i;:::-;-1:-1:-1::0;8678:19:219;;-1:-1:-1;;;;;;;;;;;8706:21:219;8796:2;8785:14;;8772:28;8816:12;8809:29;5064:101:99;;;;5098:23;;-1:-1:-1;;;;5098:23:99;;;5140:14;;-1:-1:-1;9002:50:219;;5140:14:99;;8990:2:219;8975:18;5140:14:99;;;;;;;5064:101;4092:1079;;;;;3989:834:195;;:::o;5330:136:127:-;5404:18;5417:4;5404:12;:18::i;:::-;3298:16;3309:4;3298:10;:16::i;:::-;5434:25:::1;5445:4;5451:7;5434:10;:25::i;:::-;;5330:136:::0;;;:::o;8624:238:195:-;1514:24;3298:16:127;3309:4;3298:10;:16::i;:::-;8732:26:195::1;:24;;::::0;;::::1;::::0;::::1;:6:::0;:24:::1;:::i;:26::-;8678:19:219::0;;-1:-1:-1;;;;;;;;;;;8706:21:219;;;8796:2;8785:14;;;8772:28;8816:12;8809:29;;;8831:24:195::1;::::0;;9330::219;;;9446:20;;;9439:37;8831:24:195;;::::1;::::0;;;;;;;;::::1;8624:238:::0;;:::o;6432:245:127:-;-1:-1:-1;;;;;6525:34:127;;987:10:132;6525:34:127;6521:102;;6582:30;;-1:-1:-1;;;6582:30:127;;;;;;;;;;;6521:102;6633:37;6645:4;6651:18;6633:11;:37::i;:::-;;6432:245;;:::o;3911:214:100:-;2568:13;:11;:13::i;:::-;4026:36:::1;4044:17;4026;:36::i;:::-;4072:46;4094:17;4113:4;4072:21;:46::i;:::-;3911:214:::0;;:::o;3466:126::-;3527:7;2839:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3466:126:100;:::o;6172:154:195:-;6253:17;1239:21:114;:19;:21::i;:::-;6294:25:195::1;6302:6;6310:8;6294:7;:25::i;6643:266::-:0;6774:17;1239:21:114;:19;:21::i;:::-;6819:25:195::1;6827:6;6835:8;6819:7;:25::i;:::-;6807:37;;6875:6;6862:9;:19;;6854:48;;;;-1:-1:-1::0;;;6854:48:195::1;;;;;;;;;;;;1281:20:114::0;:18;:20::i;:::-;6643:266:195;;;;;:::o;3816:207:127:-;3893:4;3985:14;;;-1:-1:-1;;;;;;;;;;;3985:14:127;;;;;;;;-1:-1:-1;;;;;3985:31:127;;;;;;;;;;;;;;;3816:207::o;5640:278:195:-;5785:17;1239:21:114;:19;:21::i;:::-;5830:23:195::1;5836:6;5844:8;5830:5;:23::i;7184:159::-:0;7248:14;7281:55;7298:6;-1:-1:-1;;;;;;;;;;;7281:16:195;:55::i;5746:138:127:-;5821:18;5834:4;5821:12;:18::i;:::-;3298:16;3309:4;3298:10;:16::i;:::-;5851:26:::1;5863:4;5869:7;5851:11;:26::i;9143:720:195:-:0;1239:21:114;:19;:21::i;:::-;2469:4:127::1;3298:16;2469:4:::0;3298:10:::1;:16::i;:::-;-1:-1:-1::0;;;;;;;;;;;;;;;;9340:16:195;::::2;9332:41;;;;-1:-1:-1::0;;;9332:41:195::2;;;;;;;;;;;;9391:6;9401:1;9391:11:::0;9383:34:::2;;;;-1:-1:-1::0;;;9383:34:195::2;;;;;;;;;;;;9445:1;:12;;;9435:6;:22;;9427:54;;;;-1:-1:-1::0;;;9427:54:195::2;;;;;;;;;;;;9508:6;9492:1;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9528:20:195::2;9524:290;;;9625:12;9650:2;-1:-1:-1::0;;;;;9642:16:195::2;9666:6;9642:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9624:53;;;9699:7;9691:40;;;;-1:-1:-1::0;;;9691:40:195::2;;;;;;;;;;;;9550:192;9524:290;;;9762:41;-1:-1:-1::0;;;;;9762:16:195::2;:29;9792:2:::0;9796:6;9762:29:::2;:41::i;:::-;9845:2;-1:-1:-1::0;;;;;9828:28:195::2;;9849:6;9828:28;;;;643:25:219::0;;631:2;616:18;;497:177;9828:28:195::2;;;;;;;;9247:616;1270:1:114::1;1281:20:::0;:18;:20::i;7539:160:195:-;7602:17;7638:54;7654:6;-1:-1:-1;;;;;;;;;;;7638:15:195;:54::i;1802:157:114:-;661:66;3375:11:118;1860:93:114;;;1912:30;;-1:-1:-1;;;1912:30:114;;;;;;;;;;;3491:139:118;3608:5;3602:4;3595:19;3491:139;;:::o;10288:214:195:-;10340:7;10363:20;10359:79;;;-1:-1:-1;10406:21:195;;10288:214::o;10359:79::-;10454:41;;-1:-1:-1;;;10454:41:195;;10489:4;10454:41;;;1762:51:219;10454:16:195;-1:-1:-1;;;;;10454:26:195;;;;1735:18:219;;10454:41:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10447:48;;10288:214;:::o;1662:232:105:-;1767:47;1785:5;1792:4;1798:2;1802:5;1809:4;1767:17;:47::i;:::-;1762:126;;1837:40;;-1:-1:-1;;;1837:40:105;;-1:-1:-1;;;;;1780:32:219;;1837:40:105;;;1762:51:219;1735:18;;1837:40:105;1600:219:219;5341:353:193;5493:18;5527:14;5544:67;5559:9;5570:6;:22;;;5594:6;:8;;;5604:6;5544:14;:67::i;:::-;5527:84;;5635:10;5626:6;:19;5622:42;;;5654:10;5647:17;;;;;5622:42;5681:6;-1:-1:-1;5341:353:193;;;;;;;:::o;9071:205:99:-;9129:30;;3147:66;9186:27;8819:122;6855:421:193;6939:22;;-1:-1:-1;;;;;;6939:46:193;6931:72;;;;-1:-1:-1;;;6931:72:193;;;;;;;;;;;;4577:6;7021;:8;;;:23;;7013:44;;;;-1:-1:-1;;;7013:44:193;;;;;;;;;;;;7071:22;;;:27;7067:64;;6855:421;:::o;7067:64::-;7200:22;;7140:12;;7155:42;7200:22;-1:-1:-1;;7155:42:193;:::i;:::-;:67;;;;:::i;:::-;7140:82;;7252:4;7240:6;:8;;;:16;;7232:37;;;;-1:-1:-1;;;7232:37:193;;;;;;;;;;;3338:65:127;6929:20:99;:18;:20::i;7354:387:127:-;7431:4;-1:-1:-1;;;;;;;;;;;7521:22:127;7529:4;7535:7;7521;:22::i;:::-;7516:219;;7559:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7559:31:127;;;;;;;;;:38;;-1:-1:-1;;7559:38:127;7593:4;7559:38;;;7643:12;987:10:132;;908:96;7643:12:127;-1:-1:-1;;;;;7616:40:127;7634:7;-1:-1:-1;;;;;7616:40:127;7628:4;7616:40;;;;;;;;;;7677:4;7670:11;;;;;7516:219;7719:5;7712:12;;;;;7516:219;7437:304;7354:387;;;;:::o;4232:103::-;4298:30;4309:4;987:10:132;4298::127;:30::i;:::-;4232:103;:::o;7978:388::-;8056:4;-1:-1:-1;;;;;;;;;;;8145:22:127;8153:4;8159:7;8145;:22::i;:::-;8141:219;;;8217:5;8183:14;;;;;;;;;;;-1:-1:-1;;;;;8183:31:127;;;;;;;;;;:39;;-1:-1:-1;;8183:39:127;;;8241:40;987:10:132;;8183:14:127;;8241:40;;8217:5;8241:40;8302:4;8295:11;;;;;4328:312:100;4408:4;-1:-1:-1;;;;;4417:6:100;4400:23;;;:120;;;4514:6;-1:-1:-1;;;;;4478:42:100;:32;-1:-1:-1;;;;;;;;;;;1524:53:96;-1:-1:-1;;;;;1524:53:96;;1446:138;4478:32:100;-1:-1:-1;;;;;4478:42:100;;;4400:120;4383:251;;;4594:29;;-1:-1:-1;;;4594:29:100;;;;;;;;;;;14594:670:195;2469:4:127;3298:16;2469:4;3298:10;:16::i;:::-;14710:26:195::1;14764:17;14710:73;;14793:26;14830:16;14793:54;;14857:24;14892:9;-1:-1:-1::0;;;;;14892:25:195::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14857:63:::0;-1:-1:-1;14958:18:195;14857:63;-1:-1:-1;;;;;14938:38:195;;::::1;::::0;;::::1;;14930:110;;;::::0;-1:-1:-1;;;14930:110:195;;-1:-1:-1;;;;;10815:32:219;;;14930:110:195::1;::::0;::::1;10797:51:219::0;10884:32;;10864:18;;;10857:60;10770:18;;14930:110:195::1;10623:300:219::0;14930:110:195::1;;;15051:22;15084:12;15051:46;;15107:20;15138:9;-1:-1:-1::0;;;;;15138:16:195::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15107:50:::0;-1:-1:-1;15191:14:195;15107:50;-1:-1:-1;;;;;15175:30:195;;::::1;::::0;;::::1;;15167:90;;;::::0;-1:-1:-1;;;15167:90:195;;-1:-1:-1;;;;;10815:32:219;;;15167:90:195::1;::::0;::::1;10797:51:219::0;10884:32;;10864:18;;;10857:60;10770:18;;15167:90:195::1;10623:300:219::0;15167:90:195::1;;;14700:564;;;;;14594:670:::0;;:::o;5782:538:100:-;5899:17;-1:-1:-1;;;;;5881:50:100;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5881:52:100;;;;;;;;-1:-1:-1;;5881:52:100;;;;;;;;;;;;:::i;:::-;;;5877:437;;6243:60;;-1:-1:-1;;;6243:60:100;;-1:-1:-1;;;;;1780:32:219;;6243:60:100;;;1762:51:219;1735:18;;6243:60:100;1600:219:219;5877:437:100;-1:-1:-1;;;;;;;;;;;5975:40:100;;5971:120;;6042:34;;-1:-1:-1;;;6042:34:100;;;;;643:25:219;;;616:18;;6042:34:100;497:177:219;5971:120:100;6104:54;6134:17;6153:4;6104:29;:54::i;4757:213::-;4831:4;-1:-1:-1;;;;;4840:6:100;4823:23;;4819:145;;4924:29;;-1:-1:-1;;;4924:29:100;;;;;;;;;;;13322:1170:195;13390:17;13427:6;13437:1;13427:11;13419:34;;;;-1:-1:-1;;;13419:34:195;;;;;;;;;;;;-1:-1:-1;;;;;13471:22:195;;13463:47;;;;-1:-1:-1;;;13463:47:195;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13521:33:195;13616:26;13632:6;2471:66;13616:15;:26::i;:::-;13596:46;-1:-1:-1;13664:18:195;13596:46;13664:6;:18;:::i;:::-;13749:37;;-1:-1:-1;;;13749:37:195;;13767:10;13749:37;;;7445:51:219;7512:18;;;7505:34;;;13652:30:195;;-1:-1:-1;13749:12:195;-1:-1:-1;;;;;13749:17:195;;;;7418:18:219;;13749:37:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13812:1;13800:9;:13;13796:567;;;13833:20;13829:524;;;13906:9;13881:21;:34;;13873:68;;;;-1:-1:-1;;;13873:68:195;;;;;;;;;;;;14024:12;14049:8;-1:-1:-1;;;;;14041:22:195;14071:9;14041:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14023:62;;;14111:7;14103:40;;;;-1:-1:-1;;;14103:40:195;;;;;;;;;;;;13855:303;13829:524;;;14190:41;;-1:-1:-1;;;14190:41:195;;14225:4;14190:41;;;1762:51:219;14235:9:195;;14190:16;-1:-1:-1;;;;;14190:26:195;;;;1735:18:219;;14190:41:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;14182:88;;;;-1:-1:-1;;;14182:88:195;;;;;;;;;;;;14288:50;-1:-1:-1;;;;;14288:16:195;:29;14318:8;14328:9;14288:29;:50::i;:::-;14376:13;;14372:44;;14407:9;14391:1;:12;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;14372:44:195;14432:53;;;6801:25:219;;;6857:2;6842:18;;6835:34;;;-1:-1:-1;;;;;14432:53:195;;;14442:10;;14432:53;;6774:18:219;14432:53:195;;;;;;;13409:1083;;13322:1170;;;;:::o;10589:481::-;10688:14;10714:15;10732:20;:18;:20::i;:::-;10784:12;;;;10714:38;;-1:-1:-1;10762:19:195;10935:22;;;;:50;;10984:1;10935:50;;;10960:21;10970:11;10960:7;:21;:::i;:::-;11004:27;;;;;;;;;;;;;;;;;;;;;10915:70;;-1:-1:-1;11004:59:195;;10915:70;11043:11;11056:6;11004:27;:59::i;:::-;10995:68;10589:481;-1:-1:-1;;;;;;10589:481:195:o;1219:204:105:-;1306:37;1320:5;1327:2;1331:5;1338:4;1306:13;:37::i;:::-;1301:116;;1366:40;;-1:-1:-1;;;1366:40:105;;-1:-1:-1;;;;;1780:32:219;;1366:40:105;;;1762:51:219;1735:18;;1366:40:105;1600:219:219;11152:500:195;11274:17;11307:15;11325:20;:18;:20::i;:::-;11377:12;;;;11307:38;;-1:-1:-1;11355:19:195;11528:22;;;;:50;;11577:1;11528:50;;;11553:21;11563:11;11553:7;:21;:::i;:::-;11600:26;;;;;;;;;;;;;;;;;;;;;11508:70;;-1:-1:-1;11600:45:195;;11508:70;11638:6;11600:26;:45::i;10165:1393:105:-;10460:4;10454:11;-1:-1:-1;;;10323:12:105;10478:22;;;-1:-1:-1;;;;;10526:26:105;;;10520:4;10513:40;10579:24;;10573:4;10566:38;10624:4;10617:19;;;10323:12;10700:4;10323:12;10688:4;10323:12;;10672:5;10665;10660:45;10649:56;;10917:1;10910:4;10904:11;10901:18;10892:7;10888:32;10878:606;;11049:6;11039:7;11032:15;11028:28;11025:165;;;11105:16;11099:4;11094:3;11079:43;11155:16;11150:3;11143:29;11025:165;11466:1;11458:5;11446:18;11443:25;11424:16;11417:24;11413:56;11404:7;11400:70;11389:81;;10878:606;11504:4;11497:17;-1:-1:-1;11540:1:105;11534:4;11527:15;10165:1393;;-1:-1:-1;;;;;10165:1393:105:o;7282:1484:193:-;7378:17;7411:6;;;:21;;-1:-1:-1;7421:11:193;;7411:21;7407:60;;;-1:-1:-1;7455:1:193;7448:8;;7407:60;-1:-1:-1;;;;;7480:24:193;;7476:63;;;-1:-1:-1;7527:1:193;7520:8;;7476:63;7548:12;7587:1;7563:21;7587:1;-1:-1:-1;;7563:21:193;:::i;:::-;:25;;;;:::i;:::-;7548:40;;7607:4;7602:2;:9;7598:48;;;7634:1;7627:8;;;;;7598:48;7702:13;7722:1;7718;:5;:13;;7730:1;7718:13;;;7726:1;7718:13;7702:29;-1:-1:-1;7763:11:193;7797:21;7817:1;-1:-1:-1;;7797:21:193;:::i;:::-;7788:6;:30;7784:177;;;-1:-1:-1;;;7784:177:193;;;7918:10;7922:6;7918:1;:10;:::i;:::-;7912:16;;7784:177;7980:1;7974:3;:7;7970:20;;;-1:-1:-1;7989:1:193;7970:20;8024:5;8017:3;:12;8013:51;;8052:1;8045:8;;;;;;;8013:51;8129:29;8161:9;8165:5;8161:1;:9;:::i;:::-;8129:41;-1:-1:-1;8194:27:193;8224:7;8228:3;8224:1;:7;:::i;:::-;8194:37;-1:-1:-1;8254:23:193;8280:45;8304:21;;8280:45;:::i;:::-;8254:71;-1:-1:-1;8335:21:193;8359:41;8381:19;;8359:41;:::i;:::-;8335:65;-1:-1:-1;8410:18:193;8431:31;8335:65;8431:15;:31;:::i;:::-;8410:52;-1:-1:-1;8596:17:193;8616:15;8410:52;8616:2;:15;:::i;:::-;8596:35;-1:-1:-1;8641:19:193;4577:6;8663:5;8667:1;8663;:5;:::i;:::-;:19;;;;:::i;:::-;8641:41;-1:-1:-1;8736:23:193;8641:41;8736:9;:23;:::i;:::-;8724:35;7282:1484;-1:-1:-1;;;;;;;;;;;;;;;7282:1484:193:o;7082:141:99:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:99;;;;;;;;;;;4465:197:127;4553:22;4561:4;4567:7;4553;:22::i;:::-;4548:108;;4598:47;;-1:-1:-1;;;4598:47:127;;-1:-1:-1;;;;;7463:32:219;;4598:47:127;;;7445:51:219;7512:18;;;7505:34;;;7418:18;;4598:47:127;7271:274:219;2269:344:96;2360:37;2379:17;2360:18;:37::i;:::-;2412:36;;-1:-1:-1;;;;;2412:36:96;;;;;;;;2463:11;;:15;2459:148;;2494:53;2523:17;2542:4;2494:28;:53::i;2459:148::-;2578:18;:16;:18::i;8373:1244:105:-;8600:4;8594:11;-1:-1:-1;;;8467:12:105;8618:22;;;-1:-1:-1;;;;;8666:24:105;;8660:4;8653:38;8711:4;8704:19;;;8467:12;8787:4;8467:12;8775:4;8467:12;;8759:5;8752;8747:45;8736:56;;9004:1;8997:4;8991:11;8988:18;8979:7;8975:32;8965:606;;9136:6;9126:7;9119:15;9115:28;9112:165;;;9192:16;9186:4;9181:3;9166:43;9242:16;9237:3;9230:29;9112:165;9553:1;9545:5;9533:18;9530:25;9511:16;9504:24;9500:56;9491:7;9487:70;9476:81;;8965:606;9591:4;9584:17;-1:-1:-1;8373:1244:105;;-1:-1:-1;;;;8373:1244:105:o;6064:594:193:-;6195:17;6228:11;6242:66;6256:9;6267:6;:22;;;6291:6;:8;;;6301:6;6242:13;:66::i;:::-;6228:80;;6335:6;6323:9;:18;6319:120;;;6425:3;-1:-1:-1;6418:10:193;;6319:120;6542:25;6583:3;6570:9;:16;;:38;;6607:1;6570:38;;;6589:15;6601:3;6589:9;:15;:::i;:::-;6542:66;-1:-1:-1;6625:26:193;6542:66;6625:6;:26;:::i;8485:120:99:-;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:99;;;;;;-1:-1:-1;8485:120:99:o;1676:281:96:-;1753:17;-1:-1:-1;;;;;1753:29:96;;1786:1;1753:34;1749:119;;1810:47;;-1:-1:-1;;;1810:47:96;;-1:-1:-1;;;;;1780:32:219;;1810:47:96;;;1762:51:219;1735:18;;1810:47:96;1600:219:219;1749:119:96;-1:-1:-1;;;;;;;;;;;1877:73:96;;-1:-1:-1;;;;;;1877:73:96;-1:-1:-1;;;;;1877:73:96;;;;;;;;;;1676:281::o;4691:549:106:-;4774:12;4798;4813:47;4847:6;4855:4;4813:33;:47::i;:::-;4798:62;;4874:7;:72;;;;-1:-1:-1;4918:1:106;4612:16:110;4886:33:106;:59;;;;4944:1;4923:6;-1:-1:-1;;;;;4923:18:106;;:22;4886:59;4870:364;;;4969:25;:23;:25::i;:::-;4962:32;;;;;4870:364;5015:7;5011:223;;;5045:24;;-1:-1:-1;;;5045:24:106;;-1:-1:-1;;;;;1780:32:219;;5045:24:106;;;1762:51:219;1735:18;;5045:24:106;1600:219:219;5011:223:106;4612:16:110;5090:33:106;5086:148;;5139:27;:25;:27::i;:::-;5086:148;;;5204:19;;-1:-1:-1;;;5204:19:106;;;;;;;;;;;6140:122:96;6190:9;:13;6186:70;;6226:19;;-1:-1:-1;;;6226:19:96;;;;;;;;;;;8772:1624:193;8867:14;8897:6;8907:1;8897:11;8893:50;;-1:-1:-1;8931:1:193;8924:8;;8893:50;8957:1;8962;8957:6;8953:45;;-1:-1:-1;8986:1:193;8979:8;;8953:45;-1:-1:-1;;;;;9011:24:193;;9007:63;;;-1:-1:-1;9058:1:193;9051:8;;9007:63;9084:1;9089;9084:6;9080:98;;-1:-1:-1;9113:1:193;9106:8;;9080:98;9187:12;9226:1;9202:21;9226:1;-1:-1:-1;;9202:21:193;:::i;:::-;:25;;;;:::i;:::-;9187:40;;9246:4;9241:2;:9;9237:48;;;9273:1;9266:8;;;;;9237:48;9341:13;9361:1;9357;:5;:13;;9369:1;9357:13;;;9365:1;9357:13;9341:29;;9498:14;9525:1;9515:6;:11;;:28;;9533:10;9537:6;9533:1;:10;:::i;:::-;9515:28;;;9529:1;9515:28;9498:45;;9583:11;9606:1;9597:6;:10;:23;;9619:1;9597:23;;;9610:6;9597:23;9583:37;;9656:3;9647:5;:12;9643:51;;9682:1;9675:8;;;;;;;;9643:51;9756:29;9788:9;9792:5;9788:1;:9;:::i;:::-;9756:41;-1:-1:-1;9821:27:193;9851:7;9855:3;9851:1;:7;:::i;:::-;9821:37;-1:-1:-1;9881:23:193;9907:45;9931:21;;9907:45;:::i;:::-;9881:71;-1:-1:-1;9962:21:193;9986:41;10008:19;;9986:41;:::i;:::-;9962:65;-1:-1:-1;10037:18:193;10058:31;10074:15;9962:65;10058:31;:::i;:::-;10037:52;-1:-1:-1;10223:17:193;10243:15;10037:52;10243:2;:15;:::i;:::-;10223:35;;10268:19;4577:6;10294:1;10290;:5;;;;:::i;:::-;:19;;;;:::i;:::-;10268:41;;10357:32;10366:9;10377:11;10357:8;:32::i;:::-;10348:41;;8883:1513;;;;;;;;;;;8772:1624;;;;;;:::o;3412:242:110:-;3495:12;3633:4;3627;3620;3614:11;3607:4;3601;3597:15;3589:6;3582:5;3569:69;3558:80;3412:242;-1:-1:-1;;;3412:242:110:o;4727:334::-;4858:4;4852:11;4891:16;4876:32;;4961:16;4955:4;4948;4936:17;;4921:57;5026:16;5020:4;5016:27;5008:6;5004:40;4998:4;4991:54;4727:334;:::o;5128:223::-;5232:4;5226:11;5276:16;5270:4;5265:3;5250:43;5318:16;5313:3;5306:29;10402:199:193;10464:9;10489:1;10494;10489:6;10485:20;;-1:-1:-1;10504:1:193;10497:8;;10485:20;10515:9;10527:5;10531:1;10527;:5;:::i;:::-;10515:17;-1:-1:-1;10542:9:193;10554:5;10558:1;10554;:5;:::i;:::-;10542:17;-1:-1:-1;10576:6:193;;:18;;10589:5;:1;10593;10589:5;:::i;:::-;10576:18;;;10585:1;10576:18;10569:25;10402:199;-1:-1:-1;;;;;10402:199:193:o;14:286:219:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:219;;209:43;;199:71;;266:1;263;256:12;679:131;-1:-1:-1;;;;;754:31:219;;744:42;;734:70;;800:1;797;790:12;815:367;883:6;891;944:2;932:9;923:7;919:23;915:32;912:52;;;960:1;957;950:12;912:52;1005:23;;;-1:-1:-1;1104:2:219;1089:18;;1076:32;1117:33;1076:32;1117:33;:::i;:::-;1169:7;1159:17;;;815:367;;;;;:::o;1369:226::-;1428:6;1481:2;1469:9;1460:7;1456:23;1452:32;1449:52;;;1497:1;1494;1487:12;1449:52;-1:-1:-1;1542:23:219;;1369:226;-1:-1:-1;1369:226:219:o;1824:157::-;1886:5;1931:2;1922:6;1917:3;1913:16;1909:25;1906:45;;;1947:1;1944;1937:12;1906:45;-1:-1:-1;1969:6:219;1824:157;-1:-1:-1;1824:157:219:o;1986:379::-;2085:6;2093;2146:2;2134:9;2125:7;2121:23;2117:32;2114:52;;;2162:1;2159;2152:12;2114:52;2185:56;2233:7;2222:9;2185:56;:::i;:::-;2175:66;;2291:2;2280:9;2276:18;2263:32;2304:31;2329:5;2304:31;:::i;2742:244::-;2832:6;2885:2;2873:9;2864:7;2860:23;2856:32;2853:52;;;2901:1;2898;2891:12;2853:52;2924:56;2972:7;2961:9;2924:56;:::i;2991:127::-;3052:10;3047:3;3043:20;3040:1;3033:31;3083:4;3080:1;3073:15;3107:4;3104:1;3097:15;3123:275;3194:2;3188:9;3259:2;3240:13;;-1:-1:-1;;3236:27:219;3224:40;;3294:18;3279:34;;3315:22;;;3276:62;3273:88;;;3341:18;;:::i;:::-;3377:2;3370:22;3123:275;;-1:-1:-1;3123:275:219:o;3403:900::-;3480:6;3488;3541:2;3529:9;3520:7;3516:23;3512:32;3509:52;;;3557:1;3554;3547:12;3509:52;3596:9;3583:23;3615:31;3640:5;3615:31;:::i;:::-;3665:5;-1:-1:-1;3721:2:219;3706:18;;3693:32;3748:18;3737:30;;3734:50;;;3780:1;3777;3770:12;3734:50;3803:22;;3856:4;3848:13;;3844:27;-1:-1:-1;3834:55:219;;3885:1;3882;3875:12;3834:55;3925:2;3912:16;3951:18;3943:6;3940:30;3937:56;;;3973:18;;:::i;:::-;4015:57;4062:2;4039:17;;-1:-1:-1;;4035:31:219;4068:2;4031:40;4015:57;:::i;:::-;4095:6;4088:5;4081:21;4143:7;4138:2;4129:6;4125:2;4121:15;4117:24;4114:37;4111:57;;;4164:1;4161;4154:12;4111:57;4219:6;4214:2;4210;4206:11;4201:2;4194:5;4190:14;4177:49;4271:1;4266:2;4257:6;4250:5;4246:18;4242:27;4235:38;4292:5;4282:15;;;;;3403:900;;;;;:::o;4308:487::-;4385:6;4393;4401;4454:2;4442:9;4433:7;4429:23;4425:32;4422:52;;;4470:1;4467;4460:12;4422:52;4515:23;;;-1:-1:-1;4635:2:219;4620:18;;4607:32;;-1:-1:-1;4717:2:219;4702:18;;4689:32;4730:33;4689:32;4730:33;:::i;:::-;4782:7;4772:17;;;4308:487;;;;;:::o;5110:418::-;5259:2;5248:9;5241:21;5222:4;5291:6;5285:13;5334:6;5329:2;5318:9;5314:18;5307:34;5393:6;5388:2;5380:6;5376:15;5371:2;5360:9;5356:18;5350:50;5449:1;5444:2;5435:6;5424:9;5420:22;5416:31;5409:42;5519:2;5512;5508:7;5503:2;5495:6;5491:15;5487:29;5476:9;5472:45;5468:54;5460:62;;;5110:418;;;;:::o;5764:367::-;5832:6;5840;5893:2;5881:9;5872:7;5868:23;5864:32;5861:52;;;5909:1;5906;5899:12;5861:52;5948:9;5935:23;5967:31;5992:5;5967:31;:::i;:::-;6017:5;6095:2;6080:18;;;;6067:32;;-1:-1:-1;;;5764:367:219:o;6362:127::-;6423:10;6418:3;6414:20;6411:1;6404:31;6454:4;6451:1;6444:15;6478:4;6475:1;6468:15;6494:128;6561:9;;;6582:11;;;6579:37;;;6596:18;;:::i;7141:125::-;7206:9;;;7227:10;;;7224:36;;;7240:18;;:::i;7550:273::-;7618:6;7671:2;7659:9;7650:7;7646:23;7642:32;7639:52;;;7687:1;7684;7677:12;7639:52;7719:9;7713:16;7769:4;7762:5;7758:16;7751:5;7748:27;7738:55;;7789:1;7786;7779:12;7828:663;7916:6;7976:2;7964:9;7955:7;7951:23;7947:32;7991:2;7988:22;;;8006:1;8003;7996:12;7988:22;-1:-1:-1;8075:2:219;8069:9;;;8105:15;;8150:18;8135:34;;8171:22;;;8132:62;8129:88;;;8197:18;;:::i;:::-;8233:2;8226:22;8289:23;;8321:21;;8415:2;8400:18;;;8387:32;8435:15;;;8428:32;;;;-1:-1:-1;8328:6:219;7828:663;-1:-1:-1;7828:663:219:o;9905:184::-;9975:6;10028:2;10016:9;10007:7;10003:23;9999:32;9996:52;;;10044:1;10041;10034:12;9996:52;-1:-1:-1;10067:16:219;;9905:184;-1:-1:-1;9905:184:219:o;10094:127::-;10155:10;10150:3;10146:20;10143:1;10136:31;10186:4;10183:1;10176:15;10210:4;10207:1;10200:15;10226:120;10266:1;10292;10282:35;;10297:18;;:::i;:::-;-1:-1:-1;10331:9:219;;10226:120::o;10351:267::-;10437:6;10490:2;10478:9;10469:7;10465:23;10461:32;10458:52;;;10506:1;10503;10496:12;10458:52;10538:9;10532:16;10557:31;10582:5;10557:31;:::i;11391:168::-;11464:9;;;11495;;11512:15;;;11506:22;;11492:37;11482:71;;11533:18;;:::i;11843:112::-;11875:1;11901;11891:35;;11906:18;;:::i;:::-;-1:-1:-1;11940:9:219;;11843:112::o","linkReferences":{},"immutableReferences":{"146021":[{"start":611,"length":32},{"start":1722,"length":32},{"start":2708,"length":32},{"start":4092,"length":32},{"start":4368,"length":32},{"start":5277,"length":32},{"start":6403,"length":32},{"start":6560,"length":32}],"146024":[{"start":1327,"length":32},{"start":1971,"length":32},{"start":2540,"length":32},{"start":2839,"length":32},{"start":5479,"length":32},{"start":6088,"length":32}],"146026":[{"start":345,"length":32},{"start":1507,"length":32},{"start":1570,"length":32},{"start":2502,"length":32},{"start":3925,"length":32},{"start":4306,"length":32},{"start":6193,"length":32}],"26867":[{"start":5107,"length":32},{"start":5148,"length":32},{"start":5886,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","FEE_MANAGER_ROLE()":"05db2f41","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","feeParams()":"9242164f","feeSurplus()":"a49eb07c","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize((uint256,uint256),address)":"2c9e813d","proxiableUUID()":"52d1902d","quoteUnwrapFee(uint256)":"de462b97","quoteWrapReward(uint256)":"c5d7952d","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setFeeParams((uint256,uint256))":"33966a45","supportsInterface(bytes4)":"01ffc9a7","underlyingToken()":"2495a599","unwrap(uint256,address)":"7647691d","unwrapWithMinOut(uint256,uint256,address)":"8703c980","upgradeToAndCall(address,bytes)":"4f1ef286","withdrawRewards(address,uint256)":"d6ef7af0","wrap(uint256,address)":"13bac820","wrapWithMinOut(uint256,uint256,address)":"96723da0","zerc20()":"e20f2d8b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"underlyingToken_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zerc20_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DecimalMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidK\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InvalidMsgValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlippageExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnderlyingPullFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnderlyingSendFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expected\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actual\",\"type\":\"address\"}],\"name\":\"UnderlyingTokenMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"expected\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actual\",\"type\":\"address\"}],\"name\":\"Zerc20TokenMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroReceiver\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"targetLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"k\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IncentiveLib.FeeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"FeeParamsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"Unwrapped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"name\":\"Wrapped\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"targetLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"k\",\"type\":\"uint256\"}],\"internalType\":\"struct IncentiveLib.FeeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeSurplus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"targetLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"k\",\"type\":\"uint256\"}],\"internalType\":\"struct IncentiveLib.FeeParams\",\"name\":\"_feeParams\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"quoteUnwrapFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"quoteWrapReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"targetLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"k\",\"type\":\"uint256\"}],\"internalType\":\"struct IncentiveLib.FeeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"setFeeParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlyingToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"unwrap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"unwrapWithMinOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"wrap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"wrapWithMinOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zerc20\",\"outputs\":[{\"internalType\":\"contract IzERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Liquidity is derived from the underlying token balance; direct transfers (donations) intentionally      affect incentive calculations and are not ignored by separate accounting.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize((uint256,uint256),address)\":{\"params\":{\"_feeParams\":\"Incentive curve parameters for rewards and fees.\",\"initialOwner\":\"Account receiving admin and fee-manager roles.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"quoteUnwrapFee(uint256)\":{\"params\":{\"amount\":\"Amount of zERC20 to unwrap.\"},\"returns\":{\"feeAmount\":\"Fee charged in underlying units.\"}},\"quoteWrapReward(uint256)\":{\"params\":{\"amount\":\"Amount of underlying to wrap.\"},\"returns\":{\"reward\":\"Reward amount paid from fee surplus.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setFeeParams((uint256,uint256))\":{\"params\":{\"params\":\"New fee parameters.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"unwrap(uint256,address)\":{\"params\":{\"amount\":\"Amount of zERC20 to burn.\",\"receiver\":\"Address receiving the underlying.\"},\"returns\":{\"amountOut\":\"Underlying released after fees.\"}},\"unwrapWithMinOut(uint256,uint256,address)\":{\"params\":{\"amount\":\"Amount of zERC20 to burn.\",\"minOut\":\"Minimum acceptable underlying released.\",\"receiver\":\"Address receiving the underlying.\"},\"returns\":{\"amountOut\":\"Underlying released after fees.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdrawRewards(address,uint256)\":{\"details\":\"Only callable by admin. Uses low-level call for native token transfers.\",\"params\":{\"amount\":\"Amount to withdraw (validated <= feeSurplus)\",\"to\":\"Recipient address (validated non-zero)\"}},\"wrap(uint256,address)\":{\"params\":{\"amount\":\"Amount of underlying to deposit.\",\"receiver\":\"Address receiving minted zERC20.\"},\"returns\":{\"amountOut\":\"zERC20 minted, including any reward.\"}},\"wrapWithMinOut(uint256,uint256,address)\":{\"params\":{\"amount\":\"Amount of underlying to deposit.\",\"minOut\":\"Minimum acceptable zERC20 minted.\",\"receiver\":\"Address receiving minted zERC20.\"},\"returns\":{\"amountOut\":\"zERC20 minted, including any reward.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"FeeParamsUpdated((uint256,uint256))\":{\"notice\":\"Emitted when fee parameters are updated.\"},\"RewardsWithdrawn(address,uint256)\":{\"notice\":\"Emitted after admin withdraws fee surplus.\"},\"Unwrapped(address,address,uint256,uint256)\":{\"notice\":\"Emitted after a successful unwrap.\"},\"Wrapped(address,address,uint256,uint256)\":{\"notice\":\"Emitted after a successful wrap.\"}},\"kind\":\"user\",\"methods\":{\"FEE_MANAGER_ROLE()\":{\"notice\":\"Role allowed to update incentive curve parameters.\"},\"constructor\":{\"notice\":\"Locks implementation contracts on deployment.\"},\"feeParams()\":{\"notice\":\"Returns the incentive curve parameters.\"},\"feeSurplus()\":{\"notice\":\"Returns the fee surplus available for rewards and admin withdrawals.\"},\"initialize((uint256,uint256),address)\":{\"notice\":\"Initializes the liquidity manager with fee params and admin roles.\"},\"quoteUnwrapFee(uint256)\":{\"notice\":\"Quotes fee charged for unwrapping `amount` at current liquidity.\"},\"quoteWrapReward(uint256)\":{\"notice\":\"Quotes reward paid for wrapping `amount` at current liquidity.\"},\"setFeeParams((uint256,uint256))\":{\"notice\":\"Updates the incentive curve parameters.\"},\"underlyingToken()\":{\"notice\":\"Returns the wrapped underlying token.\"},\"unwrap(uint256,address)\":{\"notice\":\"Burns zERC20 from the caller and releases underlying to `receiver`.\"},\"unwrapWithMinOut(uint256,uint256,address)\":{\"notice\":\"Unwraps with a minimum output check to enforce slippage constraints.\"},\"withdrawRewards(address,uint256)\":{\"notice\":\"Withdraws accumulated fees to a specified address\"},\"wrap(uint256,address)\":{\"notice\":\"Pulls underlying from the caller and mints zERC20 to `receiver`.\"},\"wrapWithMinOut(uint256,uint256,address)\":{\"notice\":\"Wraps with a minimum output check to enforce slippage constraints.\"},\"zerc20()\":{\"notice\":\"Returns the zERC20 token minted/burned by this contract.\"}},\"notice\":\"Custodies underlying token liquidity and mints/burns zERC20 based on wrap/unwrap flows. Reward/fee curves follow the piecewise linear formulas described in docs/zerc20-liquidity.md.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/liquidity/LiquidityManager.sol\":\"LiquidityManager\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@create3-factory-1.0.0/=dependencies/create3-factory-1.0.0/\",\":@forge-std-1.14.0/=dependencies/forge-std-1.14.0/\",\":@gnsps-solidity-bytes-utils-0.8.4/=dependencies/gnsps-solidity-bytes-utils-0.8.4/\",\":@layerzerolabs-lz-evm-messagelib-v2-3.0.152/=dependencies/@layerzerolabs-lz-evm-messagelib-v2-3.0.152/\",\":@layerzerolabs-lz-evm-protocol-v2-3.0.152/=dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/\",\":@layerzerolabs-lz-evm-v1-0-7-3.0.152/=dependencies/@layerzerolabs-lz-evm-v1-0-7-3.0.152/\",\":@layerzerolabs-oapp-evm-0.4.1/=dependencies/@layerzerolabs-oapp-evm-0.4.1/\",\":@layerzerolabs-oapp-evm-upgradeable-0.1.3/=dependencies/@layerzerolabs-oapp-evm-upgradeable-0.1.3/\",\":@layerzerolabs-oft-evm-4.0.1/=dependencies/@layerzerolabs-oft-evm-4.0.1/\",\":@layerzerolabs-oft-evm-upgradeable-4.0.2/=dependencies/@layerzerolabs-oft-evm-upgradeable-4.0.2/\",\":@layerzerolabs-test-devtools-evm-foundry-8.0.1/=dependencies/@layerzerolabs-test-devtools-evm-foundry-8.0.1/\",\":@layerzerolabs/lz-evm-messagelib-v2/=dependencies/@layerzerolabs-lz-evm-messagelib-v2-3.0.152/\",\":@layerzerolabs/lz-evm-protocol-v2/=dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/\",\":@layerzerolabs/lz-evm-v1-0.7/=dependencies/@layerzerolabs-lz-evm-v1-0-7-3.0.152/\",\":@layerzerolabs/oapp-evm-upgradeable/=dependencies/@layerzerolabs-oapp-evm-upgradeable-0.1.3/\",\":@layerzerolabs/oapp-evm/=dependencies/@layerzerolabs-oapp-evm-0.4.1/\",\":@layerzerolabs/oft-evm-upgradeable/=dependencies/@layerzerolabs-oft-evm-upgradeable-4.0.2/\",\":@layerzerolabs/oft-evm/=dependencies/@layerzerolabs-oft-evm-4.0.1/\",\":@layerzerolabs/test-devtools-evm-foundry/=dependencies/@layerzerolabs-test-devtools-evm-foundry-8.0.1/\",\":@lz-address-book-1.0.0/=dependencies/lz-address-book-1.0.0/\",\":@openzeppelin-contracts-5.6.0-rc.0/=dependencies/@openzeppelin-contracts-5.6.0-rc.0/\",\":@openzeppelin-contracts-upgradeable-5.6.0-rc.0/=dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.0-rc.0/\",\":@poseidon-solidity-0.0.5/=dependencies/poseidon-solidity-0.0.5/\",\":create3-factory-1.0.0/=dependencies/create3-factory-1.0.0/src/\",\":create3-factory/=dependencies/create3-factory-1.0.0/src/\",\":forge-std-1.14.0/=dependencies/forge-std-1.14.0/src/\",\":forge-std/=dependencies/forge-std-1.14.0/src/\",\":gnsps-solidity-bytes-utils-0.8.4/=dependencies/gnsps-solidity-bytes-utils-0.8.4/contracts/\",\":lz-address-book-1.0.0/=dependencies/lz-address-book-1.0.0/src/\",\":lz-address-book/=dependencies/lz-address-book-1.0.0/src/\",\":poseidon-solidity-0.0.5/=dependencies/poseidon-solidity-0.0.5/\",\":poseidon-solidity/contracts/=dependencies/poseidon-solidity-0.0.5/\",\":solady-0.1.8/=dependencies/solady-0.1.8/src/\",\":solidity-bytes-utils/=dependencies/gnsps-solidity-bytes-utils-0.8.4/\"]},\"sources\":{\"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"dependencies/@layerzerolabs-oapp-evm-0.4.1/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"dependencies/@layerzerolabs-oapp-evm-0.4.1/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"dependencies/@layerzerolabs-oapp-evm-0.4.1/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"dependencies/@layerzerolabs-oft-evm-4.0.1/contracts/interfaces/IOFT.sol\":{\"keccak256\":\"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15\",\"dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x32bc84234be4e8530561353be2eb01bc46f7f8825e6f99057dc5ac8f16e624b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e6754d8829224004547cfd695a1db6d1d9364d1b57330a025974e9cb4a8fc70\",\"dweb:/ipfs/QmcKEVBeSZ9hqZoGiVW5YksyMKxW2KuroHR4qJn2ZTvx9Q\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0\",\"dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/LowLevelCall.sol\":{\"keccak256\":\"0x5d921bed9d2ee34d4b5665bee936dbe7e3193a29f80c33363e3038be2be2619d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7864ad4d630df2cfceea379d15ad6c9b8be4b0cf74c1fcafb4ddbcbb522e88bc\",\"dweb:/ipfs/QmUgDCvhG7bUmB2uxNEuQ4e9s7vPTbRR6aFzmrxhgQSe9a\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x73532d244f2f5cb160825b7b058de8a439a15fb7d918b1d6b0b579634d9daba9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d0533420785202d2dbc072a44cbf64e9525b68f29be307085089e1adc5d9b8b\",\"dweb:/ipfs/QmbDShdbLX2XN8uu2mR1aKM9ZLCxJKRxBnyfcBTV2GJhMz\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x4918e374e9ce84e9b196486bafbd46851d5e72ab315e31f0b1d7c443dcfea5bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ced247afc54a93a13922ebbd63add61130abe483ab5b5b78e7e991d564d150e\",\"dweb:/ipfs/QmTfxjcTgfekiguegjvYMyfqhyRNffui17f8xi86BCZNVt\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812\",\"dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y\"]},\"src/interfaces/ILiquidityManager.sol\":{\"keccak256\":\"0x81179790baf72a25913b4cd5b4b138841202560e3a3acb1085701c76f9453dcd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be00fe78af7550a57b494a322529270f7a84dc128bb2e56c67dd3f1b14a54e2c\",\"dweb:/ipfs/Qmb3SfNPJjw2UtK4eiA3DJiwHivtKG5K7xNdrmtSYdzSkF\"]},\"src/interfaces/IzERC20.sol\":{\"keccak256\":\"0x47676dd9a9f5b2e2c18b2ea1e6d580f0e9377cd72decdaf115232bf983edb5d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f45d81ef36c05cdd369bba3d09e668fcf127fb35301e42e8d2b373b181b09a8\",\"dweb:/ipfs/QmQEoQyh8S9ctvxPBnRkFHDvh4TuNYXpSA7aR49gm5LHiA\"]},\"src/libraries/IncentiveLib.sol\":{\"keccak256\":\"0x8e11cbcda75be011c970c845de0cf8aac2d72f2a7db386878cb140532a0528ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://74a46b1a4db2d0a030cd7b62185543c2cc91232a30e621f9c04d99a685fd2ba4\",\"dweb:/ipfs/QmR2dtVD3GD3vTNMW78FYkE4SG4Abk2FKpCKQL1QbaTaBV\"]},\"src/liquidity/LiquidityManager.sol\":{\"keccak256\":\"0xa4114251d966d36d1ca7169ee76b1dfffc5fb27ebc0d2e61f9970931ee966031\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a911db7722dd7d8d5a8d4402c7e41fcec58a939fec6ba19afa4ae4348cec4d14\",\"dweb:/ipfs/QmXdVPj7KCj8EcqBY1h1tHJU2FeN1dxowAtpybgripnbzX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"underlyingToken_","type":"address"},{"internalType":"address","name":"zerc20_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"DecimalMismatch"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InsufficientLiquidity"},{"inputs":[],"type":"error","name":"InsufficientRewards"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidK"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InvalidMsgValue"},{"inputs":[],"type":"error","name":"InvalidTarget"},{"inputs":[],"type":"error","name":"NativeTokenNotSupported"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlippageExceeded"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnderlyingPullFailed"},{"inputs":[],"type":"error","name":"UnderlyingSendFailed"},{"inputs":[{"internalType":"address","name":"expected","type":"address"},{"internalType":"address","name":"actual","type":"address"}],"type":"error","name":"UnderlyingTokenMismatch"},{"inputs":[{"internalType":"address","name":"expected","type":"address"},{"internalType":"address","name":"actual","type":"address"}],"type":"error","name":"Zerc20TokenMismatch"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[],"type":"error","name":"ZeroAmount"},{"inputs":[],"type":"error","name":"ZeroReceiver"},{"inputs":[{"internalType":"struct IncentiveLib.FeeParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"targetLiquidity","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"}],"indexed":false}],"type":"event","name":"FeeParamsUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"RewardsWithdrawn","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false},{"internalType":"uint256","name":"feeAmount","type":"uint256","indexed":false}],"type":"event","name":"Unwrapped","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false},{"internalType":"uint256","name":"reward","type":"uint256","indexed":false}],"type":"event","name":"Wrapped","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FEE_MANAGER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeParams","outputs":[{"internalType":"struct IncentiveLib.FeeParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"targetLiquidity","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeSurplus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct IncentiveLib.FeeParams","name":"_feeParams","type":"tuple","components":[{"internalType":"uint256","name":"targetLiquidity","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"}]},{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"quoteUnwrapFee","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"quoteWrapReward","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"struct IncentiveLib.FeeParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"targetLiquidity","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"setFeeParams"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"underlyingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unwrap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minOut","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unwrapWithMinOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawRewards"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"payable","type":"function","name":"wrap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minOut","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"payable","type":"function","name":"wrapWithMinOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zerc20","outputs":[{"internalType":"contract IzERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize((uint256,uint256),address)":{"params":{"_feeParams":"Incentive curve parameters for rewards and fees.","initialOwner":"Account receiving admin and fee-manager roles."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"quoteUnwrapFee(uint256)":{"params":{"amount":"Amount of zERC20 to unwrap."},"returns":{"feeAmount":"Fee charged in underlying units."}},"quoteWrapReward(uint256)":{"params":{"amount":"Amount of underlying to wrap."},"returns":{"reward":"Reward amount paid from fee surplus."}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setFeeParams((uint256,uint256))":{"params":{"params":"New fee parameters."}},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"unwrap(uint256,address)":{"params":{"amount":"Amount of zERC20 to burn.","receiver":"Address receiving the underlying."},"returns":{"amountOut":"Underlying released after fees."}},"unwrapWithMinOut(uint256,uint256,address)":{"params":{"amount":"Amount of zERC20 to burn.","minOut":"Minimum acceptable underlying released.","receiver":"Address receiving the underlying."},"returns":{"amountOut":"Underlying released after fees."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"withdrawRewards(address,uint256)":{"details":"Only callable by admin. Uses low-level call for native token transfers.","params":{"amount":"Amount to withdraw (validated <= feeSurplus)","to":"Recipient address (validated non-zero)"}},"wrap(uint256,address)":{"params":{"amount":"Amount of underlying to deposit.","receiver":"Address receiving minted zERC20."},"returns":{"amountOut":"zERC20 minted, including any reward."}},"wrapWithMinOut(uint256,uint256,address)":{"params":{"amount":"Amount of underlying to deposit.","minOut":"Minimum acceptable zERC20 minted.","receiver":"Address receiving minted zERC20."},"returns":{"amountOut":"zERC20 minted, including any reward."}}},"version":1},"userdoc":{"kind":"user","methods":{"FEE_MANAGER_ROLE()":{"notice":"Role allowed to update incentive curve parameters."},"constructor":{"notice":"Locks implementation contracts on deployment."},"feeParams()":{"notice":"Returns the incentive curve parameters."},"feeSurplus()":{"notice":"Returns the fee surplus available for rewards and admin withdrawals."},"initialize((uint256,uint256),address)":{"notice":"Initializes the liquidity manager with fee params and admin roles."},"quoteUnwrapFee(uint256)":{"notice":"Quotes fee charged for unwrapping `amount` at current liquidity."},"quoteWrapReward(uint256)":{"notice":"Quotes reward paid for wrapping `amount` at current liquidity."},"setFeeParams((uint256,uint256))":{"notice":"Updates the incentive curve parameters."},"underlyingToken()":{"notice":"Returns the wrapped underlying token."},"unwrap(uint256,address)":{"notice":"Burns zERC20 from the caller and releases underlying to `receiver`."},"unwrapWithMinOut(uint256,uint256,address)":{"notice":"Unwraps with a minimum output check to enforce slippage constraints."},"withdrawRewards(address,uint256)":{"notice":"Withdraws accumulated fees to a specified address"},"wrap(uint256,address)":{"notice":"Pulls underlying from the caller and mints zERC20 to `receiver`."},"wrapWithMinOut(uint256,uint256,address)":{"notice":"Wraps with a minimum output check to enforce slippage constraints."},"zerc20()":{"notice":"Returns the zERC20 token minted/burned by this contract."}},"version":1}},"settings":{"remappings":["@create3-factory-1.0.0/=dependencies/create3-factory-1.0.0/","@forge-std-1.14.0/=dependencies/forge-std-1.14.0/","@gnsps-solidity-bytes-utils-0.8.4/=dependencies/gnsps-solidity-bytes-utils-0.8.4/","@layerzerolabs-lz-evm-messagelib-v2-3.0.152/=dependencies/@layerzerolabs-lz-evm-messagelib-v2-3.0.152/","@layerzerolabs-lz-evm-protocol-v2-3.0.152/=dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/","@layerzerolabs-lz-evm-v1-0-7-3.0.152/=dependencies/@layerzerolabs-lz-evm-v1-0-7-3.0.152/","@layerzerolabs-oapp-evm-0.4.1/=dependencies/@layerzerolabs-oapp-evm-0.4.1/","@layerzerolabs-oapp-evm-upgradeable-0.1.3/=dependencies/@layerzerolabs-oapp-evm-upgradeable-0.1.3/","@layerzerolabs-oft-evm-4.0.1/=dependencies/@layerzerolabs-oft-evm-4.0.1/","@layerzerolabs-oft-evm-upgradeable-4.0.2/=dependencies/@layerzerolabs-oft-evm-upgradeable-4.0.2/","@layerzerolabs-test-devtools-evm-foundry-8.0.1/=dependencies/@layerzerolabs-test-devtools-evm-foundry-8.0.1/","@layerzerolabs/lz-evm-messagelib-v2/=dependencies/@layerzerolabs-lz-evm-messagelib-v2-3.0.152/","@layerzerolabs/lz-evm-protocol-v2/=dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/","@layerzerolabs/lz-evm-v1-0.7/=dependencies/@layerzerolabs-lz-evm-v1-0-7-3.0.152/","@layerzerolabs/oapp-evm-upgradeable/=dependencies/@layerzerolabs-oapp-evm-upgradeable-0.1.3/","@layerzerolabs/oapp-evm/=dependencies/@layerzerolabs-oapp-evm-0.4.1/","@layerzerolabs/oft-evm-upgradeable/=dependencies/@layerzerolabs-oft-evm-upgradeable-4.0.2/","@layerzerolabs/oft-evm/=dependencies/@layerzerolabs-oft-evm-4.0.1/","@layerzerolabs/test-devtools-evm-foundry/=dependencies/@layerzerolabs-test-devtools-evm-foundry-8.0.1/","@lz-address-book-1.0.0/=dependencies/lz-address-book-1.0.0/","@openzeppelin-contracts-5.6.0-rc.0/=dependencies/@openzeppelin-contracts-5.6.0-rc.0/","@openzeppelin-contracts-upgradeable-5.6.0-rc.0/=dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.0-rc.0/","@poseidon-solidity-0.0.5/=dependencies/poseidon-solidity-0.0.5/","create3-factory-1.0.0/=dependencies/create3-factory-1.0.0/src/","create3-factory/=dependencies/create3-factory-1.0.0/src/","forge-std-1.14.0/=dependencies/forge-std-1.14.0/src/","forge-std/=dependencies/forge-std-1.14.0/src/","gnsps-solidity-bytes-utils-0.8.4/=dependencies/gnsps-solidity-bytes-utils-0.8.4/contracts/","lz-address-book-1.0.0/=dependencies/lz-address-book-1.0.0/src/","lz-address-book/=dependencies/lz-address-book-1.0.0/src/","poseidon-solidity-0.0.5/=dependencies/poseidon-solidity-0.0.5/","poseidon-solidity/contracts/=dependencies/poseidon-solidity-0.0.5/","solady-0.1.8/=dependencies/solady-0.1.8/src/","solidity-bytes-utils/=dependencies/gnsps-solidity-bytes-utils-0.8.4/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/liquidity/LiquidityManager.sol":"LiquidityManager"},"evmVersion":"prague","libraries":{}},"sources":{"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"dependencies/@layerzerolabs-lz-evm-protocol-v2-3.0.152/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"dependencies/@layerzerolabs-oapp-evm-0.4.1/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"dependencies/@layerzerolabs-oapp-evm-0.4.1/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"dependencies/@layerzerolabs-oapp-evm-0.4.1/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"dependencies/@layerzerolabs-oft-evm-4.0.1/contracts/interfaces/IOFT.sol":{"keccak256":"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0","urls":["bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15","dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x32bc84234be4e8530561353be2eb01bc46f7f8825e6f99057dc5ac8f16e624b3","urls":["bzz-raw://3e6754d8829224004547cfd695a1db6d1d9364d1b57330a025974e9cb4a8fc70","dweb:/ipfs/QmcKEVBeSZ9hqZoGiVW5YksyMKxW2KuroHR4qJn2ZTvx9Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098","urls":["bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0","dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/LowLevelCall.sol":{"keccak256":"0x5d921bed9d2ee34d4b5665bee936dbe7e3193a29f80c33363e3038be2be2619d","urls":["bzz-raw://7864ad4d630df2cfceea379d15ad6c9b8be4b0cf74c1fcafb4ddbcbb522e88bc","dweb:/ipfs/QmUgDCvhG7bUmB2uxNEuQ4e9s7vPTbRR6aFzmrxhgQSe9a"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.0-rc.0/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/access/AccessControlUpgradeable.sol":{"keccak256":"0x73532d244f2f5cb160825b7b058de8a439a15fb7d918b1d6b0b579634d9daba9","urls":["bzz-raw://2d0533420785202d2dbc072a44cbf64e9525b68f29be307085089e1adc5d9b8b","dweb:/ipfs/QmbDShdbLX2XN8uu2mR1aKM9ZLCxJKRxBnyfcBTV2GJhMz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x4918e374e9ce84e9b196486bafbd46851d5e72ab315e31f0b1d7c443dcfea5bf","urls":["bzz-raw://2ced247afc54a93a13922ebbd63add61130abe483ab5b5b78e7e991d564d150e","dweb:/ipfs/QmTfxjcTgfekiguegjvYMyfqhyRNffui17f8xi86BCZNVt"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.0-rc.0/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224","urls":["bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812","dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y"],"license":"MIT"},"src/interfaces/ILiquidityManager.sol":{"keccak256":"0x81179790baf72a25913b4cd5b4b138841202560e3a3acb1085701c76f9453dcd","urls":["bzz-raw://be00fe78af7550a57b494a322529270f7a84dc128bb2e56c67dd3f1b14a54e2c","dweb:/ipfs/Qmb3SfNPJjw2UtK4eiA3DJiwHivtKG5K7xNdrmtSYdzSkF"],"license":"MIT"},"src/interfaces/IzERC20.sol":{"keccak256":"0x47676dd9a9f5b2e2c18b2ea1e6d580f0e9377cd72decdaf115232bf983edb5d0","urls":["bzz-raw://0f45d81ef36c05cdd369bba3d09e668fcf127fb35301e42e8d2b373b181b09a8","dweb:/ipfs/QmQEoQyh8S9ctvxPBnRkFHDvh4TuNYXpSA7aR49gm5LHiA"],"license":"MIT"},"src/libraries/IncentiveLib.sol":{"keccak256":"0x8e11cbcda75be011c970c845de0cf8aac2d72f2a7db386878cb140532a0528ee","urls":["bzz-raw://74a46b1a4db2d0a030cd7b62185543c2cc91232a30e621f9c04d99a685fd2ba4","dweb:/ipfs/QmR2dtVD3GD3vTNMW78FYkE4SG4Abk2FKpCKQL1QbaTaBV"],"license":"MIT"},"src/liquidity/LiquidityManager.sol":{"keccak256":"0xa4114251d966d36d1ca7169ee76b1dfffc5fb27ebc0d2e61f9970931ee966031","urls":["bzz-raw://a911db7722dd7d8d5a8d4402c7e41fcec58a939fec6ba19afa4ae4348cec4d14","dweb:/ipfs/QmXdVPj7KCj8EcqBY1h1tHJU2FeN1dxowAtpybgripnbzX"],"license":"MIT"}},"version":1},"id":195}