{"abi":[{"type":"constructor","inputs":[{"name":"initialAdmin","type":"address","internalType":"address"},{"name":"initialNFTDescriptor","type":"address","internalType":"contract IFlowNFTDescriptor"}],"stateMutability":"nonpayable"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"UD60x18"}],"stateMutability":"view"},{"type":"function","name":"adjustRatePerSecond","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"newRatePerSecond","type":"uint128","internalType":"UD21x18"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"aggregateBalance","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batch","inputs":[{"name":"calls","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"collectFees","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collectProtocolRevenue","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coveredDebtOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"coveredDebt","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"transferable","type":"bool","internalType":"bool"}],"outputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"createAndDeposit","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"transferable","type":"bool","internalType":"bool"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"depletionTimeOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depletionTime","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositAndPause","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositViaBroker","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"totalAmount","type":"uint128","internalType":"uint128"},{"name":"sender","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"broker","type":"tuple","internalType":"struct Broker","components":[{"name":"account","type":"address","internalType":"address"},{"name":"fee","type":"uint256","internalType":"UD60x18"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getBalance","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"balance","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"getRatePerSecond","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"}],"stateMutability":"view"},{"type":"function","name":"getRecipient","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"recipient","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSender","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSnapshotDebtScaled","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"snapshotDebtScaled","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSnapshotTime","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"snapshotTime","type":"uint40","internalType":"uint40"}],"stateMutability":"view"},{"type":"function","name":"getStream","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stream","type":"tuple","internalType":"struct Flow.Stream","components":[{"name":"balance","type":"uint128","internalType":"uint128"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"},{"name":"sender","type":"address","internalType":"address"},{"name":"snapshotTime","type":"uint40","internalType":"uint40"},{"name":"isStream","type":"bool","internalType":"bool"},{"name":"isTransferable","type":"bool","internalType":"bool"},{"name":"isVoided","type":"bool","internalType":"bool"},{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"tokenDecimals","type":"uint8","internalType":"uint8"},{"name":"snapshotDebtScaled","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getToken","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"token","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"getTokenDecimals","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"tokenDecimals","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPaused","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isStream","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isTransferable","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isVoided","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextStreamId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nftDescriptor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IFlowNFTDescriptor"}],"stateMutability":"view"},{"type":"function","name":"ongoingDebtScaledOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ongoingDebtScaled","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"protocolFee","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}],"outputs":[{"name":"fee","type":"uint256","internalType":"UD60x18"}],"stateMutability":"view"},{"type":"function","name":"protocolRevenue","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}],"outputs":[{"name":"revenue","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"recover","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"refund","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"refundAndPause","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"refundMax","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"refundableAmountOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"refundableAmount","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"restart","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"restartAndDeposit","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNFTDescriptor","inputs":[{"name":"newNFTDescriptor","type":"address","internalType":"contract IFlowNFTDescriptor"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"newProtocolFee","type":"uint256","internalType":"UD60x18"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"statusOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"status","type":"uint8","internalType":"enum Flow.Status"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"uri","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalDebtOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"totalDebt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"uncoveredDebtOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"uncoveredDebt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"void","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"withdrawnAmount","type":"uint128","internalType":"uint128"},{"name":"protocolFeeAmount","type":"uint128","internalType":"uint128"}],"stateMutability":"payable"},{"type":"function","name":"withdrawMax","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[{"name":"withdrawnAmount","type":"uint128","internalType":"uint128"},{"name":"protocolFeeAmount","type":"uint128","internalType":"uint128"}],"stateMutability":"payable"},{"type":"function","name":"withdrawableAmountOf","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawableAmount","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"event","name":"AdjustFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"totalDebt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"oldRatePerSecond","type":"uint128","indexed":false,"internalType":"UD21x18"},{"name":"newRatePerSecond","type":"uint128","indexed":false,"internalType":"UD21x18"}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"BatchMetadataUpdate","inputs":[{"name":"_fromTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_toTokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CollectFees","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"feeAmount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CollectProtocolRevenue","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"revenue","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"CreateFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"ratePerSecond","type":"uint128","indexed":false,"internalType":"UD21x18"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"transferable","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"DepositFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"funder","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MetadataUpdate","inputs":[{"name":"_tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PauseFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"totalDebt","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Recover","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"surplus","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RefundFromFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"RestartFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"ratePerSecond","type":"uint128","indexed":false,"internalType":"UD21x18"}],"anonymous":false},{"type":"event","name":"SetNFTDescriptor","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"oldNFTDescriptor","type":"address","indexed":false,"internalType":"contract IFlowNFTDescriptor"},{"name":"newNFTDescriptor","type":"address","indexed":false,"internalType":"contract IFlowNFTDescriptor"}],"anonymous":false},{"type":"event","name":"SetProtocolFee","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"oldProtocolFee","type":"uint256","indexed":false,"internalType":"UD60x18"},{"name":"newProtocolFee","type":"uint256","indexed":false,"internalType":"UD60x18"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TransferAdmin","inputs":[{"name":"oldAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VoidFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"newTotalDebt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"writtenOffDebt","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WithdrawFromFlowStream","inputs":[{"name":"streamId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"caller","type":"address","indexed":false,"internalType":"address"},{"name":"withdrawAmount","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"protocolFeeAmount","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"CallerNotAdmin","inputs":[{"name":"admin","type":"address","internalType":"address"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"DelegateCall","inputs":[]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"PRBMath_MulDiv18_Overflow","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PRBMath_UD60x18_IntoUint128_Overflow","inputs":[{"name":"x","type":"uint256","internalType":"UD60x18"}]},{"type":"error","name":"SablierFlowBase_FeeTransferFail","inputs":[{"name":"admin","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlowBase_NoProtocolRevenue","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlowBase_NotTransferable","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlowBase_ProtocolFeeTooHigh","inputs":[{"name":"newProtocolFee","type":"uint256","internalType":"UD60x18"},{"name":"maxFee","type":"uint256","internalType":"UD60x18"}]},{"type":"error","name":"SablierFlowBase_SurplusZero","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_BrokerAddressZero","inputs":[]},{"type":"error","name":"SablierFlow_BrokerFeeTooHigh","inputs":[{"name":"brokerFee","type":"uint256","internalType":"UD60x18"},{"name":"maxFee","type":"uint256","internalType":"UD60x18"}]},{"type":"error","name":"SablierFlow_DepositAmountZero","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_InvalidCalculation","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"availableAmount","type":"uint128","internalType":"uint128"},{"name":"amount","type":"uint128","internalType":"uint128"}]},{"type":"error","name":"SablierFlow_InvalidTokenDecimals","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_NotStreamRecipient","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"streamRecipient","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_NotStreamSender","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"streamSender","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_Null","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_Overdraw","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"withdrawableAmount","type":"uint128","internalType":"uint128"}]},{"type":"error","name":"SablierFlow_RatePerSecondNotDifferent","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"ratePerSecond","type":"uint128","internalType":"UD21x18"}]},{"type":"error","name":"SablierFlow_RefundAmountZero","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_RefundOverflow","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"refundAmount","type":"uint128","internalType":"uint128"},{"name":"refundableAmount","type":"uint128","internalType":"uint128"}]},{"type":"error","name":"SablierFlow_SenderZeroAddress","inputs":[]},{"type":"error","name":"SablierFlow_StreamBalanceZero","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_StreamNotPaused","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_StreamPaused","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_StreamVoided","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_Unauthorized","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"SablierFlow_WithdrawAmountZero","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_WithdrawToZeroAddress","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SablierFlow_WithdrawalAddressNotRecipient","inputs":[{"name":"streamId","type":"uint256","internalType":"uint256"},{"name":"caller","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a0604052346103a95761543c6040813803918261001c816103ad565b9384928339810103126103a95780516001600160a01b03811691908290036103a957602001516001600160a01b038116908190036103a95761005e60406103ad565b91601083526f14d8589b1a595c88119b1bddc813919560821b602084015261008660406103ad565b60088152675341422d464c4f5760c01b60208201523060805283519092906001600160401b0381116102ba57600154600181811c9116801561039f575b602082101461029c57601f811161033c575b50602094601f82116001146102d9579481929394955f926102ce575b50508160011b915f199060031b1c1916176001555b82516001600160401b0381116102ba57600254600181811c911680156102b0575b602082101461029c57601f8111610239575b506020601f82116001146101d657819293945f926101cb575b50508160011b915f199060031b1c1916176002555b60016008555f80546001600160a01b031990811684178255600980549091169290921790915560405191907fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf808180a361506990816103d382396080518161369c0152f35b015190505f80610152565b601f1982169060025f52805f20915f5b81811061022157509583600195969710610209575b505050811b01600255610167565b01515f1960f88460031b161c191690555f80806101fb565b9192602060018192868b0151815501940192016101e6565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c81019160208410610292575b601f0160051c01905b8181106102875750610139565b5f815560010161027a565b9091508190610271565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610127565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100f1565b601f1982169560015f52805f20915f5b8881106103245750836001959697981061030c575b505050811b01600155610106565b01515f1960f88460031b161c191690555f80806102fe565b919260206001819286850151815501940192016102e9565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610395575b601f0160051c01905b81811061038a57506100d5565b5f815560010161037d565b9091508190610374565b90607f16906100c3565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102ba5760405256fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146103ff57806306fdde03146103fa578063081812fc146103f557806308b87923146103f0578063095ea7b3146103eb5780630c5fd195146103e65780630c699624146103e1578063136439dd146103dc5780631400ecec146103d75780631e010439146103d25780631e897afb146103cd5780631e99d569146103c85780631f0cce58146103c357806323b872dd146103be578063379d871a146103b957806342842e0e146103b457806342e3e23d146102fb57806344267570146103af578063450ac908146103aa578063569f4c59146103a5578063597150fa146103a05780635ea2145b1461039b5780635f553152146103965780636352211e14610391578063648bf7741461038c5780636d0cee751461038757806370a082311461038257806375829def1461037d5780637cad6cd1146103785780637ddf92281461037357806380448da31461036e57806381632a8614610369578063894e9a0d1461036457806395d89b411461035f578063a22cb4651461035a578063a7de07cd14610355578063a8a482a614610350578063ad35efd41461034b578063b256456914610346578063b5b3ca2c14610341578063b61f75831461033c578063b62b31e414610337578063b88d4fde14610332578063b8a3be661461032d578063b971302a14610328578063bc063e1a14610323578063bc7a2d6c1461031e578063bcbd019e14610319578063bdf2a43c14610314578063c2f8e7501461030f578063c87965721461030a578063c87b56dd14610305578063d4b8088414610300578063d975dfed146102fb578063e4b50cb8146102f6578063e985e9c5146102f1578063ea5ead19146102ec578063eb5710d8146102e7578063ebb6f79a146102e2578063f851a440146102dd578063fbf2777e146102d8578063fdd46d60146102d35763ffe3d9f8146102ce575f80fd5b612e06565b612d8c565b612d26565b612d01565b612c30565b612bcb565b612b25565b612abf565b612a59565b611011565b612a09565b61290a565b61286d565b612691565b61263a565b61259a565b612562565b612540565b6124da565b6124a5565b612415565b6122e1565b6121e5565b6120db565b61207f565b612001565b611ef7565b611e9a565b611da8565b611cf3565b611a93565b611a08565b6119a2565b61196a565b611884565b6117fa565b61178c565b611729565b61159b565b611558565b61151c565b61118b565b611127565b6110c1565b61106f565b611049565b610fe8565b610eb7565b610ea0565b610d30565b610cf9565b610bd7565b610ae5565b610a8f565b6109d1565b610912565b6108c4565b610788565b610709565b6106da565b6105b0565b610432565b7fffffffff0000000000000000000000000000000000000000000000000000000081160361042e57565b5f80fd5b3461042e57602060031936011261042e577fffffffff0000000000000000000000000000000000000000000000000000000060043561047081610404565b167f490649060000000000000000000000000000000000000000000000000000000081149081156104aa575b506040519015158152602090f35b7f80ac58cd0000000000000000000000000000000000000000000000000000000081149150811561050e575b81156104e4575b505f61049c565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150145f6104dd565b7f5b5e139f00000000000000000000000000000000000000000000000000000000811491506104d6565b5f5b8381106105495750505f910152565b818101518382015260200161053a565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361059581518092818752878088019101610538565b0116010190565b9060206105ad928181520190610559565b90565b3461042e575f60031936011261042e576040515f6001548060011c90600181169081156106d0575b6020831082146106a357828552602085019190811561066c575060011461061a575b6106168461060a81860382612388565b6040519182918261059c565b0390f35b60015f9081529250907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8184106106585750500161060a826105fa565b805484840152602090930192600101610645565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682525090151560051b01905061060a826105fa565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916105d8565b3461042e57602060031936011261042e5760206106f8600435612f58565b6001600160a01b0360405191168152f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c5761074190613651565b604051908152602090f35b7fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6001600160a01b0381160361042e57565b3461042e57604060031936011261042e576004356107a581610777565b602435906107b282613605565b331515806108b1575b80610871575b61084257826108409361080d926001600160a01b0380861691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f52600560205260405f2090565b906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b005b7fa9fbf51f000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b5ffd5b5060ff6108a933610893846001600160a01b03165f52600660205260405f2090565b906001600160a01b03165f5260205260405f2090565b5416156107c1565b50336001600160a01b03821614156107bb565b3461042e57602060031936011261042e576001600160a01b036004356108e981610777565b165f52600b60205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b602060031936011261042e57600435610929613692565b805f52600c60205260ff600160405f20015460c81c161561074c57805f52600c6020526001600160a01b03600160405f2001541633036109a2576020816109996109937ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79461371e565b82613750565b604051908152a1005b7fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b602060031936011261042e576004356109e8613692565b805f52600c60205260ff600160405f20015460c81c161561074c57805f52600c60205260405f205460801c15610a6457805f52600c6020526001600160a01b03600160405f2001541633036109a2576020816109997ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79361398a565b7f167274c9000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c57610ac79061371e565b6040516fffffffffffffffffffffffffffffffff9091168152602090f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c6020526106166fffffffffffffffffffffffffffffffff60405f205416604051918291829190916fffffffffffffffffffffffffffffffff6020820193169052565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610b8c57505050505090565b9091929394602080610bc8837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951610559565b97019301930191939290610b7d565b602060031936011261042e5760043567ffffffffffffffff811161042e573660238201121561042e5780600401359067ffffffffffffffff821161042e576024810190602436918460051b01011161042e57610c3282612f7a565b91610c406040519384612388565b8083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610c6d82612f7a565b015f5b818110610ce85750505f5b818110610c9057604051806106168682610b5a565b5f80610c9d838587612fbf565b90610cad60405180938193613024565b0390305af4610cba613031565b9015610ce05790600191610cce8287613060565b52610cd98186613060565b5001610c7b565b805190602001fd5b806060602080938801015201610c70565b3461042e575f60031936011261042e576020600854604051908152f35b6fffffffffffffffffffffffffffffffff81160361042e57565b606060031936011261042e57600435602435610d4b81610d16565b60443590610d5882610d16565b610d60613692565b825f52600c60205260ff600160405f20015460c81c1615610e4857825f52600c60205260ff600160405f20015460d81c16610e1c57825f52600c6020526001600160a01b03600160405f200154163303610dec5791610999602092610de67ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79584613aa5565b82613b32565b827fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b827f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b827fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b600319606091011261042e57600435610e8c81610777565b90602435610e9981610777565b9060443590565b3461042e57610840610eb136610e74565b91613074565b604060031936011261042e57600435602435610ed281610d16565b610eda613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c60205260405f205460801c15610f9057815f52600c6020526001600160a01b03600160405f200154163303610f605781610f576020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613750565b6109998161398a565b507fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b507f167274c9000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b507fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57610840610ff936610e74565b9060405192611009602085612388565b5f84526132e0565b3461042e57602060031936011261042e57602061102f6004356131ab565b6fffffffffffffffffffffffffffffffff60405191168152f35b3461042e575f60031936011261042e5760206001600160a01b0360095416604051908152f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c602052610616600360405f200154604051918291829190602083019252565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660ff600160405f20015460d81c1660405191829182919091602081019215159052565b8015150361042e57565b60a060031936011261042e57602061118360043561114481610777565b60243561115081610777565b60443561115c81610d16565b6064359161116983610777565b608435936111768561111d565b61117e613692565b613fcc565b604051908152f35b602060031936011261042e576004356111a2613692565b805f52600c60205260ff600160405f20015460c81c161561074c57805f52600c60205260ff600160405f20015460d81c166114f15761120b6111ff60016111f1845f52600c60205260405f2090565b01546001600160a01b031690565b6001600160a01b031690565b331415806114db575b6109a25761142b816112467ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793614367565b806114585761125482614227565b80611430575b505b6112c664ffffffffff4216600161127b855f52600c60205260405f2090565b01907fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff78ffffffffff000000000000000000000000000000000000000083549260a01b169116179055565b61131d5f6112dc845f52600c60205260405f2090565b906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b61137b6001611334845f52600c60205260405f2090565b017b010000000000000000000000000000000000000000000000000000007fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff825416179055565b61139260016111f1845f52600c60205260405f2090565b90827fa8e3d71a6c0c719305004b430f6d17f12536f7b803db23a4d7016f5b52699a8c6001600160a01b036113df6113d2845f52600360205260405f2090565b546001600160a01b031690565b6114186113eb85613651565b95836040519485941698169633846040919493926001600160a01b03606083019616825260208201520152565b0390a46040519081529081906020820190565b0390a1005b6114506003611447855f52600c60205260405f2090565b01918254613458565b90555f61125a565b6114c0611486611470845f52600c60205260405f2090565b546fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff6114b960026114ae875f52600c60205260405f2090565b015460a01c60ff1690565b911661451b565b60036114d4845f52600c60205260405f2090565b015561125c565b506114ec6114e882614d74565b1590565b611214565b7f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57602060031936011261042e576001600160a01b0360043561154181610777565b165f526007602052602060405f2054604051908152f35b3461042e57602060031936011261042e5760206106f8600435613605565b600319604091011261042e5760043561158e81610777565b906024356105ad81610777565b3461042e576115a936611576565b6001600160a01b035f54163381036116fa57506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0383169290602081602481875afa80156116f557611631915f916116c6575b5061162a836001600160a01b03165f52600760205260405f2090565b5490613248565b90811561169157816116687f21252411d5a999da4bc6a490f7143b61ba690edceb4577a2800eab8dfbb1e92c938561168c946141cd565b604051918291339583602090939291936001600160a01b0360408201951681520152565b0390a3005b7ff4c3afcf000000000000000000000000000000000000000000000000000000005f526001600160a01b03841660045260245ffd5b6116e8915060203d6020116116ee575b6116e08183612388565b8101906131cf565b5f61160e565b503d6116d6565b6131de565b7fc6cce6a4000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f5260036020526106166001600160a01b0360405f205416604051918291829190916001600160a01b036020820193169052565b3461042e57602060031936011261042e576001600160a01b036004356117b181610777565b1680156117ce575f526004602052602060405f2054604051908152f35b7f89c62b64000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b3461042e57602060031936011261042e5760043561181781610777565b5f546001600160a01b0381163381036116fa57506001600160a01b037fffffffffffffffffffffffff0000000000000000000000000000000000000000921691829116175f55337fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf805f80a3005b3461042e57602060031936011261042e576004356118a181610777565b6001600160a01b035f54163381036116fa57506001600160a01b036009549116807fffffffffffffffffffffffff00000000000000000000000000000000000000008316176009556001600160a01b036040519216825260208201527fa2548bd4b805e907c1558a47b5858324fe8bb4a2e1ddfca647eecbf65610eebc60403392a27f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c61142b611952600854613216565b60405191829182919060206040840193600181520152565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c5761074190614227565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660405f205460801c604051918291829190916fffffffffffffffffffffffffffffffff6020820193169052565b604060031936011261042e57600435602435611a2381610d16565b611a2b613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c6020526001600160a01b03600160405f200154163303610f6057816109996020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613750565b3461042e57602060031936011261042e576004355f610120604051611ab78161234a565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660405f206003611b206123c9565b91611b7a611b618254611b5b611b45826fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff168752565b60801c90565b6fffffffffffffffffffffffffffffffff166020850152565b611bf3611bea6001830154611ba8611b98826001600160a01b031690565b6001600160a01b03166040880152565b64ffffffffff60a082901c166060870152611bcd60c882901c60ff1615156080880152565b611be160d082901c60ff16151560a0880152565b60d81c60ff1690565b151560c0850152565b611c35611c2a6002830154611c21611c11826001600160a01b031690565b6001600160a01b031660e0880152565b60a01c60ff1690565b60ff16610100850152565b01546101208201526040519182918281516fffffffffffffffffffffffffffffffff168152610140810192916101209081906020818101516fffffffffffffffffffffffffffffffff16908501526040818101516001600160a01b03169085015260608181015164ffffffffff169085015260808181015115159085015260a08181015115159085015260c08181015115159085015260e0818101516001600160a01b0316908501526101008181015160ff16908501520151910152565b3461042e575f60031936011261042e576040515f6002548060011c9060018116908115611d9e575b6020831082146106a357828552602085019190811561066c5750600114611d4c576106168461060a81860382612388565b60025f9081529250907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b818410611d8a5750500161060a826105fa565b805484840152602090930192600101611d77565b91607f1691611d1b565b3461042e57604060031936011261042e57600435611dc581610777565b602435611dd18161111d565b6001600160a01b038216918215611e6e57611e0890335f52600660205260405f20906001600160a01b03165f5260205260405f2090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff831515161790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c316040518061168c339482919091602081019215159052565b827f5b08ba18000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660ff600260405f20015460a01c166040519182918291909160ff6020820193169052565b604060031936011261042e57600435602435611f1281610d16565b611f1a613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c60205260405f205460801c15610f9057815f52600c6020526001600160a01b03600160405f200154163303610f605781807ffddf01d0842635e80929251f6862b3baf136a29f2b2fb148968e8b236d5785fe60606020947ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7965f52600c86526fffffffffffffffffffffffffffffffff60405f205460801c91611fdd8187614275565b611fe686613651565b9260405193845288840152166040820152a2604051908152a1005b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c5761203990613255565b6040519060208201600582101561205257829182520390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660ff600160405f20015460d01c1660405191829182919091602081019215159052565b3461042e57604060031936011261042e576004356120f881610777565b602435906001600160a01b035f54163381036116fa575067016345785d8a000082116121ad576001600160a01b03165f818152600a60205260409020805491927f371789a3d97098f3070492613273a065a7e8a19e009fd1ae92a4b4d4c71ed62d9161217b91908190556040805194855260208501919091523393918291820190565b0390a37f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c61142b611952600854613216565b507f34553172000000000000000000000000000000000000000000000000000000005f5260045267016345785d8a000060245260445ffd5b608060031936011261042e5760043560243561220081610d16565b60443561220c81610777565b6064359061221982610777565b612221613692565b835f52600c60205260ff600160405f20015460c81c16156122b557835f52600c60205260ff600160405f20015460d81c1661228957602092610de68593610999937ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7976143a4565b837f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b837fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57602060031936011261042e576001600160a01b0360043561230681610777565b165f52600a602052602060405f2054604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610140810190811067ffffffffffffffff82111761236757604052565b61231d565b6040810190811067ffffffffffffffff82111761236757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761236757604052565b604051906123d961014083612388565b565b67ffffffffffffffff811161236757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3461042e57608060031936011261042e5760043561243281610777565b6024359061243f82610777565b6044356064359267ffffffffffffffff841161042e573660238501121561042e5783600401359261246f846123db565b9361247d6040519586612388565b808552366024828801011161042e576020815f926024610840990183890137860101526132e0565b3461042e57602060031936011261042e576004355f52600c602052602060ff600160405f20015460c81c166040519015158152f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c6020526106166001600160a01b03600160405f20015416604051918291829190916001600160a01b036020820193169052565b3461042e575f60031936011261042e57602060405167016345785d8a00008152f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c5761074190614367565b604060031936011261042e576004356024356125b581610d16565b6125bd613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c60205260405f205460801c15610f9057815f52600c6020526001600160a01b03600160405f200154163303610f605781610f576020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613b32565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660405f205460801c1560405191829182919091602081019215159052565b60c060031936011261042e576004356024356126ac81610d16565b6044356126b881610777565b6064356126c481610777565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c36011261042e576126f6613692565b835f52600c60205260ff600160405f20015460c81c16156122b557835f52600c60205260ff600160405f20015460d81c166122895761273591846143a4565b604051916127428361236c565b60843561274e81610777565b835260a435602084019080825267016345785d8a0000811161283657506001600160a01b038451161561280e577ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7936127bb6127b261142b956127fe945190614e86565b85929192613b32565b6fffffffffffffffffffffffffffffffff6127f46127e660026111f1885f52600c60205260405f2090565b93516001600160a01b031690565b91169133906149f2565b6040519081529081906020820190565b7f5f946a02000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f54b392b2000000000000000000000000000000000000000000000000000000005f5260045267016345785d8a000060245260445ffd5b3461042e575f60031936011261042e57475f808080846001600160a01b038254165af1612898613031565b50156128d1576001600160a01b03805f5416167fc9a0214d4c5fed6341233260a7bc0c9ac1d712cc5882165fa985bb71d4f207ae5f80a3005b6001600160a01b035f54167f186f33ac000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b3461042e57602060031936011261042e5760043561292781613605565b505f6001600160a01b0360095416916044604051809481937fe9dc637500000000000000000000000000000000000000000000000000000000835230600484015260248301525afa80156116f5575f9061298c575b610616906040519182918261059c565b503d805f833e61299c8183612388565b81019060208183031261042e5780519067ffffffffffffffff821161042e57019080601f8301121561042e578151916129d4836123db565b916129e26040519384612388565b8383526020848301011161042e5761061692612a049160208085019101610538565b61297c565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c57805f52600c60205260405f205460801c15610a64576127fe610616916134ab565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c6020526106166001600160a01b03600260405f20015416604051918291829190916001600160a01b036020820193169052565b3461042e57604060031936011261042e57602060ff612b19600435612ae381610777565b6001600160a01b0360243591612af883610777565b165f526006845260405f20906001600160a01b03165f5260205260405f2090565b54166040519015158152f35b604060031936011261042e57600435602435612b4081610777565b612b48613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7612b9b602093612b9484613c7a565b9084614568565b939092604051908152a1604080516fffffffffffffffffffffffffffffffff928316815292909116602083015290f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061664ffffffffff600160405f20015460a01c166040519182918291909164ffffffffff6020820193169052565b604060031936011261042e57600435602435612c4b81610d16565b612c53613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c60205260ff600160405f20015460d81c16612cd557815f52600c6020526001600160a01b03600160405f200154163303610f6057816109996020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613aa5565b507f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e575f60031936011261042e5760206001600160a01b035f5416604051908152f35b60c060031936011261042e576020600435612d4081610777565b611183612d85602435612d5281610777565b604435612d5e81610d16565b60643590612d6b82610777565b60843592612d788461111d565b60a4359661117688610d16565b9182613b32565b606060031936011261042e57600435602435612da781610777565b60443590612db482610d16565b612dbc613692565b825f52600c60205260ff600160405f20015460c81c1615610e4857612b9b83927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce792602095614568565b3461042e57612e1436611576565b6001600160a01b035f54163381036116fa57506001600160a01b03821691825f52600b6020526fffffffffffffffffffffffffffffffff60405f205416908115612f235781612eef7fc9a4a66b97fd7e52e69c5be7b10bdc5341bded817201b9b7136a75068d4e4e05938584612ec9612ea161168c976001600160a01b03165f52600b60205260405f2090565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008154169055565b612ee4816001600160a01b03165f52600760205260405f2090565b8381540390556141cd565b604080516001600160a01b0390951685526fffffffffffffffffffffffffffffffff90911660208501523393918291820190565b7ff717901b000000000000000000000000000000000000000000000000000000005f526001600160a01b03841660045260245ffd5b612f6181613605565b505f5260056020526001600160a01b0360405f20541690565b67ffffffffffffffff81116123675760051b60200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b919081101561301f5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561042e57019081359167ffffffffffffffff831161042e57602001823603811361042e579190565b612f92565b908092918237015f815290565b3d1561305b573d90613042826123db565b916130506040519384612388565b82523d5f602084013e565b606090565b805182101561301f5760209160051b010190565b91906001600160a01b0381161561317f57815f5260036020526001600160a01b0360405f205416151580613162575b613135576001600160a01b036130bc8192843391614a4c565b937ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7604051806130f187829190602083019252565b0390a11692169180830361310457505050565b7f64283d7b000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f7da2ea2b000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b50815f52600c60205260ff600160405f20015460d01c16156130a3565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805f52600c60205260ff600160405f20015460c81c161561074c576105ad90613c7a565b9081602091031261042e575190565b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820191821161324357565b6131e9565b9190820391821161324357565b805f52600c60205260ff600160405f20015460d81c166132da5761327881614367565b1515905f52600c6020526fffffffffffffffffffffffffffffffff6132b96132a460405f205460801c90565b6fffffffffffffffffffffffffffffffff1690565b16156132cc576132c7575f90565b600190565b6132d557600290565b600390565b50600490565b9092916132ee818584613074565b833b6132fb575b50505050565b60209161333660405194859384937f150b7a0200000000000000000000000000000000000000000000000000000000855233600486016144d0565b03815f6001600160a01b0387165af15f9181613427575b506133a0575061335b613031565b8051919082613399577f64a0ae92000000000000000000000000000000000000000000000000000000005f526001600160a01b03821660045260245ffd5b9050602001fd5b7fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009116036133f357505f8080806132f5565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f526001600160a01b031660045260245ffd5b61344a91925060203d602011613451575b6134428183612388565b8101906144bb565b905f61334d565b503d613438565b9190820180921161324357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b811561349c570490565b613465565b811561349c570690565b6fffffffffffffffffffffffffffffffff6134d1611470835f52600c60205260405f2090565b169081156135da576134fa6134f360026114ae845f52600c60205260405f2090565b809361451b565b9161351a6003613512845f52600c60205260405f2090565b0154916144fe565b61352c61352684614227565b83613458565b6135368286613458565b11156135d257613576916135626132a46132a461355b875f52600c60205260405f2090565b5460801c90565b940301926135708185613492565b936134a1565b6135b1576135a360016135946135ad935f52600c60205260405f2090565b015460a01c64ffffffffff1690565b64ffffffffff1690565b0190565b906135cd6135a3600161359481955f52600c60205260405f2090565b010190565b505050505f90565b7f0f04b2a1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f5260036020526001600160a01b0360405f205416908115613626575090565b7f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b61365a81614227565b815f52600c602052600360405f2001548101809111613243576105ad915f52600c60205260ff600260405f20015460a01c1690614998565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036136c457565b7fa1c0d6e5000000000000000000000000000000000000000000000000000000005f5260045ffd5b906fffffffffffffffffffffffffffffffff809116911603906fffffffffffffffffffffffffffffffff821161324357565b6105ad90805f52600c60205261374a6fffffffffffffffffffffffffffffffff60405f20541691613c7a565b906136ec565b6fffffffffffffffffffffffffffffffff8216801561395d576137728261371e565b6fffffffffffffffffffffffffffffffff81169081831161391557506137a66132a4611470855f52600c60205260405f2090565b106138b2576001600160a01b037fe31f2d40d5780915b1e656a67e11bdf09b0a4a925ec42bbeae220c8ca937ab499161388c6137ef60016111f1875f52600c60205260405f2090565b918261380860026111f1895f52600c60205260405f2090565b612ec961381d895f52600c60205260405f2090565b6138518b61383b83546fffffffffffffffffffffffffffffffff1690565b036fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b6040516fffffffffffffffffffffffffffffffff9095168552169280602081015b0390a3565b61086e83836138cc611470825f52600c60205260405f2090565b907fcb5f605f000000000000000000000000000000000000000000000000000000005f5292916fffffffffffffffffffffffffffffffff80926064956004521660245216604452565b7fe9771401000000000000000000000000000000000000000000000000000000005f5260048490526fffffffffffffffffffffffffffffffff8086166024521660445260645ffd5b7fea66b871000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b5f818152600c60205260409020546139a49060801c6132a4565b15613a72576139b281614227565b80613a53575b506139d864ffffffffff4216600161127b845f52600c60205260405f2090565b6139ee5f6112dc835f52600c60205260405f2090565b805f52600c6020526001600160a01b03600160405f20015416815f5260036020526001600160a01b0360405f205416917fda83bf669c651406e02062769e01d14cccb5625ea685fd95e0e56d29597dac476020613a4a83613651565b604051908152a4565b613a6a6003611447845f52600c60205260405f2090565b90555f6139b8565b7fd2657d5a000000000000000000000000000000000000000000000000000000005f90815260049190915260245260445ffd5b805f52600c60205260405f205460801c613b0757613ac38282614275565b6040516fffffffffffffffffffffffffffffffff92909216825233917fc2a543cfadbf862642247e28711aaa30e3460384be5712be6557fee3384454fd90602090a3565b7fdc6fbbbc000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6fffffffffffffffffffffffffffffffff82168015613c4e575f828152600c6020526040902060028101546001600160a01b0316919091816fffffffffffffffffffffffffffffffff808554161601926fffffffffffffffffffffffffffffffff841161324357613c0793613bdd91906fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b613bf8816001600160a01b03165f52600760205260405f2090565b828154019055309033906149f2565b6040516fffffffffffffffffffffffffffffffff909216825233917fa06c1466b3c9751408a5ac337a2e8808e5ee0ceed1fd70635d041b21174eb6b49080602081016138ad565b507f33f2df5a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f52600c6020526fffffffffffffffffffffffffffffffff60405f205416908115613cbe57613ca990613651565b808210613cba576105ad9150614c4b565b5090565b50505f90565b9081602091031261042e575160ff8116810361042e5790565b90610120600391613d3e613d0182516fffffffffffffffffffffffffffffffff1690565b85906fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b613d9f613d5e60208301516fffffffffffffffffffffffffffffffff1690565b85546fffffffffffffffffffffffffffffffff1660809190911b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000016178555565b613f5b60018501613df1613dbd60408501516001600160a01b031690565b82906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b613e50613e06606085015164ffffffffff1690565b82547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff1660a09190911b78ffffffffff000000000000000000000000000000000000000016178255565b613eab613e606080850151151590565b82547fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff1690151560c81b79ff0000000000000000000000000000000000000000000000000016178255565b613f07613ebb60a0850151151590565b82547fffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff1690151560d01b7aff000000000000000000000000000000000000000000000000000016178255565b60c0830151151581547fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff1690151560d81b7bff00000000000000000000000000000000000000000000000000000016179055565b613fc560028501613f79613dbd60e08501516001600160a01b031690565b61010083015181547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1660a09190911b74ff000000000000000000000000000000000000000016179055565b0151910155565b929493916001600160a01b0384169182156141a5576001600160a01b038716946040517f313ce5670000000000000000000000000000000000000000000000000000000081526020816004818a5afa9081156116f5575f91614176575b50601260ff82161161414157600854986140416123c9565b5f81526fffffffffffffffffffffffffffffffff86166020820152926001600160a01b0316604084015264ffffffffff421660608401526001608084015286151560a08401525f60c08401526001600160a01b031660e083015260ff1661010082015261012081015f90526140be885f52600c60205260405f2090565b906140c891613cdd565b600187016008556140d98782614ca7565b604051916001600160a01b038392169461411b91898491926fffffffffffffffffffffffffffffffff6040929594606085019685521660208401521515910152565b037f2262fa211f8507786a60fefb231f7898b8145fe16350f281c91f121bd2ee118d91a4565b7fc9f55392000000000000000000000000000000000000000000000000000000005f526001600160a01b03871660045260245ffd5b614198915060203d60201161419e575b6141908183612388565b810190613cc4565b5f614029565b503d614186565b7ff9bb0fb3000000000000000000000000000000000000000000000000000000005f5260045ffd5b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000060208201526001600160a01b039290921660248301526044808301939093529181526123d991614222606483612388565b614ded565b5f908152600c602052604090206001810154905460801c9060a01c64ffffffffff168115801561426b575b613cbe5742038181029181830414901517156132435790565b5080421115614252565b90815f52600c6020526fffffffffffffffffffffffffffffffff8060405f205460801c16166fffffffffffffffffffffffffffffffff821614614324576142bb82614227565b806142f6575b506112dc6123d9926142e864ffffffffff4216600161127b845f52600c60205260405f2090565b5f52600c60205260405f2090565b91600361430b825f52600c60205260405f2090565b01908154938401809411613243579290556112dc6142c1565b7fd2657d5a000000000000000000000000000000000000000000000000000000005f526004919091526fffffffffffffffffffffffffffffffff1660245260445ffd5b805f52600c60205261438f6fffffffffffffffffffffffffffffffff60405f20541691613651565b9081811015613cbe5781039081116132435790565b90815f52600c6020526001600160a01b03600160405f200154166001600160a01b0382160361445f57506143f96001600160a01b036143eb835f52600360205260405f2090565b54166001600160a01b031690565b6001600160a01b0383160361440c575050565b906144256113d261086e935f52600360205260405f2090565b7f5bdb8ad7000000000000000000000000000000000000000000000000000000005f526001600160a01b0391821660045216602452604490565b6001600160a01b03600161447e61086e945f52600c60205260405f2090565b01547fc8bac88d000000000000000000000000000000000000000000000000000000005f526001600160a01b039283166004521616602452604490565b9081602091031261042e57516105ad81610404565b90926001600160a01b03608093816105ad979616845216602083015260408201528160608201520190610559565b601260ff8216146145155760120360ff16600a0a90565b50600190565b90601260ff821614613cba5760120360ff16600a0a0290565b1561453b57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b9291905f936fffffffffffffffffffffffffffffffff831690811561496d576001600160a01b03831615614942576145ae6111ff6113d2835f52600360205260405f2090565b6001600160a01b038416141580614930575b6148f4576145db60026114ae835f52600c60205260405f2090565b916146046145e883614227565b60036145fc855f52600c60205260405f2090565b015490613458565b61460e8482614998565b93614624611470855f52600c60205260405f2090565b92856fffffffffffffffffffffffffffffffff8516105f146148e657835b6fffffffffffffffffffffffffffffffff8116821161489e5750906146669161451b565b90600361467b855f52600c60205260405f2090565b0154821161486357506003614698845f52600c60205260405f2090565b019081540390555b6146d36146b5835f52600c60205260405f2090565b6138518761383b83546fffffffffffffffffffffffffffffffff1690565b6146ea60026111f1845f52600c60205260405f2090565b92614706846001600160a01b03165f52600a60205260405f2090565b54806147e8575b509061477f6132a46147696147859461475a6fffffffffffffffffffffffffffffffff8b1661474d8a6001600160a01b03165f52600760205260405f2090565b8181540390558a8a6141cd565b61476387613651565b90613248565b9261374a611470875f52600c60205260405f2090565b14614534565b604080513381526fffffffffffffffffffffffffffffffff86811660208301528816918101919091526001600160a01b0392831693909216917f1a7b0d6c8f96b874563b711cf97793fe3be5dc42dbd1e0720ce40f326918e81790606090a49190565b61476998506132a461480261477f92614785959499614e86565b9a909a986148598c6138516148288b6001600160a01b03165f52600b60205260405f2090565b9161484383546fffffffffffffffffffffffffffffffff1690565b016fffffffffffffffffffffffffffffffff1690565b939450505061470d565b036003614878845f52600c60205260405f2090565b015561489964ffffffffff4216600161127b855f52600c60205260405f2090565b6146a0565b7ff9f29859000000000000000000000000000000000000000000000000000000005f5260048690526fffffffffffffffffffffffffffffffff808a166024521660445260645ffd5b6148ef86614c4b565b614642565b7f4208ab4c000000000000000000000000000000000000000000000000000000005f52600452336024526001600160a01b03821660445260645ffd5b5061493d6114e882614d74565b6145c0565b7f9f32c858000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fb4855052000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90601260ff821614613cba5760120360ff16600a0a90811561349c570490565b6149ca905f52600560205260405f2090565b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b9091926001600160a01b036123d99481604051957f23b872dd000000000000000000000000000000000000000000000000000000006020880152166024860152166044840152606483015260648252614222608483612388565b815f5260036020526001600160a01b0360405f205416926001600160a01b038116614b46575b506001600160a01b03831680614af7575b614aa96001600160a01b0383169283614ad0575b61080d855f52600360205260405f2090565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a490565b614aeb816001600160a01b03165f52600460205260405f2090565b60018154019055614a97565b614b00836149b8565b614b1b846001600160a01b03165f52600460205260405f2090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8154019055614a83565b614b616001600160a01b0382168015159081614bd957501590565b15614a7257826001600160a01b038516614ba0577f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f177e802f000000000000000000000000000000000000000000000000000000005f526001600160a01b0390911660045260245260445ffd5b6001600160a01b03871680821492508215614c18575b508115614bfb57501590565b9050845f5260056020526001600160a01b0360405f205416141590565b9091505f52600660205260ff614c428460405f20906001600160a01b03165f5260205260405f2090565b5416905f614bef565b6fffffffffffffffffffffffffffffffff8111614c77576fffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52608060045260245260445ffd5b6001600160a01b0381161561317f57815f5260036020526001600160a01b0360405f205416151580614d57575b61313557907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7614d21614d105f846001600160a01b0396614a4c565b604051938452929081906020820190565b0390a116614d2b57565b7f73c6ac6e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b50815f52600c60205260ff600160405f20015460d01c1615614cd4565b805f5260036020526001600160a01b0360405f20541690813314918215614dba575b508115614da1575090565b90506001600160a01b03614db53392612f58565b161490565b9091505f52600660205260ff614de43360405f20906001600160a01b03165f5260205260405f2090565b5416905f614d96565b5f806001600160a01b03614e1693169360208151910182865af1614e0f613031565b9083614fd0565b8051908115159182614e61575b5050614e2c5750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90915060209082018290031261042e5760200151614e7e8161111d565b155f80614e23565b9190614ea4906fffffffffffffffffffffffffffffffff8416614f03565b6fffffffffffffffffffffffffffffffff8111614ed8576fffffffffffffffffffffffffffffffff6105ad911680936136ec565b7f4916adce000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9190917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83820983820291828083109203918083039214614fbf57670de0b6b3a7640000821015614f8f577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b84907f5173648d000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5050670de0b6b3a764000090049150565b9061500d5750805115614fe557805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580615053575b61501e575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561501656fea164736f6c634300081a000a","sourceMap":"1140:31230:77:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1140:31230:77;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1140:31230:77;;;;460:4:80;441:24;;1140:31230:77;;;;;-1:-1:-1;;;;;1140:31230:77;;;;1447:13:9;1140:31230:77;1447:13:9;1140:31230:77;;;;;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;;;;;;-1:-1:-1;1140:31230:77;;;;;;;1447:13:9;1140:31230:77;;;;;;;;;;;1447:13:9;1140:31230:77;;;;-1:-1:-1;;;;;1140:31230:77;;;;1470:17:9;1140:31230:77;1447:13:9;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:31230:77;;;;;;;1447:13:9;1140:31230:77;;;;;;;;;;;1470:17:9;1140:31230:77;;1447:13:9;1140:31230:77;;-1:-1:-1;1140:31230:77;;-1:-1:-1;;;;;;1140:31230:77;;;;;;;2684:36:81;1140:31230:77;;;;;;;;;;;;;;;;2735:63:81;-1:-1:-1;;2735:63:81;1140:31230:77;;;;;;441:24:80;1140:31230:77;;;;;;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;1470:17:9;-1:-1:-1;1140:31230:77;;-1:-1:-1;1140:31230:77;;-1:-1:-1;1140:31230:77;;;;;;;;;1447:13:9;1140:31230:77;;;;;;;;;;;;;1470:17:9;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;1447:13:9;1140:31230:77;;;;;;;;;;;;;;;;1470:17:9;-1:-1:-1;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:31230:77;;1447:13:9;1140:31230:77;;;;;;-1:-1:-1;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;;-1:-1:-1;1140:31230:77;;;;;-1:-1:-1;1140:31230:77;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;1447:13:9;-1:-1:-1;1140:31230:77;;-1:-1:-1;1140:31230:77;;-1:-1:-1;1140:31230:77;;;;;;;;1447:13:9;1140:31230:77;;;;;;;;;;;;;;1447:13:9;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;1447:13:9;1140:31230:77;;;;;;;;;;;;;;;;1447:13:9;-1:-1:-1;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:31230:77;;1447:13:9;1140:31230:77;;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;-1:-1:-1;;1140:31230:77;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146103ff57806306fdde03146103fa578063081812fc146103f557806308b87923146103f0578063095ea7b3146103eb5780630c5fd195146103e65780630c699624146103e1578063136439dd146103dc5780631400ecec146103d75780631e010439146103d25780631e897afb146103cd5780631e99d569146103c85780631f0cce58146103c357806323b872dd146103be578063379d871a146103b957806342842e0e146103b457806342e3e23d146102fb57806344267570146103af578063450ac908146103aa578063569f4c59146103a5578063597150fa146103a05780635ea2145b1461039b5780635f553152146103965780636352211e14610391578063648bf7741461038c5780636d0cee751461038757806370a082311461038257806375829def1461037d5780637cad6cd1146103785780637ddf92281461037357806380448da31461036e57806381632a8614610369578063894e9a0d1461036457806395d89b411461035f578063a22cb4651461035a578063a7de07cd14610355578063a8a482a614610350578063ad35efd41461034b578063b256456914610346578063b5b3ca2c14610341578063b61f75831461033c578063b62b31e414610337578063b88d4fde14610332578063b8a3be661461032d578063b971302a14610328578063bc063e1a14610323578063bc7a2d6c1461031e578063bcbd019e14610319578063bdf2a43c14610314578063c2f8e7501461030f578063c87965721461030a578063c87b56dd14610305578063d4b8088414610300578063d975dfed146102fb578063e4b50cb8146102f6578063e985e9c5146102f1578063ea5ead19146102ec578063eb5710d8146102e7578063ebb6f79a146102e2578063f851a440146102dd578063fbf2777e146102d8578063fdd46d60146102d35763ffe3d9f8146102ce575f80fd5b612e06565b612d8c565b612d26565b612d01565b612c30565b612bcb565b612b25565b612abf565b612a59565b611011565b612a09565b61290a565b61286d565b612691565b61263a565b61259a565b612562565b612540565b6124da565b6124a5565b612415565b6122e1565b6121e5565b6120db565b61207f565b612001565b611ef7565b611e9a565b611da8565b611cf3565b611a93565b611a08565b6119a2565b61196a565b611884565b6117fa565b61178c565b611729565b61159b565b611558565b61151c565b61118b565b611127565b6110c1565b61106f565b611049565b610fe8565b610eb7565b610ea0565b610d30565b610cf9565b610bd7565b610ae5565b610a8f565b6109d1565b610912565b6108c4565b610788565b610709565b6106da565b6105b0565b610432565b7fffffffff0000000000000000000000000000000000000000000000000000000081160361042e57565b5f80fd5b3461042e57602060031936011261042e577fffffffff0000000000000000000000000000000000000000000000000000000060043561047081610404565b167f490649060000000000000000000000000000000000000000000000000000000081149081156104aa575b506040519015158152602090f35b7f80ac58cd0000000000000000000000000000000000000000000000000000000081149150811561050e575b81156104e4575b505f61049c565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150145f6104dd565b7f5b5e139f00000000000000000000000000000000000000000000000000000000811491506104d6565b5f5b8381106105495750505f910152565b818101518382015260200161053a565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361059581518092818752878088019101610538565b0116010190565b9060206105ad928181520190610559565b90565b3461042e575f60031936011261042e576040515f6001548060011c90600181169081156106d0575b6020831082146106a357828552602085019190811561066c575060011461061a575b6106168461060a81860382612388565b6040519182918261059c565b0390f35b60015f9081529250907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8184106106585750500161060a826105fa565b805484840152602090930192600101610645565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682525090151560051b01905061060a826105fa565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916105d8565b3461042e57602060031936011261042e5760206106f8600435612f58565b6001600160a01b0360405191168152f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c5761074190613651565b604051908152602090f35b7fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6001600160a01b0381160361042e57565b3461042e57604060031936011261042e576004356107a581610777565b602435906107b282613605565b331515806108b1575b80610871575b61084257826108409361080d926001600160a01b0380861691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f52600560205260405f2090565b906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b005b7fa9fbf51f000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b5ffd5b5060ff6108a933610893846001600160a01b03165f52600660205260405f2090565b906001600160a01b03165f5260205260405f2090565b5416156107c1565b50336001600160a01b03821614156107bb565b3461042e57602060031936011261042e576001600160a01b036004356108e981610777565b165f52600b60205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b602060031936011261042e57600435610929613692565b805f52600c60205260ff600160405f20015460c81c161561074c57805f52600c6020526001600160a01b03600160405f2001541633036109a2576020816109996109937ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79461371e565b82613750565b604051908152a1005b7fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b602060031936011261042e576004356109e8613692565b805f52600c60205260ff600160405f20015460c81c161561074c57805f52600c60205260405f205460801c15610a6457805f52600c6020526001600160a01b03600160405f2001541633036109a2576020816109997ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79361398a565b7f167274c9000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c57610ac79061371e565b6040516fffffffffffffffffffffffffffffffff9091168152602090f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c6020526106166fffffffffffffffffffffffffffffffff60405f205416604051918291829190916fffffffffffffffffffffffffffffffff6020820193169052565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610b8c57505050505090565b9091929394602080610bc8837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951610559565b97019301930191939290610b7d565b602060031936011261042e5760043567ffffffffffffffff811161042e573660238201121561042e5780600401359067ffffffffffffffff821161042e576024810190602436918460051b01011161042e57610c3282612f7a565b91610c406040519384612388565b8083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610c6d82612f7a565b015f5b818110610ce85750505f5b818110610c9057604051806106168682610b5a565b5f80610c9d838587612fbf565b90610cad60405180938193613024565b0390305af4610cba613031565b9015610ce05790600191610cce8287613060565b52610cd98186613060565b5001610c7b565b805190602001fd5b806060602080938801015201610c70565b3461042e575f60031936011261042e576020600854604051908152f35b6fffffffffffffffffffffffffffffffff81160361042e57565b606060031936011261042e57600435602435610d4b81610d16565b60443590610d5882610d16565b610d60613692565b825f52600c60205260ff600160405f20015460c81c1615610e4857825f52600c60205260ff600160405f20015460d81c16610e1c57825f52600c6020526001600160a01b03600160405f200154163303610dec5791610999602092610de67ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79584613aa5565b82613b32565b827fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b827f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b827fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b600319606091011261042e57600435610e8c81610777565b90602435610e9981610777565b9060443590565b3461042e57610840610eb136610e74565b91613074565b604060031936011261042e57600435602435610ed281610d16565b610eda613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c60205260405f205460801c15610f9057815f52600c6020526001600160a01b03600160405f200154163303610f605781610f576020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613750565b6109998161398a565b507fa9ad2a22000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b507f167274c9000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b507fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57610840610ff936610e74565b9060405192611009602085612388565b5f84526132e0565b3461042e57602060031936011261042e57602061102f6004356131ab565b6fffffffffffffffffffffffffffffffff60405191168152f35b3461042e575f60031936011261042e5760206001600160a01b0360095416604051908152f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c602052610616600360405f200154604051918291829190602083019252565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660ff600160405f20015460d81c1660405191829182919091602081019215159052565b8015150361042e57565b60a060031936011261042e57602061118360043561114481610777565b60243561115081610777565b60443561115c81610d16565b6064359161116983610777565b608435936111768561111d565b61117e613692565b613fcc565b604051908152f35b602060031936011261042e576004356111a2613692565b805f52600c60205260ff600160405f20015460c81c161561074c57805f52600c60205260ff600160405f20015460d81c166114f15761120b6111ff60016111f1845f52600c60205260405f2090565b01546001600160a01b031690565b6001600160a01b031690565b331415806114db575b6109a25761142b816112467ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793614367565b806114585761125482614227565b80611430575b505b6112c664ffffffffff4216600161127b855f52600c60205260405f2090565b01907fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff78ffffffffff000000000000000000000000000000000000000083549260a01b169116179055565b61131d5f6112dc845f52600c60205260405f2090565b906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b61137b6001611334845f52600c60205260405f2090565b017b010000000000000000000000000000000000000000000000000000007fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff825416179055565b61139260016111f1845f52600c60205260405f2090565b90827fa8e3d71a6c0c719305004b430f6d17f12536f7b803db23a4d7016f5b52699a8c6001600160a01b036113df6113d2845f52600360205260405f2090565b546001600160a01b031690565b6114186113eb85613651565b95836040519485941698169633846040919493926001600160a01b03606083019616825260208201520152565b0390a46040519081529081906020820190565b0390a1005b6114506003611447855f52600c60205260405f2090565b01918254613458565b90555f61125a565b6114c0611486611470845f52600c60205260405f2090565b546fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff6114b960026114ae875f52600c60205260405f2090565b015460a01c60ff1690565b911661451b565b60036114d4845f52600c60205260405f2090565b015561125c565b506114ec6114e882614d74565b1590565b611214565b7f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57602060031936011261042e576001600160a01b0360043561154181610777565b165f526007602052602060405f2054604051908152f35b3461042e57602060031936011261042e5760206106f8600435613605565b600319604091011261042e5760043561158e81610777565b906024356105ad81610777565b3461042e576115a936611576565b6001600160a01b035f54163381036116fa57506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b0383169290602081602481875afa80156116f557611631915f916116c6575b5061162a836001600160a01b03165f52600760205260405f2090565b5490613248565b90811561169157816116687f21252411d5a999da4bc6a490f7143b61ba690edceb4577a2800eab8dfbb1e92c938561168c946141cd565b604051918291339583602090939291936001600160a01b0360408201951681520152565b0390a3005b7ff4c3afcf000000000000000000000000000000000000000000000000000000005f526001600160a01b03841660045260245ffd5b6116e8915060203d6020116116ee575b6116e08183612388565b8101906131cf565b5f61160e565b503d6116d6565b6131de565b7fc6cce6a4000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f5260036020526106166001600160a01b0360405f205416604051918291829190916001600160a01b036020820193169052565b3461042e57602060031936011261042e576001600160a01b036004356117b181610777565b1680156117ce575f526004602052602060405f2054604051908152f35b7f89c62b64000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b3461042e57602060031936011261042e5760043561181781610777565b5f546001600160a01b0381163381036116fa57506001600160a01b037fffffffffffffffffffffffff0000000000000000000000000000000000000000921691829116175f55337fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf805f80a3005b3461042e57602060031936011261042e576004356118a181610777565b6001600160a01b035f54163381036116fa57506001600160a01b036009549116807fffffffffffffffffffffffff00000000000000000000000000000000000000008316176009556001600160a01b036040519216825260208201527fa2548bd4b805e907c1558a47b5858324fe8bb4a2e1ddfca647eecbf65610eebc60403392a27f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c61142b611952600854613216565b60405191829182919060206040840193600181520152565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c5761074190614227565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660405f205460801c604051918291829190916fffffffffffffffffffffffffffffffff6020820193169052565b604060031936011261042e57600435602435611a2381610d16565b611a2b613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c6020526001600160a01b03600160405f200154163303610f6057816109996020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613750565b3461042e57602060031936011261042e576004355f610120604051611ab78161234a565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660405f206003611b206123c9565b91611b7a611b618254611b5b611b45826fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff168752565b60801c90565b6fffffffffffffffffffffffffffffffff166020850152565b611bf3611bea6001830154611ba8611b98826001600160a01b031690565b6001600160a01b03166040880152565b64ffffffffff60a082901c166060870152611bcd60c882901c60ff1615156080880152565b611be160d082901c60ff16151560a0880152565b60d81c60ff1690565b151560c0850152565b611c35611c2a6002830154611c21611c11826001600160a01b031690565b6001600160a01b031660e0880152565b60a01c60ff1690565b60ff16610100850152565b01546101208201526040519182918281516fffffffffffffffffffffffffffffffff168152610140810192916101209081906020818101516fffffffffffffffffffffffffffffffff16908501526040818101516001600160a01b03169085015260608181015164ffffffffff169085015260808181015115159085015260a08181015115159085015260c08181015115159085015260e0818101516001600160a01b0316908501526101008181015160ff16908501520151910152565b3461042e575f60031936011261042e576040515f6002548060011c9060018116908115611d9e575b6020831082146106a357828552602085019190811561066c5750600114611d4c576106168461060a81860382612388565b60025f9081529250907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b818410611d8a5750500161060a826105fa565b805484840152602090930192600101611d77565b91607f1691611d1b565b3461042e57604060031936011261042e57600435611dc581610777565b602435611dd18161111d565b6001600160a01b038216918215611e6e57611e0890335f52600660205260405f20906001600160a01b03165f5260205260405f2090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff831515161790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c316040518061168c339482919091602081019215159052565b827f5b08ba18000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660ff600260405f20015460a01c166040519182918291909160ff6020820193169052565b604060031936011261042e57600435602435611f1281610d16565b611f1a613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c60205260405f205460801c15610f9057815f52600c6020526001600160a01b03600160405f200154163303610f605781807ffddf01d0842635e80929251f6862b3baf136a29f2b2fb148968e8b236d5785fe60606020947ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7965f52600c86526fffffffffffffffffffffffffffffffff60405f205460801c91611fdd8187614275565b611fe686613651565b9260405193845288840152166040820152a2604051908152a1005b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c5761203990613255565b6040519060208201600582101561205257829182520390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660ff600160405f20015460d01c1660405191829182919091602081019215159052565b3461042e57604060031936011261042e576004356120f881610777565b602435906001600160a01b035f54163381036116fa575067016345785d8a000082116121ad576001600160a01b03165f818152600a60205260409020805491927f371789a3d97098f3070492613273a065a7e8a19e009fd1ae92a4b4d4c71ed62d9161217b91908190556040805194855260208501919091523393918291820190565b0390a37f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c61142b611952600854613216565b507f34553172000000000000000000000000000000000000000000000000000000005f5260045267016345785d8a000060245260445ffd5b608060031936011261042e5760043560243561220081610d16565b60443561220c81610777565b6064359061221982610777565b612221613692565b835f52600c60205260ff600160405f20015460c81c16156122b557835f52600c60205260ff600160405f20015460d81c1661228957602092610de68593610999937ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7976143a4565b837f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b837fe21c1431000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e57602060031936011261042e576001600160a01b0360043561230681610777565b165f52600a602052602060405f2054604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610140810190811067ffffffffffffffff82111761236757604052565b61231d565b6040810190811067ffffffffffffffff82111761236757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761236757604052565b604051906123d961014083612388565b565b67ffffffffffffffff811161236757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3461042e57608060031936011261042e5760043561243281610777565b6024359061243f82610777565b6044356064359267ffffffffffffffff841161042e573660238501121561042e5783600401359261246f846123db565b9361247d6040519586612388565b808552366024828801011161042e576020815f926024610840990183890137860101526132e0565b3461042e57602060031936011261042e576004355f52600c602052602060ff600160405f20015460c81c166040519015158152f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c6020526106166001600160a01b03600160405f20015416604051918291829190916001600160a01b036020820193169052565b3461042e575f60031936011261042e57602060405167016345785d8a00008152f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c5761074190614367565b604060031936011261042e576004356024356125b581610d16565b6125bd613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c60205260405f205460801c15610f9057815f52600c6020526001600160a01b03600160405f200154163303610f605781610f576020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613b32565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061660405f205460801c1560405191829182919091602081019215159052565b60c060031936011261042e576004356024356126ac81610d16565b6044356126b881610777565b6064356126c481610777565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c36011261042e576126f6613692565b835f52600c60205260ff600160405f20015460c81c16156122b557835f52600c60205260ff600160405f20015460d81c166122895761273591846143a4565b604051916127428361236c565b60843561274e81610777565b835260a435602084019080825267016345785d8a0000811161283657506001600160a01b038451161561280e577ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7936127bb6127b261142b956127fe945190614e86565b85929192613b32565b6fffffffffffffffffffffffffffffffff6127f46127e660026111f1885f52600c60205260405f2090565b93516001600160a01b031690565b91169133906149f2565b6040519081529081906020820190565b7f5f946a02000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f54b392b2000000000000000000000000000000000000000000000000000000005f5260045267016345785d8a000060245260445ffd5b3461042e575f60031936011261042e57475f808080846001600160a01b038254165af1612898613031565b50156128d1576001600160a01b03805f5416167fc9a0214d4c5fed6341233260a7bc0c9ac1d712cc5882165fa985bb71d4f207ae5f80a3005b6001600160a01b035f54167f186f33ac000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b3461042e57602060031936011261042e5760043561292781613605565b505f6001600160a01b0360095416916044604051809481937fe9dc637500000000000000000000000000000000000000000000000000000000835230600484015260248301525afa80156116f5575f9061298c575b610616906040519182918261059c565b503d805f833e61299c8183612388565b81019060208183031261042e5780519067ffffffffffffffff821161042e57019080601f8301121561042e578151916129d4836123db565b916129e26040519384612388565b8383526020848301011161042e5761061692612a049160208085019101610538565b61297c565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c57805f52600c60205260405f205460801c15610a64576127fe610616916134ab565b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c6020526106166001600160a01b03600260405f20015416604051918291829190916001600160a01b036020820193169052565b3461042e57604060031936011261042e57602060ff612b19600435612ae381610777565b6001600160a01b0360243591612af883610777565b165f526006845260405f20906001600160a01b03165f5260205260405f2090565b54166040519015158152f35b604060031936011261042e57600435602435612b4081610777565b612b48613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7612b9b602093612b9484613c7a565b9084614568565b939092604051908152a1604080516fffffffffffffffffffffffffffffffff928316815292909116602083015290f35b3461042e57602060031936011261042e57600435805f52600c60205260ff600160405f20015460c81c161561074c575f52600c60205261061664ffffffffff600160405f20015460a01c166040519182918291909164ffffffffff6020820193169052565b604060031936011261042e57600435602435612c4b81610d16565b612c53613692565b815f52600c60205260ff600160405f20015460c81c1615610fbc57815f52600c60205260ff600160405f20015460d81c16612cd557815f52600c6020526001600160a01b03600160405f200154163303610f6057816109996020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613aa5565b507f7354d5f1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461042e575f60031936011261042e5760206001600160a01b035f5416604051908152f35b60c060031936011261042e576020600435612d4081610777565b611183612d85602435612d5281610777565b604435612d5e81610d16565b60643590612d6b82610777565b60843592612d788461111d565b60a4359661117688610d16565b9182613b32565b606060031936011261042e57600435602435612da781610777565b60443590612db482610d16565b612dbc613692565b825f52600c60205260ff600160405f20015460c81c1615610e4857612b9b83927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce792602095614568565b3461042e57612e1436611576565b6001600160a01b035f54163381036116fa57506001600160a01b03821691825f52600b6020526fffffffffffffffffffffffffffffffff60405f205416908115612f235781612eef7fc9a4a66b97fd7e52e69c5be7b10bdc5341bded817201b9b7136a75068d4e4e05938584612ec9612ea161168c976001600160a01b03165f52600b60205260405f2090565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008154169055565b612ee4816001600160a01b03165f52600760205260405f2090565b8381540390556141cd565b604080516001600160a01b0390951685526fffffffffffffffffffffffffffffffff90911660208501523393918291820190565b7ff717901b000000000000000000000000000000000000000000000000000000005f526001600160a01b03841660045260245ffd5b612f6181613605565b505f5260056020526001600160a01b0360405f20541690565b67ffffffffffffffff81116123675760051b60200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b919081101561301f5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561042e57019081359167ffffffffffffffff831161042e57602001823603811361042e579190565b612f92565b908092918237015f815290565b3d1561305b573d90613042826123db565b916130506040519384612388565b82523d5f602084013e565b606090565b805182101561301f5760209160051b010190565b91906001600160a01b0381161561317f57815f5260036020526001600160a01b0360405f205416151580613162575b613135576001600160a01b036130bc8192843391614a4c565b937ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7604051806130f187829190602083019252565b0390a11692169180830361310457505050565b7f64283d7b000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f7da2ea2b000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b50815f52600c60205260ff600160405f20015460d01c16156130a3565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b805f52600c60205260ff600160405f20015460c81c161561074c576105ad90613c7a565b9081602091031261042e575190565b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820191821161324357565b6131e9565b9190820391821161324357565b805f52600c60205260ff600160405f20015460d81c166132da5761327881614367565b1515905f52600c6020526fffffffffffffffffffffffffffffffff6132b96132a460405f205460801c90565b6fffffffffffffffffffffffffffffffff1690565b16156132cc576132c7575f90565b600190565b6132d557600290565b600390565b50600490565b9092916132ee818584613074565b833b6132fb575b50505050565b60209161333660405194859384937f150b7a0200000000000000000000000000000000000000000000000000000000855233600486016144d0565b03815f6001600160a01b0387165af15f9181613427575b506133a0575061335b613031565b8051919082613399577f64a0ae92000000000000000000000000000000000000000000000000000000005f526001600160a01b03821660045260245ffd5b9050602001fd5b7fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009116036133f357505f8080806132f5565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f526001600160a01b031660045260245ffd5b61344a91925060203d602011613451575b6134428183612388565b8101906144bb565b905f61334d565b503d613438565b9190820180921161324357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b811561349c570490565b613465565b811561349c570690565b6fffffffffffffffffffffffffffffffff6134d1611470835f52600c60205260405f2090565b169081156135da576134fa6134f360026114ae845f52600c60205260405f2090565b809361451b565b9161351a6003613512845f52600c60205260405f2090565b0154916144fe565b61352c61352684614227565b83613458565b6135368286613458565b11156135d257613576916135626132a46132a461355b875f52600c60205260405f2090565b5460801c90565b940301926135708185613492565b936134a1565b6135b1576135a360016135946135ad935f52600c60205260405f2090565b015460a01c64ffffffffff1690565b64ffffffffff1690565b0190565b906135cd6135a3600161359481955f52600c60205260405f2090565b010190565b505050505f90565b7f0f04b2a1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f5260036020526001600160a01b0360405f205416908115613626575090565b7f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b61365a81614227565b815f52600c602052600360405f2001548101809111613243576105ad915f52600c60205260ff600260405f20015460a01c1690614998565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036136c457565b7fa1c0d6e5000000000000000000000000000000000000000000000000000000005f5260045ffd5b906fffffffffffffffffffffffffffffffff809116911603906fffffffffffffffffffffffffffffffff821161324357565b6105ad90805f52600c60205261374a6fffffffffffffffffffffffffffffffff60405f20541691613c7a565b906136ec565b6fffffffffffffffffffffffffffffffff8216801561395d576137728261371e565b6fffffffffffffffffffffffffffffffff81169081831161391557506137a66132a4611470855f52600c60205260405f2090565b106138b2576001600160a01b037fe31f2d40d5780915b1e656a67e11bdf09b0a4a925ec42bbeae220c8ca937ab499161388c6137ef60016111f1875f52600c60205260405f2090565b918261380860026111f1895f52600c60205260405f2090565b612ec961381d895f52600c60205260405f2090565b6138518b61383b83546fffffffffffffffffffffffffffffffff1690565b036fffffffffffffffffffffffffffffffff1690565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b6040516fffffffffffffffffffffffffffffffff9095168552169280602081015b0390a3565b61086e83836138cc611470825f52600c60205260405f2090565b907fcb5f605f000000000000000000000000000000000000000000000000000000005f5292916fffffffffffffffffffffffffffffffff80926064956004521660245216604452565b7fe9771401000000000000000000000000000000000000000000000000000000005f5260048490526fffffffffffffffffffffffffffffffff8086166024521660445260645ffd5b7fea66b871000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b5f818152600c60205260409020546139a49060801c6132a4565b15613a72576139b281614227565b80613a53575b506139d864ffffffffff4216600161127b845f52600c60205260405f2090565b6139ee5f6112dc835f52600c60205260405f2090565b805f52600c6020526001600160a01b03600160405f20015416815f5260036020526001600160a01b0360405f205416917fda83bf669c651406e02062769e01d14cccb5625ea685fd95e0e56d29597dac476020613a4a83613651565b604051908152a4565b613a6a6003611447845f52600c60205260405f2090565b90555f6139b8565b7fd2657d5a000000000000000000000000000000000000000000000000000000005f90815260049190915260245260445ffd5b805f52600c60205260405f205460801c613b0757613ac38282614275565b6040516fffffffffffffffffffffffffffffffff92909216825233917fc2a543cfadbf862642247e28711aaa30e3460384be5712be6557fee3384454fd90602090a3565b7fdc6fbbbc000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6fffffffffffffffffffffffffffffffff82168015613c4e575f828152600c6020526040902060028101546001600160a01b0316919091816fffffffffffffffffffffffffffffffff808554161601926fffffffffffffffffffffffffffffffff841161324357613c0793613bdd91906fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b613bf8816001600160a01b03165f52600760205260405f2090565b828154019055309033906149f2565b6040516fffffffffffffffffffffffffffffffff909216825233917fa06c1466b3c9751408a5ac337a2e8808e5ee0ceed1fd70635d041b21174eb6b49080602081016138ad565b507f33f2df5a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b805f52600c6020526fffffffffffffffffffffffffffffffff60405f205416908115613cbe57613ca990613651565b808210613cba576105ad9150614c4b565b5090565b50505f90565b9081602091031261042e575160ff8116810361042e5790565b90610120600391613d3e613d0182516fffffffffffffffffffffffffffffffff1690565b85906fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055565b613d9f613d5e60208301516fffffffffffffffffffffffffffffffff1690565b85546fffffffffffffffffffffffffffffffff1660809190911b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000016178555565b613f5b60018501613df1613dbd60408501516001600160a01b031690565b82906001600160a01b03167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b613e50613e06606085015164ffffffffff1690565b82547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff1660a09190911b78ffffffffff000000000000000000000000000000000000000016178255565b613eab613e606080850151151590565b82547fffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff1690151560c81b79ff0000000000000000000000000000000000000000000000000016178255565b613f07613ebb60a0850151151590565b82547fffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff1690151560d01b7aff000000000000000000000000000000000000000000000000000016178255565b60c0830151151581547fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff1690151560d81b7bff00000000000000000000000000000000000000000000000000000016179055565b613fc560028501613f79613dbd60e08501516001600160a01b031690565b61010083015181547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1660a09190911b74ff000000000000000000000000000000000000000016179055565b0151910155565b929493916001600160a01b0384169182156141a5576001600160a01b038716946040517f313ce5670000000000000000000000000000000000000000000000000000000081526020816004818a5afa9081156116f5575f91614176575b50601260ff82161161414157600854986140416123c9565b5f81526fffffffffffffffffffffffffffffffff86166020820152926001600160a01b0316604084015264ffffffffff421660608401526001608084015286151560a08401525f60c08401526001600160a01b031660e083015260ff1661010082015261012081015f90526140be885f52600c60205260405f2090565b906140c891613cdd565b600187016008556140d98782614ca7565b604051916001600160a01b038392169461411b91898491926fffffffffffffffffffffffffffffffff6040929594606085019685521660208401521515910152565b037f2262fa211f8507786a60fefb231f7898b8145fe16350f281c91f121bd2ee118d91a4565b7fc9f55392000000000000000000000000000000000000000000000000000000005f526001600160a01b03871660045260245ffd5b614198915060203d60201161419e575b6141908183612388565b810190613cc4565b5f614029565b503d614186565b7ff9bb0fb3000000000000000000000000000000000000000000000000000000005f5260045ffd5b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000060208201526001600160a01b039290921660248301526044808301939093529181526123d991614222606483612388565b614ded565b5f908152600c602052604090206001810154905460801c9060a01c64ffffffffff168115801561426b575b613cbe5742038181029181830414901517156132435790565b5080421115614252565b90815f52600c6020526fffffffffffffffffffffffffffffffff8060405f205460801c16166fffffffffffffffffffffffffffffffff821614614324576142bb82614227565b806142f6575b506112dc6123d9926142e864ffffffffff4216600161127b845f52600c60205260405f2090565b5f52600c60205260405f2090565b91600361430b825f52600c60205260405f2090565b01908154938401809411613243579290556112dc6142c1565b7fd2657d5a000000000000000000000000000000000000000000000000000000005f526004919091526fffffffffffffffffffffffffffffffff1660245260445ffd5b805f52600c60205261438f6fffffffffffffffffffffffffffffffff60405f20541691613651565b9081811015613cbe5781039081116132435790565b90815f52600c6020526001600160a01b03600160405f200154166001600160a01b0382160361445f57506143f96001600160a01b036143eb835f52600360205260405f2090565b54166001600160a01b031690565b6001600160a01b0383160361440c575050565b906144256113d261086e935f52600360205260405f2090565b7f5bdb8ad7000000000000000000000000000000000000000000000000000000005f526001600160a01b0391821660045216602452604490565b6001600160a01b03600161447e61086e945f52600c60205260405f2090565b01547fc8bac88d000000000000000000000000000000000000000000000000000000005f526001600160a01b039283166004521616602452604490565b9081602091031261042e57516105ad81610404565b90926001600160a01b03608093816105ad979616845216602083015260408201528160608201520190610559565b601260ff8216146145155760120360ff16600a0a90565b50600190565b90601260ff821614613cba5760120360ff16600a0a0290565b1561453b57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b9291905f936fffffffffffffffffffffffffffffffff831690811561496d576001600160a01b03831615614942576145ae6111ff6113d2835f52600360205260405f2090565b6001600160a01b038416141580614930575b6148f4576145db60026114ae835f52600c60205260405f2090565b916146046145e883614227565b60036145fc855f52600c60205260405f2090565b015490613458565b61460e8482614998565b93614624611470855f52600c60205260405f2090565b92856fffffffffffffffffffffffffffffffff8516105f146148e657835b6fffffffffffffffffffffffffffffffff8116821161489e5750906146669161451b565b90600361467b855f52600c60205260405f2090565b0154821161486357506003614698845f52600c60205260405f2090565b019081540390555b6146d36146b5835f52600c60205260405f2090565b6138518761383b83546fffffffffffffffffffffffffffffffff1690565b6146ea60026111f1845f52600c60205260405f2090565b92614706846001600160a01b03165f52600a60205260405f2090565b54806147e8575b509061477f6132a46147696147859461475a6fffffffffffffffffffffffffffffffff8b1661474d8a6001600160a01b03165f52600760205260405f2090565b8181540390558a8a6141cd565b61476387613651565b90613248565b9261374a611470875f52600c60205260405f2090565b14614534565b604080513381526fffffffffffffffffffffffffffffffff86811660208301528816918101919091526001600160a01b0392831693909216917f1a7b0d6c8f96b874563b711cf97793fe3be5dc42dbd1e0720ce40f326918e81790606090a49190565b61476998506132a461480261477f92614785959499614e86565b9a909a986148598c6138516148288b6001600160a01b03165f52600b60205260405f2090565b9161484383546fffffffffffffffffffffffffffffffff1690565b016fffffffffffffffffffffffffffffffff1690565b939450505061470d565b036003614878845f52600c60205260405f2090565b015561489964ffffffffff4216600161127b855f52600c60205260405f2090565b6146a0565b7ff9f29859000000000000000000000000000000000000000000000000000000005f5260048690526fffffffffffffffffffffffffffffffff808a166024521660445260645ffd5b6148ef86614c4b565b614642565b7f4208ab4c000000000000000000000000000000000000000000000000000000005f52600452336024526001600160a01b03821660445260645ffd5b5061493d6114e882614d74565b6145c0565b7f9f32c858000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fb4855052000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90601260ff821614613cba5760120360ff16600a0a90811561349c570490565b6149ca905f52600560205260405f2090565b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b9091926001600160a01b036123d99481604051957f23b872dd000000000000000000000000000000000000000000000000000000006020880152166024860152166044840152606483015260648252614222608483612388565b815f5260036020526001600160a01b0360405f205416926001600160a01b038116614b46575b506001600160a01b03831680614af7575b614aa96001600160a01b0383169283614ad0575b61080d855f52600360205260405f2090565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a490565b614aeb816001600160a01b03165f52600460205260405f2090565b60018154019055614a97565b614b00836149b8565b614b1b846001600160a01b03165f52600460205260405f2090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8154019055614a83565b614b616001600160a01b0382168015159081614bd957501590565b15614a7257826001600160a01b038516614ba0577f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f177e802f000000000000000000000000000000000000000000000000000000005f526001600160a01b0390911660045260245260445ffd5b6001600160a01b03871680821492508215614c18575b508115614bfb57501590565b9050845f5260056020526001600160a01b0360405f205416141590565b9091505f52600660205260ff614c428460405f20906001600160a01b03165f5260205260405f2090565b5416905f614bef565b6fffffffffffffffffffffffffffffffff8111614c77576fffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52608060045260245260445ffd5b6001600160a01b0381161561317f57815f5260036020526001600160a01b0360405f205416151580614d57575b61313557907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7614d21614d105f846001600160a01b0396614a4c565b604051938452929081906020820190565b0390a116614d2b57565b7f73c6ac6e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b50815f52600c60205260ff600160405f20015460d01c1615614cd4565b805f5260036020526001600160a01b0360405f20541690813314918215614dba575b508115614da1575090565b90506001600160a01b03614db53392612f58565b161490565b9091505f52600660205260ff614de43360405f20906001600160a01b03165f5260205260405f2090565b5416905f614d96565b5f806001600160a01b03614e1693169360208151910182865af1614e0f613031565b9083614fd0565b8051908115159182614e61575b5050614e2c5750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90915060209082018290031261042e5760200151614e7e8161111d565b155f80614e23565b9190614ea4906fffffffffffffffffffffffffffffffff8416614f03565b6fffffffffffffffffffffffffffffffff8111614ed8576fffffffffffffffffffffffffffffffff6105ad911680936136ec565b7f4916adce000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9190917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83820983820291828083109203918083039214614fbf57670de0b6b3a7640000821015614f8f577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106699394670de0b6b3a7640000910990828211900360ee1b910360121c170290565b84907f5173648d000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b5050670de0b6b3a764000090049150565b9061500d5750805115614fe557805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580615053575b61501e575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561501656fea164736f6c634300081a000a","sourceMap":"1140:31230:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;:::i;:::-;;;11529:25:81;;:65;;;;;1140:31230:77;-1:-1:-1;1140:31230:77;;;;;;;;;;11529:65:81;1713:25:9;1698:40;;;-1:-1:-1;1698:104:9;;;;11529:65:81;1698:156:9;;;;11529:65:81;;;;;1698:156:9;876:25:17;861:40;;;1698:156:9;;;:104;1769:33;1754:48;;;-1:-1:-1;1698:104:9;;1140:31230:77;;;;;;;;-1:-1:-1;;1140:31230:77;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;2442:5:9;1140:31230:77;;2442:5:9;1140:31230:77;;2442:5:9;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;2442:5:9;1140:31230:77;;;;;-1:-1:-1;1140:31230:77;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;;;;;;2442:5:9;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;;;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;6569:22:77;;;:::i;:::-;1140:31230;;;;;;;;3137:99:81;3192:33;-1:-1:-1;3192:33:81;1140:31230:77;;;-1:-1:-1;3192:33:81;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;;;:::o;:::-;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;:::i;:::-;;;14943:22:9;;;;:::i;:::-;735:10:15;15093:18:9;;:35;;;1140:31230:77;15093:69:9;;;1140:31230:77;15089:142:9;;1140:31230:77;15346:29:9;1140:31230:77;15346:24:9;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;;;15283:28:9;-1:-1:-1;15283:28:9;;1140:31230:77;;15346:15:9;1140:31230:77;;;;;;;15346:24:9;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;15346:29:9;1140:31230:77;15089:142:9;15189:27;-1:-1:-1;15189:27:9;735:10:15;1140:31230:77;;;-1:-1:-1;15189:27:9;;-1:-1:-1;15189:27:9;15093:69;735:10:15;1140:31230:77;4039:35:9;735:10:15;4039:25:9;;-1:-1:-1;;;;;1140:31230:77;;;4039:18:9;1140:31230:77;;;;;;;4039:25:9;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;4039:35:9;1140:31230:77;;15132:30:9;15093:69;;:35;735:10:15;;-1:-1:-1;;;;;1140:31230:77;;15115:13:9;;15093:35;;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;:::i;:::-;;-1:-1:-1;1140:31230:77;1931:72:81;1140:31230:77;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;-1:-1:-1;;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3901:25:81;1140:31230:77;;3887:10:81;:39;3883:130;;1140:31230:77;12510:29;12631:16;12510:29;4183:38:81;12510:29:77;;:::i;:::-;12631:16;;:::i;:::-;1140:31230;;;;;4183:38:81;1140:31230:77;3883:130:81;3949:53;-1:-1:-1;3949:53:81;1140:31230:77;;3887:10:81;1140:31230:77;;;-1:-1:-1;3949:53:81;1140:31230:77;;-1:-1:-1;;1140:31230:77;;;;;;;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;-1:-1:-1;1140:31230:77;;;;3382:46:81;3378:125;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;-1:-1:-1;;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3901:25:81;1140:31230:77;;3887:10:81;:39;3883:130;;1140:31230:77;11327:8;;4183:38:81;11327:8:77;;:::i;3378:125:81:-;3451:41;-1:-1:-1;3451:41:81;1140:31230:77;;;-1:-1:-1;3451:41:81;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;5262:29:77;;;:::i;:::-;1140:31230;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;-1:-1:-1;1140:31230:77;;;;;;894:13:79;;-1:-1:-1;909:9:79;;;;;;1140:31230:77;;;;;;;:::i;920:3:79:-;-1:-1:-1;1004:8:79;;;;;;:::i;:::-;1140:31230:77;;;;;;;;;:::i;:::-;977:36:79;985:4;;977:36;;;;:::i;:::-;1118:8;;1114:377;;1560:19;1140:31230:77;1560:19:79;;;;;:::i;:::-;;;;;;:::i;:::-;;1140:31230:77;894:13:79;;1114:377;1146:331;;;1140:31230:77;1146:331:79;;1140:31230:77;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;1651:36:81;1140:31230:77;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3649:27:81;1140:31230:77;;;;3645:106:81;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;-1:-1:-1;;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3901:25:81;1140:31230:77;;3887:10:81;:39;3883:130;;13524:13:77;13633:6;1140:31230;13524:13;;4183:38:81;13524:13:77;;;:::i;:::-;13633:6;;:::i;3883:130:81:-;3949:53;;-1:-1:-1;3949:53:81;1140:31230:77;;3887:10:81;1140:31230:77;;;-1:-1:-1;3949:53:81;3645:106;3699:41;;-1:-1:-1;3699:41:81;1140:31230:77;;;-1:-1:-1;3699:41:81;3137:99;3192:33;;-1:-1:-1;3192:33:81;1140:31230:77;;;-1:-1:-1;3192:33:81;1140:31230:77;-1:-1:-1;;1140:31230:77;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;-1:-1:-1;1140:31230:77;;;;3382:46:81;3378:125;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;-1:-1:-1;;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3901:25:81;1140:31230:77;;3887:10:81;:39;3883:130;;12127:6:77;;1140:31230;12127:6;4183:38:81;12127:6:77;;:::i;:::-;12216:8;;;:::i;3883:130:81:-;3949:53;;-1:-1:-1;3949:53:81;1140:31230:77;;3887:10:81;1140:31230:77;;;-1:-1:-1;3949:53:81;3378:125;3451:41;;-1:-1:-1;3451:41:81;1140:31230:77;;;-1:-1:-1;3451:41:81;3137:99;3192:33;;-1:-1:-1;3192:33:81;1140:31230:77;;;-1:-1:-1;3192:33:81;1140:31230:77;;;;4873:39:9;1140:31230:77;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;4873:39:9;:::i;1140:31230:77:-;;;;;-1:-1:-1;;1140:31230:77;;;;;;2367:19;1140:31230;;2367:19;:::i;:::-;1140:31230;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;-1:-1:-1;;;;;1731:48:81;1140:31230:77;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;5554:37:81;1140:31230:77;-1:-1:-1;1140:31230:77;5554:37:81;1140:31230:77;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;7237:27:81;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1140:31230:77;;;;;;8530:62;1140:31230;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;8530:62:77;:::i;:::-;1140:31230;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3649:27:81;1140:31230:77;;;;3645:106:81;;26246:39:77;1140:31230;3142:27:81;26260:18:77;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;26260:18;:25;1140:31230;-1:-1:-1;;;;;1140:31230:77;;;;-1:-1:-1;;;;;1140:31230:77;;;26246:39;:10;:39;;:88;;;1140:31230;26242:201;;4183:38:81;26478:26:77;;4183:38:81;26478:26:77;;:::i;:::-;26588:19;;;26651:30;;;:::i;:::-;26699:21;26695:198;;26584:679;;;27318:57;1140:31230;27359:15;1140:31230;3142:27:81;27318:18:77;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;27318:18;:31;1140:31230;;;;;;;;;;;;;;;27318:57;27438:45;-1:-1:-1;27438:18:77;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;27438:18;1140:31230;;;;;;;;;;;;;;;27438:45;27539:34;3142:27:81;27539:18:77;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;27539:18;:27;1140:31230;;;;;;;;;27539:34;27696:25;3142:27:81;27696:18:77;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;27696:25;5799:16:9;;27614:287:77;-1:-1:-1;;;;;5799:16:9;;;1140:31230:77;;5799:7:9;1140:31230:77;;;;;;;5799:16:9;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;5799:16:9;27614:287:77;27824:22;;;:::i;:::-;1140:31230;;;;;;;;;;26246:10;;27614:287;1140:31230;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;;27614:287;;;;1140:31230;;;;;;;;;;;;;4183:38:81;;;;1140:31230:77;26695:198;26820:58;:37;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;26820:18;:37;1140:31230;;;26820:58;:::i;:::-;1140:31230;;26695:198;;;26584:679;27149:103;27179:26;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;27179:18;1140:31230;;;;;27179:26;1140:31230;;27217:32;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;27217:18;:32;1140:31230;;;;;;;;;;27149:103;:::i;:::-;27093:37;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;27093:18;:37;1140:31230;26584:679;;26246:88;26290:44;26289:45;26290:44;;;:::i;:::-;26289:45;;1140:31230;26289:45;26246:88;;3645:106:81;3699:41;-1:-1:-1;3699:41:81;1140:31230:77;;;-1:-1:-1;3699:41:81;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;:::i;:::-;;-1:-1:-1;1140:31230:77;1535:72:81;1140:31230:77;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;2274:22:9;1140:31230:77;;2274:22:9;:::i;1140:31230:77:-;-1:-1:-1;;1140:31230:77;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;899:5:78;1140:31230:77;;908:10:78;899:19;;895:116;;-1:-1:-1;1140:31230:77;;;9363:30:81;;9387:4;1140:31230:77;9363:30:81;;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;;9363:30:81;1140:31230:77;;;;9363:30:81;;;;;;:56;:30;899:5:78;9363:30:81;;;1140:31230:77;9396:23:81;;;-1:-1:-1;;;;;1140:31230:77;;;9396:16:81;1140:31230:77;;;;;;;9396:23:81;1140:31230:77;9363:56:81;;:::i;:::-;9483:12;;;9479:100;;9682:7;;9706:39;9682:7;;9706:39;9682:7;;:::i;:::-;1140:31230:77;;908:10:78;;;;9706:39:81;;1140:31230:77;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;9706:39:81;;;;1140:31230:77;9479:100:81;9518:50;899:5:78;9518:50:81;-1:-1:-1;;;;;1140:31230:77;;;;;-1:-1:-1;15189:27:9;9363:30:81;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;895:116:78:-;941:59;899:5;941:59;1140:31230:77;;908:10:78;1140:31230:77;;;899:5:78;941:59;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;5799:7:9;1140:31230:77;;;-1:-1:-1;;;;;1140:31230:77;-1:-1:-1;1140:31230:77;;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;:::i;:::-;;2006:19:9;;2002:87;;-1:-1:-1;1140:31230:77;;;;;;-1:-1:-1;1140:31230:77;;;;;;;;2002:87:9;2048:30;-1:-1:-1;2048:30:9;-1:-1:-1;1140:31230:77;;;-1:-1:-1;2048:30:9;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;:::i;:::-;-1:-1:-1;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;908:10:78;899:19;;895:116;;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;908:10:78;1484:70;-1:-1:-1;1484:70:78;;1140:31230:77;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;1140:31230:77;;908:10:78;899:19;;895:116;;1140:31230:77;-1:-1:-1;;;;;9977:13:81;1140:31230:77;;;;;;;;9977:13:81;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;10097:172:81;1140:31230:77;908:10:78;10097:172:81;;10338:70;;10389:16;:12;1140:31230:77;10389:16:81;:::i;:::-;1140:31230:77;;10338:70:81;;;;1140:31230:77;;;;;;;10374:1:81;1140:31230:77;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;4991:30:77;;;:::i;1140:31230::-;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;-1:-1:-1;;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3901:25:81;1140:31230:77;;3887:10:81;:39;3883:130;;11710:6:77;;1140:31230;11710:6;4183:38:81;11710:6:77;;:::i;1140:31230::-;;;;;-1:-1:-1;;1140:31230:77;;;;;;;-1:-1:-1;1140:31230:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;;-1:-1:-1;1140:31230:77;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3142:27:81;1140:31230:77;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;2597:7:9;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2597:7:9;1140:31230:77;;;;;-1:-1:-1;1140:31230:77;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1140:31230:77;;15698:22:9;;;15694:91;;15794:35;735:10:15;;-1:-1:-1;1140:31230:77;15794:18:9;1140:31230:77;;;-1:-1:-1;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;15794:35:9;1140:31230:77;;;;;;;;;;;;15855:41:9;1140:31230:77;;735:10:15;15855:41:9;735:10:15;15855:41:9;;1140:31230:77;;;;;;;;;;;;15694:91:9;15743:31;;-1:-1:-1;15743:31:9;1140:31230:77;;;-1:-1:-1;15743:31:9;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;;6439:32:81;1140:31230:77;-1:-1:-1;1140:31230:77;6439:32:81;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;-1:-1:-1;1140:31230:77;;;;3382:46:81;3378:125;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;-1:-1:-1;;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3901:25:81;1140:31230:77;;3887:10:81;:39;3883:130;;1140:31230:77;;7917:216;1140:31230;;;4183:38:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;;-1:-1:-1;1140:31230:77;;;;7853:16;;;;;:::i;:::-;8004:22;;;:::i;:::-;1140:31230;;;;;;;;;;;;;;;7917:216;1140:31230;;;;;4183:38:81;1140:31230:77;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;5337:1063:77;;;:::i;:::-;1140:31230;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:31230:77;;;;;-1:-1:-1;1140:31230:77;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;7036:33:81;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;1140:31230:77;;908:10:78;899:19;;895:116;;1033:23:51;1484:6:81;1033:23:51;;10638:128:81;;-1:-1:-1;;;;;1140:31230:77;-1:-1:-1;1140:31230:77;;;10801:11:81;1140:31230:77;;;;;;;;;10974:188:81;;;;1140:31230:77;;;;;;;;;;;;;;;;;908:10:78;;1140:31230:77;;;;;;;10974:188:81;;;;11231:70;;11282:16;:12;1140:31230:77;11282:16:81;:::i;10638:128::-;10689:66;;-1:-1:-1;10689:66:81;1140:31230:77;;1484:6:81;1140:31230:77;;;-1:-1:-1;10689:66:81;1140:31230:77;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3649:27:81;1140:31230:77;;;;3645:106:81;;1140:31230:77;9671:9;;;;9776:6;9671:9;4183:38:81;9671:9:77;;:::i;3645:106:81:-;3699:41;;-1:-1:-1;3699:41:81;1140:31230:77;;;-1:-1:-1;3699:41:81;3137:99;3192:33;;-1:-1:-1;3192:33:81;1140:31230:77;;;-1:-1:-1;3192:33:81;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;:::i;:::-;;-1:-1:-1;1140:31230:77;1823:64:81;1140:31230:77;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;1140:31230:77;;;;;;;-1:-1:-1;1140:31230:77;6835:8:81;1140:31230:77;;;;6835:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;6835:27:81;1140:31230:77;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;-1:-1:-1;;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;5277:25:81;1140:31230:77;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;1484:6:81;1140:31230:77;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;6823:26:77;;;:::i;1140:31230::-;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;-1:-1:-1;1140:31230:77;;;;3382:46:81;3378:125;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;-1:-1:-1;;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3901:25:81;1140:31230:77;;3887:10:81;:39;3883:130;;10197:6:77;;1140:31230;10197:6;4183:38:81;10197:6:77;;:::i;1140:31230::-;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;;-1:-1:-1;1140:31230:77;;;;6639:46:81;1140:31230:77;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3649:27:81;1140:31230:77;;;;3645:106:81;;10825:9:77;;;;:::i;:::-;1140:31230;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;1484:6:81;1033:23:51;;1333:114:88;;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;1525:28:88;1521:104;;4183:38:81;1140:31230:77;23038:13;1770:48:88;4183:38:81;1140:31230:77;23117:107;1140:31230;;1770:48:88;;:::i;:::-;23038:13:77;;;;;:::i;:::-;1140:31230;;;23117:24;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;23167:10;;23117:107;;:::i;:::-;1140:31230;;;;;;;;;;;;;1521:104:88;1576:38;-1:-1:-1;1576:38:88;1140:31230:77;-1:-1:-1;1576:38:88;1333:114;1381:55;-1:-1:-1;1381:55:88;1140:31230:77;;1484:6:81;1140:31230:77;;;-1:-1:-1;1381:55:88;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;7982:21:81;1140:31230:77;;;;;-1:-1:-1;;;;;1140:31230:77;;;8083:34:81;;;;:::i;:::-;;8170:8;8166:102;;-1:-1:-1;;;;;1140:31230:77;;;;;8318:68:81;1140:31230:77;8318:68:81;;1140:31230:77;8166:102:81;-1:-1:-1;;;;;1140:31230:77;;;8201:56:81;1140:31230:77;8201:56:81;1140:31230:77;;;;;;8201:56:81;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;;;7465:36:81;;;:::i;:::-;;-1:-1:-1;;;;;;7573:13:81;1140:31230:77;;;7573:65:81;1140:31230:77;;7573:65:81;;;;1140:31230:77;7573:65:81;;7611:4;1140:31230:77;7573:65:81;;1140:31230:77;;;;;7573:65:81;;;;;;-1:-1:-1;7573:65:81;;;1140:31230:77;;;;;;;;;;:::i;7573:65:81:-;;;;-1:-1:-1;7573:65:81;;;;;;:::i;:::-;;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7573:65:81;;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;-1:-1:-1;1140:31230:77;;;;3382:46:81;3378:125;;2482:2272:77;1140:31230;2482:2272;;:::i;1140:31230::-;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;-1:-1:-1;;;;;6180:24:81;1140:31230:77;-1:-1:-1;1140:31230:77;6180:24:81;1140:31230:77;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;4039:35:9;1140:31230:77;;;;;:::i;:::-;-1:-1:-1;;;;;1140:31230:77;;;;;;:::i;:::-;;-1:-1:-1;1140:31230:77;4039:18:9;1140:31230:77;;;-1:-1:-1;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;4039:35:9;1140:31230:77;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;14818:24:77;4183:38:81;14959:36:77;1140:31230;14818:24;;;;:::i;:::-;14959:36;;;:::i;:::-;1140:31230;;;;;;;;4183:38:81;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;5780:31:81;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3649:27:81;1140:31230:77;;;;3645:106:81;;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;-1:-1:-1;;;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3901:25:81;1140:31230:77;;3887:10:81;:39;3883:130;;13062:13:77;;1140:31230;13062:13;4183:38:81;13062:13:77;;:::i;3645:106:81:-;3699:41;;-1:-1:-1;3699:41:81;1140:31230:77;;;-1:-1:-1;3699:41:81;1140:31230:77;;;;;-1:-1:-1;;1140:31230:77;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;:::i;:::-;9180:6;9023:62;1140:31230;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;9023:62::-;9180:6;;;:::i;1140:31230::-;;-1:-1:-1;;1140:31230:77;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;519:76:80;;:::i;:::-;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;14431:31:77;;;4183:38:81;14431:31:77;1140:31230;14431:31;;:::i;1140:31230::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;899:5:78;1140:31230:77;;908:10:78;899:19;;895:116;;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;;899:5:78;1140:31230:77;8550:15:81;1140:31230:77;;;;899:5:78;1140:31230:77;;;8643:12:81;;;8639:106;;8802:22;9050:46;9112:102;8802:22;;;:26;:22;9112:102;8802:22;-1:-1:-1;;;;;1140:31230:77;;;8550:15:81;1140:31230:77;;;;;;;8802:22:81;1140:31230:77;;;;;;;8802:26:81;8916:23;;-1:-1:-1;;;;;1140:31230:77;;;9396:16:81;1140:31230:77;;;;;;;8916:23:81;1140:31230:77;;;;;;9050:46:81;:::i;:::-;1140:31230:77;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;908:10:78;;1140:31230:77;;;;;;;8639:106:81;8678:56;899:5:78;8678:56:81;-1:-1:-1;;;;;1140:31230:77;;;;;-1:-1:-1;15189:27:9;3497:154;3583:22;;;:::i;:::-;;-1:-1:-1;1140:31230:77;6034:15:9;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;-1:-1:-1;1140:31230:77;;;3497:154:9;:::o;1140:31230:77:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1140:31230:77;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;4143:578:9:-;;;-1:-1:-1;;;;;1140:31230:77;;4237:16:9;4233:87;;1140:31230:77;4251:1:9;1140:31230:77;5799:7:9;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;4251:1:9;1140:31230:77;;;13472:18:81;;:56;;;4143:578:9;13468:142:81;;-1:-1:-1;;;;;13627:33:81;735:10:15;;;;13627:33:81;;:::i;:::-;1140:31230:77;4183:38:81;1140:31230:77;;4183:38:81;;;;1140:31230:77;;;;;;;;4183:38:81;;;;1140:31230:77;;;4610:21:9;;;;4606:109;;4143:578;;;:::o;4606:109::-;4654:50;4251:1;4654:50;;1140:31230:77;;;;;;4251:1:9;4654:50;13468:142:81;13551:48;4251:1:9;13551:48:81;2867:46:77;1140:31230;;;;-1:-1:-1;15189:27:9;13472:56:81;1140:31230:77;;4251:1:9;1140:31230:77;13495:8:81;1140:31230:77;;;13495:33:81;1140:31230:77;4251:1:9;1140:31230:77;13495:33:81;1140:31230:77;;;;13494:34:81;13472:56;;4233:87:9;4276:33;4251:1;4276:33;4251:1;4276:33;1140:31230:77;;4251:1:9;4276:33;3092:161:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:8:81;1140:31230:77;;;3142:27:81;1140:31230:77;-1:-1:-1;1140:31230:77;3142:27:81;1140:31230:77;;;;3141:28:81;3137:99;;2412:24:77;;;:::i;1140:31230::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;5337:1063::-;1140:31230;-1:-1:-1;1140:31230:77;5497:8;1140:31230;;;5497:27;1140:31230;-1:-1:-1;1140:31230:77;5497:27;1140:31230;;;;5493:83;;5655:26;;;:::i;:::-;:30;;1140:31230;-1:-1:-1;1140:31230:77;5497:8;1140:31230;;;5700:41;:32;1140:31230;-1:-1:-1;1140:31230:77;;;;;;5700:32;1140:31230;;;;5700:41;1140:31230;5700:46;5696:382;;6178:76;;-1:-1:-1;5337:1063:77;:::o;6178:76::-;5497:27;6205:38;:::o;5696:382::-;5850:81;;6041:26;6034:33;:::o;5850:81::-;5888:28;5881:35;:::o;5493:83::-;5540:25;5547:18;5540:25;:::o;4985:208:9:-;;;;5121:7;;;;;:::i;:::-;17034:14;;17030:664;;4985:208;;;;;:::o;17030:664::-;17072:71;1140:31230:77;17072:71:9;1140:31230:77;;17072:71:9;;;;;1140:31230:77;17072:71:9;;735:10:15;17072:71:9;;;;:::i;:::-;;1140:31230:77;17051:1:9;-1:-1:-1;;;;;1140:31230:77;;17072:71:9;;17051:1;;17072:71;;;17030:664;-1:-1:-1;17068:616:9;;17331:353;;;:::i;:::-;1140:31230:77;;;;17381:18:9;;;17430:25;17051:1;17430:25;-1:-1:-1;;;;;1140:31230:77;;;;;-1:-1:-1;15189:27:9;17377:293;17557:95;;17072:71;17557:95;;17068:616;1140:31230:77;;;;17190:51:9;17186:130;;17068:616;17030:664;;;;;;17186:130;17272:25;17051:1;17272:25;-1:-1:-1;;;;;1140:31230:77;;;;-1:-1:-1;15189:27:9;17072:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1140:31230:77;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;:::o;2482:2272::-;1140:31230;;2698:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;;;2832:12;;;2828:96;;3022:65;1140:31230;2956:32;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;;3022:65;;;:::i;:::-;3126:18;3354:59;3126:37;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;3126:18;:37;1140:31230;3354:59;;:::i;:::-;3487:51;3508:30;;;:::i;:::-;3487:51;;:::i;:::-;3542:28;;;;:::i;:::-;-1:-1:-1;3487:83:77;3483:122;;4368:30;3639:18;3615:65;3639:41;:32;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;3639:18;1140:31230;;;;;3615:65;1140:31230;;;4251:30;;;;;:::i;:::-;4368;;:::i;:::-;;;4439:31;3384:1;4439:18;:48;:18;1140:31230;;3142:8:81;1140:31230:77;;;;;;;4439:18;:31;1140:31230;;;;;;;4439:31;1140:31230;;;;4439:48;1140:31230;4364:374;2482:2272::o;4364:374::-;4671:18;:48;:31;3384:1;4671:18;;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;4671:48;1140:31230;;4364:374;2482:2272::o;3483:122::-;3586:8;;;;2698:26;3586:8;:::o;2828:96::-;2867:46;2698:26;2867:46;;1140:31230;;-1:-1:-1;15189:27:9;16138:241;1140:31230:77;-1:-1:-1;1140:31230:77;5799:7:9;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;-1:-1:-1;1140:31230:77;;;16267:19:9;;;16263:88;;16360:12;16138:241;:::o;16263:88::-;16309:31;-1:-1:-1;16309:31:9;;1140:31230:77;;-1:-1:-1;16309:31:9;17410:296:77;17518:30;;;:::i;:::-;1140:31230;-1:-1:-1;1140:31230:77;17551:8;1140:31230;;17551:37;1140:31230;-1:-1:-1;1140:31230:77;17551:37;1140:31230;;;;;;;;17605:94;1140:31230;-1:-1:-1;1140:31230:77;17551:8;1140:31230;;;17664:32;1140:31230;-1:-1:-1;1140:31230:77;17664:32;1140:31230;;;;17605:94;;:::i;1115:145:80:-;-1:-1:-1;;;;;1191:8:80;1140:31230:77;1182:4:80;1174:25;1170:84;;1115:145::o;1170:84::-;1222:21;;;;;;1140:31230:77;;;;;;;;;;;;;;;:::o;17079:156::-;17175:53;17079:156;1140:31230;-1:-1:-1;1140:31230:77;17175:8;1140:31230;;17204:24;1140:31230;;-1:-1:-1;1140:31230:77;;;17204:24;;:::i;:::-;17175:53;;:::i;23826:1518::-;1140:31230;;;23949:11;;23945:94;;24120:29;;;:::i;:::-;1140:31230;;;24243:25;;;;24239:132;;24552:18;24533:45;24552:26;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;24533:45;-1:-1:-1;24529:166:77;;-1:-1:-1;;;;;25278:59:77;24722:18;25186:49;1140:31230;24722:25;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;;24772:18;;1140:31230;24772:24;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;;24975:36;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;24975:18;:36;1140:31230;;;;;;;;;;;;;;24975:36;1140:31230;;;;;;;;;;25186:49;1140:31230;;;;;;;;;;;;;;25278:59;;;;23826:1518::o;24529:166::-;24601:83;24649:18;;:26;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;24649:26;24601:83;;23959:1;24601:83;1140:31230;;;;;;;24291:69;1140:31230;;;;;;;;24239:132;24291:69;23959:1;24291:69;;1140:31230;;;;;;;;;;;;;-1:-1:-1;15189:27:9;23945:94:77;23983:45;23959:1;23983:45;2867:46;1140:31230;;;;-1:-1:-1;15189:27:9;23336:385:77;23458:1;1140:31230;;;19119:8;1140:31230;;;;;;19090:70;;1140:31230;;19119:41;1140:31230;19090:70;;19086:180;;19304:30;;;:::i;:::-;19422:21;19418:159;;23336:385;19673:15;19632:57;1140:31230;19673:15;1140:31230;19632:31;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;19632:57;19748:51;23458:1;19748:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;19748:51;1140:31230;23458:1;1140:31230;19119:8;1140:31230;;-1:-1:-1;;;;;19632:31:77;1140:31230;23458:1;1140:31230;23588:25;1140:31230;;;23458:1;1140:31230;5799:7:9;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;23458:1;1140:31230;;;23681:22;23505:209;1140:31230;23681:22;;;:::i;:::-;1140:31230;;;;;23505:209;23336:385::o;19418:159::-;19508:58;:37;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;19508:58;1140:31230;;19418:159;;;19086:180;19183:72;23458:1;19183:72;;;;1140:31230;;;;;;;-1:-1:-1;15189:27:9;25449:536:77;1140:31230;-1:-1:-1;1140:31230:77;25575:8;1140:31230;;;-1:-1:-1;1140:31230:77;;;;25571:128;;25851:13;;;;:::i;:::-;1140:31230;;;;;;;;;25952:10;;25911:67;;1140:31230;;25911:67;25449:536::o;25571:128::-;25644:44;-1:-1:-1;25644:44:77;;1140:31230;;-1:-1:-1;25644:44:77;21775:764;1140:31230;;;21900:11;;21896:95;;21910:1;1140:31230;;;22016:8;1140:31230;;;;;22016:24;;;1140:31230;-1:-1:-1;;;;;1140:31230:77;;22097:18;1140:31230;;;;;;;;;;;;;;;22320:78;22097:36;;;1140:31230;;;;;;;;;;;22097:36;22221:23;;-1:-1:-1;;;;;1140:31230:77;;;9396:16:81;1140:31230:77;;;;;;;22221:23;1140:31230;;;;;;22375:4;22351:10;;22320:78;;:::i;:::-;1140:31230;;;;;;;;22351:10;;22442:90;;1140:31230;;;;22442:90;1140:31230;21896:95;21934:46;;21910:1;21934:46;;1140:31230;;21910:1;21934:46;15301:619;1140:31230;;;15403:8;1140:31230;;;;;;;;15492:12;;;15488:51;;15569:22;;;:::i;:::-;15707:19;;;15703:64;;15892:21;;;;:::i;15703:64::-;15742:14;;:::o;15488:51::-;15520:8;;1140:31230;15520:8;:::o;1140:31230::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19911:1759::-;;;;;-1:-1:-1;;;;;1140:31230:77;;20189:20;;;20185:96;;-1:-1:-1;;;;;1140:31230:77;;;;;;20313:41;;;;;;;;;;;;;;20207:1;20313:41;;;19911:1759;1140:31230;20447:2;1140:31230;;;20431:18;20427:111;;20590:12;1140:31230;;;;:::i;:::-;;;;;;;20313:41;20672:370;;1140:31230;;-1:-1:-1;;;;;1140:31230:77;;20672:370;;1140:31230;;20947:15;1140:31230;20672:370;;;1140:31230;20732:4;20672:370;;;1140:31230;;;;20672:370;;;1140:31230;;20672:370;;;1140:31230;-1:-1:-1;;;;;1140:31230:77;;20672:370;;1140:31230;;;20672:370;;;1140:31230;20672:370;;;20207:1;1140:31230;;20651:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;20651:18;1140:31230;;;;:::i;:::-;20732:4;1140:31230;;20590:12;1140:31230;21352:8;;;;:::i;:::-;1140:31230;;;-1:-1:-1;;;;;1140:31230:77;;;21420:243;;;;;1140:31230;;;;;;;;;;;;;;;;;;;;;;;;21420:243;;;;;19911:1759::o;20427:111::-;20472:55;20207:1;20472:55;-1:-1:-1;;;;;1140:31230:77;;;;;-1:-1:-1;15189:27:9;20313:41:77;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;20185:96;20232:38;20207:1;20232:38;;20207:1;20232:38;1303:160:8;1140:31230:77;;;1412:43:8;;;;-1:-1:-1;;;;;1140:31230:77;;;;1412:43:8;;;1140:31230:77;;;;;;;;;1412:43:8;;;;;;1140:31230:77;;1412:43:8;:::i;:::-;;:::i;16136:890:77:-;1140:31230;;;;16299:8;1140:31230;;;;;16299:31;;;1140:31230;;;;;;;;;;16527:18;;:52;;;;16136:890;16523:91;;16251:15;1140:31230;;;;;;;;;;;;;;;16136:890;:::o;16527:52::-;16251:15;;;16549:30;;16527:52;;18904:902;;1140:31230;-1:-1:-1;1140:31230:77;19119:8;1140:31230;;;;;-1:-1:-1;1140:31230:77;;;;;;;;;19090:70;19086:180;;19304:30;;;:::i;:::-;19422:21;19418:159;;18904:902;19673:15;19748:18;:51;19673:15;19632:57;1140:31230;19673:15;1140:31230;19632:31;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;19632:57;1140:31230;;3142:8:81;1140:31230:77;;;;;;;19418:159;19508:18;:37;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;19508:18;:37;1140:31230;;;19508:58;1140:31230;;;;;;;;;;19748:18;19418:159;;19086:180;19183:72;-1:-1:-1;19183:72:77;;1140:31230;;;;;;;;;-1:-1:-1;15189:27:9;17756:315:77;1140:31230;;;17860:8;1140:31230;;17917:22;1140:31230;;;;;;17917:22;;:::i;:::-;17954:19;;;;;;;1140:31230;;;;;;;17989:26;:::o;18167:410::-;;1140:31230;-1:-1:-1;1140:31230:77;18296:8;1140:31230;;-1:-1:-1;;;;;18296:25:77;1140:31230;-1:-1:-1;1140:31230:77;18296:25;1140:31230;;-1:-1:-1;;;;;1140:31230:77;;18286:35;18282:142;;5799:16:9;18438:31:77;-1:-1:-1;;;;;5799:16:9;;1140:31230:77;;5799:7:9;1140:31230:77;;;;;;;5799:16:9;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;;;18438:31;-1:-1:-1;;;;;1140:31230:77;;18438:31;18434:137;;18167:410;;:::o;18434:137::-;5799:16:9;;;18492:68:77;5799:16:9;1140:31230:77;;5799:7:9;1140:31230:77;;;;;;;5799:16:9;18492:68:77;-1:-1:-1;18492:68:77;-1:-1:-1;;;;;1140:31230:77;;;18344:69;1140:31230;;;;;;;18282:142;-1:-1:-1;;;;;18296:25:77;18387:18;18344:69;18387:18;1140:31230;;3142:8:81;1140:31230:77;;;;;;;18387:18;:25;1140:31230;18344:69;-1:-1:-1;18344:69:77;-1:-1:-1;;;;;1140:31230:77;;;18344:69;1140:31230;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2341:288:88:-;2452:2;1140:31230:77;;;2440:14:88;2436:58;;2452:2;1140:31230:77;;;2550:2:88;1140:31230:77;;2341:288:88:o;2436:58::-;2470:13;3384:1:77;2470:13:88;:::o;2341:288::-;;2452:2;1140:31230:77;;;2440:14:88;2436:58;;2452:2;1140:31230:77;;;2550:2:88;1140:31230:77;;;2341:288:88:o;1909:15:48:-;;;;:::o;:::-;;;;;;;;;;28013:4355:77;;;;1140:31230;;;;;28263:11;;;28259:96;;-1:-1:-1;;;;;1140:31230:77;;28423:16;28419:104;;28688:24;5799:16:9;;;1140:31230:77;;5799:7:9;1140:31230:77;;;;;;;28688:24;-1:-1:-1;;;;;1140:31230:77;;28688:24;;:73;;;28013:4355;28684:211;;1140:31230;28927:32;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;;29033:30;:70;:30;;;:::i;:::-;5799:7:9;29066:18:77;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;29066:18;:37;1140:31230;29033:70;;:::i;:::-;29133:53;;;;:::i;:::-;29261:18;:26;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;29261:26;29297;1140:31230;;;;29338:19;29334:326;29338:19;;;29479:28;29334:326;1140:31230;;;29757:27;;29753:130;;29956:42;;;;;:::i;:::-;30308:18;5799:7:9;30308:18:77;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;30308:18;:37;1140:31230;30292:53;;5799:7:9;;30365:18:77;5799:7:9;30365:18:77;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;30365:18;:37;1140:31230;;;;;;30288:569;30921:36;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;30921:18;:36;1140:31230;;;;;;;;30921:36;31034:24;28927:32;31034:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;31034:24;31090:18;;;-1:-1:-1;;;;;1140:31230:77;;;10801:11:81;1140:31230:77;;;;;;;31090:18;1140:31230;1033:23:51;31119:458:77;;30288:569;1140:31230;;31951:74;31989:36;31951:34;31944:82;1140:31230;31771:45;1140:31230;;;31664:23;;-1:-1:-1;;;;;1140:31230:77;;;9396:16:81;1140:31230:77;;;;;;;31664:23;1140:31230;;;;;;31771:45;;;:::i;:::-;31963:22;;;:::i;:::-;31951:34;;:::i;:::-;31999:18;:26;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;31951:74;;31944:82;:::i;:::-;1140:31230;;;32209:10;1140:31230;;;;;;1909:15:48;;;1140:31230:77;;;1909:15:48;;;1140:31230:77;;;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;32073:243;;1909:15:48;;32073:243:77;32327:34;28013:4355;:::o;31119:458::-;31951:34;31265:74;;31989:36;31265:74;31951;31265;31944:82;31265:74;;;;:::i;:::-;31235:104;;;;31509:43;31235:104;31509:43;:22;;-1:-1:-1;;;;;1140:31230:77;;;8550:15:81;1140:31230:77;;;;;;;31509:22;1140:31230;;;;;;;;;1909:15:48;1140:31230:77;;;1909:15:48;31509:43:77;31119:458;;;;;;;30288:569;1140:31230;5799:7:9;30645:18:77;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;30645:18;:37;1140:31230;30785:57;1140:31230;30826:15;1140:31230;30785:31;:18;;1140:31230;;3142:8:81;1140:31230:77;;;;;;;30785:57;30288:569;;29753:130;29807:65;1140:31230;29807:65;24291:69;1140:31230;;;;;;;;;;;;;-1:-1:-1;15189:27:9;29334:326:77;29628:21;;;:::i;:::-;29334:326;;28684:211;28784:100;1140:31230;28784:100;;1140:31230;28863:10;1140:31230;;-1:-1:-1;;;;;1140:31230:77;;;;;-1:-1:-1;15189:27:9;28688:73:77;28717:44;28716:45;28717:44;;;:::i;28716:45::-;28688:73;;28419:104;28462:50;1140:31230;28462:50;2867:46;1140:31230;;-1:-1:-1;15189:27:9;28259:96:77;28297:47;1140:31230;28297:47;2867:46;1140:31230;;-1:-1:-1;15189:27:9;1939:290:88;;2052:2;1140:31230:77;;;2040:14:88;2036:58;;2052:2;1140:31230:77;;;2150:2:88;1140:31230:77;;;;;;;1939:290:88;:::o;14720:662:9:-;15346:24;14720:662;1140:31230:77;;15346:15:9;1140:31230:77;;;;;;;15346:24:9;1140:31230:77;;;;;;14720:662:9:o;1702:188:8:-;;;;-1:-1:-1;;;;;1829:53:8;1702:188;1140:31230:77;;;1829:53:8;1140:31230:77;1829:53:8;;;;1140:31230:77;1829:53:8;;;1140:31230:77;;;;;;;;;;;1829:53:8;;;;;;:::i;8838:795:9:-;1140:31230:77;-1:-1:-1;1140:31230:77;5799:7:9;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;-1:-1:-1;1140:31230:77;;;;-1:-1:-1;;;;;1140:31230:77;;9031:86:9;;8838:795;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;9161:18:9;9157:256;;8838:795;9540:21;-1:-1:-1;;;;;1140:31230:77;;9427:16:9;;9423:107;;8838:795;9540:16;;1140:31230:77;;5799:7:9;1140:31230:77;;;;;;;9540:21:9;9577:27;-1:-1:-1;9577:27:9;;8838:795;:::o;9423:107::-;9487:13;;-1:-1:-1;;;;;1140:31230:77;;;9368:9:9;1140:31230:77;;;;;;;9487:13:9;9504:1;1140:31230:77;;;;;9423:107:9;;9157:256;9319:5;;;:::i;:::-;9368:15;;-1:-1:-1;;;;;1140:31230:77;;;9368:9:9;1140:31230:77;;;;;;;9368:15:9;1140:31230:77;;;;;;9157:256:9;;9031:86;7193:39;-1:-1:-1;;;;;1140:31230:77;;6514:21:9;;;:127;;;;-1:-1:-1;7193:39:9;;1140:31230:77;7193:39:9;7189:255;9031:86;7189:255;1140:31230:77;-1:-1:-1;;;;;1140:31230:77;;;;7298:31:9;-1:-1:-1;7298:31:9;2867:46:77;1140:31230;;-1:-1:-1;15189:27:9;7248:186;7375:44;-1:-1:-1;7375:44:9;-1:-1:-1;;;;;1140:31230:77;;;7375:44:9;1140:31230:77;;;;-1:-1:-1;15189:27:9;6514:127;-1:-1:-1;;;;;1140:31230:77;;6552:16:9;;;;-1:-1:-1;6552:52:9;;;;6514:127;6552:88;;;;;6514:127;7193:39;;1140:31230:77;6552:88:9;1140:31230:77;;;-1:-1:-1;1140:31230:77;6034:15:9;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;-1:-1:-1;1140:31230:77;;;6608:32:9;7193:39;;1140:31230:77;6552:52:9;1140:31230:77;;;-1:-1:-1;1140:31230:77;4039:18:9;1140:31230:77;;;4039:35:9;1140:31230:77;;-1:-1:-1;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;4039:35:9;1140:31230:77;;6552:52:9;;;;9259:218:20;1140:31230:77;9339:25:20;;9335:105;;1140:31230:77;;9259:218:20;:::o;9335:105::-;9387:42;;;9418:3;9387:42;1140:31230:77;;;;9387:42:20;;9955:327:9;-1:-1:-1;;;;;1140:31230:77;;10022:16:9;10018:87;;1140:31230:77;10036:1:9;1140:31230:77;5799:7:9;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;10036:1:9;1140:31230:77;;;13472:18:81;;:56;;;9955:327:9;13468:142:81;;13627:33;4183:38;;13627:33;10036:1:9;13627:33:81;-1:-1:-1;;;;;13627:33:81;;:::i;:::-;1140:31230:77;;;;;;;;;;;;;;4183:38:81;;;;1140:31230:77;10180:96:9;;9955:327::o;10180:96::-;10234:31;10036:1;10234:31;10036:1;10234:31;1140:31230:77;;10036:1:9;10234:31;13472:56:81;1140:31230:77;;10036:1:9;1140:31230:77;13495:8:81;1140:31230:77;;;13495:33:81;1140:31230:77;10036:1:9;1140:31230:77;13495:33:81;1140:31230:77;;;;13494:34:81;13472:56;;11977:301;1140:31230:77;-1:-1:-1;1140:31230:77;5799:7:9;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;-1:-1:-1;1140:31230:77;;;12133:10:81;;;:23;:87;;;;;11977:301;12133:138;;;;;12126:145;11977:301;:::o;12133:138::-;:10;;-1:-1:-1;;;;;12236:21:81;12133:10;12236:21;;:::i;:::-;1140:31230:77;12236:35:81;11977:301;:::o;12133:87::-;1140:31230:77;;;-1:-1:-1;1140:31230:77;4039:18:9;1140:31230:77;;;4039:35:9;12133:10:81;1140:31230:77;-1:-1:-1;1140:31230:77;;-1:-1:-1;;;;;1140:31230:77;;;;;;;;;;4039:35:9;1140:31230:77;;12133:87:81;;;;4059:629:8;2847:1:13;4059:629:8;-1:-1:-1;;;;;3510:55:13;4059:629:8;1140:31230:77;3462:31:13;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;1140:31230:77;;4551:22:8;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;-1:-1:-1;;;;;4631:40:8;;2847:1:13;4631:40:8;1140:31230:77;;;;2847:1:13;4631:40:8;4551:57;4578:30;;-1:-1:-1;3462:31:13;4578:30:8;;;1140:31230:77;;;;;;3462:31:13;4578:30:8;1140:31230:77;;;;:::i;:::-;4577:31:8;4551:57;;;;446:441:88;;;18999:39:52;446:441:88;1140:31230:77;;;18999:39:52;:::i;:::-;1140:31230:77;2953:19:47;;2949:102;;1140:31230:77;857:23:88;1140:31230:77;;857:23:88;;;:::i;2949:102:47:-;2991:53;-1:-1:-1;2991:53:47;;1140:31230:77;;-1:-1:-1;2991:53:47;19680:819:22;;;;19794:150;;;;;;;;;;;;;;;;;;19954:10;;19950:86;;1605:4;20046:13;;;20042:74;;20145:352;;;1605:4;20145:352;;;;;;;;;;;;;;;;19680:819;:::o;20042:74::-;20078:31;;;1140:31230:77;20078:31:22;;1140:31230:77;1605:4:22;1140:31230:77;1605:4:22;1140:31230:77;20078:31:22;19950:86;-1:-1:-1;;1605:4:22;1140:31230:77;;;-1:-1:-1;20000:19:22:o;4625:582:13:-;;4797:8;;-1:-1:-1;1140:31230:77;;5874:21:13;:17;;6046:142;;;;;;5870:383;6225:17;5894:1;6225:17;;5894:1;6225:17;4793:408;1140:31230:77;;5045:22:13;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;-1:-1:-1;;;;;5121:24:13;;5066:1;5121:24;1140:31230:77;5121:24:13;1140:31230:77;;5066:1:13;5121:24;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"59244":[{"start":13980,"length":32}]}},"methodIdentifiers":{"MAX_FEE()":"bc063e1a","adjustRatePerSecond(uint256,uint128)":"a8a482a6","admin()":"f851a440","aggregateBalance(address)":"5f553152","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","batch(bytes[])":"1e897afb","collectFees()":"c8796572","collectProtocolRevenue(address,address)":"ffe3d9f8","coveredDebtOf(uint256)":"42e3e23d","create(address,address,uint128,address,bool)":"597150fa","createAndDeposit(address,address,uint128,address,bool,uint128)":"fbf2777e","depletionTimeOf(uint256)":"d4b80884","deposit(uint256,uint128,address,address)":"b61f7583","depositAndPause(uint256,uint128)":"bcbd019e","depositViaBroker(uint256,uint128,address,address,(address,uint256))":"c2f8e750","getApproved(uint256)":"081812fc","getBalance(uint256)":"1e010439","getRatePerSecond(uint256)":"80448da3","getRecipient(uint256)":"6d0cee75","getSender(uint256)":"b971302a","getSnapshotDebtScaled(uint256)":"450ac908","getSnapshotTime(uint256)":"eb5710d8","getStream(uint256)":"894e9a0d","getToken(uint256)":"e4b50cb8","getTokenDecimals(uint256)":"a7de07cd","isApprovedForAll(address,address)":"e985e9c5","isPaused(uint256)":"bdf2a43c","isStream(uint256)":"b8a3be66","isTransferable(uint256)":"b2564569","isVoided(uint256)":"569f4c59","name()":"06fdde03","nextStreamId()":"1e99d569","nftDescriptor()":"44267570","ongoingDebtScaledOf(uint256)":"7ddf9228","ownerOf(uint256)":"6352211e","pause(uint256)":"136439dd","protocolFee(address)":"b62b31e4","protocolRevenue(address)":"0c5fd195","recover(address,address)":"648bf774","refund(uint256,uint128)":"81632a86","refundAndPause(uint256,uint128)":"379d871a","refundMax(uint256)":"0c699624","refundableAmountOf(uint256)":"1400ecec","restart(uint256,uint128)":"ebb6f79a","restartAndDeposit(uint256,uint128,uint128)":"1f0cce58","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setNFTDescriptor(address)":"7cad6cd1","setProtocolFee(address,uint256)":"b5b3ca2c","statusOf(uint256)":"ad35efd4","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalDebtOf(uint256)":"08b87923","transferAdmin(address)":"75829def","transferFrom(address,address,uint256)":"23b872dd","uncoveredDebtOf(uint256)":"bc7a2d6c","void(uint256)":"5ea2145b","withdraw(uint256,address,uint128)":"fdd46d60","withdrawMax(uint256,address)":"ea5ead19","withdrawableAmountOf(uint256)":"d975dfed"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAdmin\",\"type\":\"address\"},{\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"initialNFTDescriptor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerNotAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegateCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"PRBMath_MulDiv18_Overflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"UD60x18\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"PRBMath_UD60x18_IntoUint128_Overflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"SablierFlowBase_FeeTransferFail\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SablierFlowBase_NoProtocolRevenue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlowBase_NotTransferable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"UD60x18\",\"name\":\"newProtocolFee\",\"type\":\"uint256\"},{\"internalType\":\"UD60x18\",\"name\":\"maxFee\",\"type\":\"uint256\"}],\"name\":\"SablierFlowBase_ProtocolFeeTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SablierFlowBase_SurplusZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierFlow_BrokerAddressZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"UD60x18\",\"name\":\"brokerFee\",\"type\":\"uint256\"},{\"internalType\":\"UD60x18\",\"name\":\"maxFee\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_BrokerFeeTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_DepositAmountZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"availableAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"SablierFlow_InvalidCalculation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SablierFlow_InvalidTokenDecimals\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"streamRecipient\",\"type\":\"address\"}],\"name\":\"SablierFlow_NotStreamRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"streamSender\",\"type\":\"address\"}],\"name\":\"SablierFlow_NotStreamSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_Null\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"withdrawableAmount\",\"type\":\"uint128\"}],\"name\":\"SablierFlow_Overdraw\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"}],\"name\":\"SablierFlow_RatePerSecondNotDifferent\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_RefundAmountZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"refundAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"refundableAmount\",\"type\":\"uint128\"}],\"name\":\"SablierFlow_RefundOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierFlow_SenderZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_StreamBalanceZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_StreamNotPaused\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_StreamPaused\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_StreamVoided\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SablierFlow_Unauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_WithdrawAmountZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"SablierFlow_WithdrawToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"SablierFlow_WithdrawalAddressNotRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDebt\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"UD21x18\",\"name\":\"oldRatePerSecond\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"UD21x18\",\"name\":\"newRatePerSecond\",\"type\":\"uint128\"}],\"name\":\"AdjustFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"CollectFees\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"revenue\",\"type\":\"uint128\"}],\"name\":\"CollectProtocolRevenue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"transferable\",\"type\":\"bool\"}],\"name\":\"CreateFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"funder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"DepositFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalDebt\",\"type\":\"uint256\"}],\"name\":\"PauseFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"surplus\",\"type\":\"uint256\"}],\"name\":\"Recover\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"RefundFromFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"}],\"name\":\"RestartFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"oldNFTDescriptor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"newNFTDescriptor\",\"type\":\"address\"}],\"name\":\"SetNFTDescriptor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"UD60x18\",\"name\":\"oldProtocolFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"UD60x18\",\"name\":\"newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"SetProtocolFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"TransferAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTotalDebt\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"writtenOffDebt\",\"type\":\"uint256\"}],\"name\":\"VoidFlowStream\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"withdrawAmount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"protocolFeeAmount\",\"type\":\"uint128\"}],\"name\":\"WithdrawFromFlowStream\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"UD60x18\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"UD21x18\",\"name\":\"newRatePerSecond\",\"type\":\"uint128\"}],\"name\":\"adjustRatePerSecond\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"aggregateBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"calls\",\"type\":\"bytes[]\"}],\"name\":\"batch\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"collectProtocolRevenue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"coveredDebtOf\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"coveredDebt\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"transferable\",\"type\":\"bool\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"transferable\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"createAndDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"depletionTimeOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depletionTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"depositAndPause\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"totalAmount\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"UD60x18\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct Broker\",\"name\":\"broker\",\"type\":\"tuple\"}],\"name\":\"depositViaBroker\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getRatePerSecond\",\"outputs\":[{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getSnapshotDebtScaled\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotDebtScaled\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getSnapshotTime\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"snapshotTime\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getStream\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"snapshotTime\",\"type\":\"uint40\"},{\"internalType\":\"bool\",\"name\":\"isStream\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isTransferable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isVoided\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"snapshotDebtScaled\",\"type\":\"uint256\"}],\"internalType\":\"struct Flow.Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getTokenDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isStream\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isTransferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isVoided\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextStreamId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftDescriptor\",\"outputs\":[{\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"ongoingDebtScaledOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"ongoingDebtScaled\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"protocolFee\",\"outputs\":[{\"internalType\":\"UD60x18\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"protocolRevenue\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"revenue\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"recover\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"refundAndPause\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"refundMax\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"refundableAmountOf\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"refundableAmount\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"}],\"name\":\"restart\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"restartAndDeposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"newNFTDescriptor\",\"type\":\"address\"}],\"name\":\"setNFTDescriptor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"UD60x18\",\"name\":\"newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"statusOf\",\"outputs\":[{\"internalType\":\"enum Flow.Status\",\"name\":\"status\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"totalDebtOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalDebt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"uncoveredDebtOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"uncoveredDebt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"void\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"withdrawnAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"protocolFeeAmount\",\"type\":\"uint128\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawMax\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"withdrawnAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"protocolFeeAmount\",\"type\":\"uint128\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"withdrawableAmountOf\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"withdrawableAmount\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"AdjustFlowStream(uint256,uint256,uint128,uint128)\":{\"params\":{\"newRatePerSecond\":\"The new rate per second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"oldRatePerSecond\":\"The old rate per second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"streamId\":\"The ID of the stream.\",\"totalDebt\":\"The total debt at the time of the update, denoted in token's decimals.\"}},\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"CollectFees(address,uint256)\":{\"params\":{\"admin\":\"The address of the current contract admin, which has received the fees.\",\"feeAmount\":\"The amount of collected fees.\"}},\"CollectProtocolRevenue(address,address,address,uint128)\":{\"params\":{\"admin\":\"The address of the contract admin.\",\"revenue\":\"The amount of protocol revenue collected.\",\"to\":\"The address the protocol revenue has been sent to.\",\"token\":\"The address of the ERC-20 token the protocol revenue has been collected for.\"}},\"CreateFlowStream(uint256,address,address,uint128,address,bool)\":{\"params\":{\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"recipient\":\"The address receiving the tokens, as well as the NFT owner.\",\"sender\":\"The address streaming the tokens, which is able to adjust and pause the stream.\",\"streamId\":\"The ID of the newly created stream.\",\"token\":\"The contract address of the ERC-20 token to be streamed.\",\"transferable\":\"Boolean indicating whether the stream NFT is transferable or not.\"}},\"DepositFlowStream(uint256,address,uint128)\":{\"params\":{\"amount\":\"The amount of tokens deposited into the stream, denoted in token's decimals.\",\"funder\":\"The address that made the deposit.\",\"streamId\":\"The ID of the stream.\"}},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"PauseFlowStream(uint256,address,address,uint256)\":{\"params\":{\"recipient\":\"The stream's recipient address.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream.\",\"totalDebt\":\"The amount of tokens owed by the sender to the recipient, denoted in token's decimals.\"}},\"Recover(address,address,address,uint256)\":{\"params\":{\"admin\":\"The address of the contract admin.\",\"surplus\":\"The amount of surplus tokens recovered.\",\"to\":\"The address the surplus amount has been sent to.\",\"token\":\"The address of the ERC-20 token the surplus amount has been recovered for.\"}},\"RefundFromFlowStream(uint256,address,uint128)\":{\"params\":{\"amount\":\"The amount of tokens refunded to the sender, denoted in token's decimals.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream.\"}},\"RestartFlowStream(uint256,address,uint128)\":{\"params\":{\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream.\"}},\"SetNFTDescriptor(address,address,address)\":{\"params\":{\"admin\":\"The address of the contract admin.\",\"newNFTDescriptor\":\"The address of the new NFT descriptor contract.\",\"oldNFTDescriptor\":\"The address of the old NFT descriptor contract.\"}},\"SetProtocolFee(address,address,uint256,uint256)\":{\"params\":{\"admin\":\"The address of the contract admin.\",\"newProtocolFee\":\"The new protocol fee, denoted as a fixed-point percentage.\",\"oldProtocolFee\":\"The old protocol fee, denoted as a fixed-point percentage.\",\"token\":\"The address of the ERC-20 token the new protocol fee has been set for.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"},\"TransferAdmin(address,address)\":{\"params\":{\"newAdmin\":\"The address of the new admin.\",\"oldAdmin\":\"The address of the old admin.\"}},\"VoidFlowStream(uint256,address,address,address,uint256,uint256)\":{\"params\":{\"caller\":\"The address that performed the void, which can be the sender, recipient or an approved operator.\",\"newTotalDebt\":\"The new total debt, denoted in token's decimals.\",\"recipient\":\"The stream's recipient address.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream.\",\"writtenOffDebt\":\"The amount of debt written off by the caller, denoted in token's decimals.\"}},\"WithdrawFromFlowStream(uint256,address,address,address,uint128,uint128)\":{\"params\":{\"caller\":\"The address that performed the withdrawal, which can be the recipient or an approved operator.\",\"protocolFeeAmount\":\"The amount of protocol fee deducted from the withdrawn amount, denoted in token's decimals.\",\"streamId\":\"The ID of the stream.\",\"to\":\"The address that received the withdrawn tokens.\",\"token\":\"The contract address of the ERC-20 token that was withdrawn.\",\"withdrawAmount\":\"The amount withdrawn to the recipient after subtracting the protocol fee, denoted in token's decimals.\"}}},\"kind\":\"dev\",\"methods\":{\"adjustRatePerSecond(uint256,uint128)\":{\"details\":\"Emits a {AdjustFlowStream} and {MetadataUpdate} event. Notes: - It updates snapshot debt and snapshot time. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a paused stream. - `msg.sender` must be the stream's sender. - `newRatePerSecond` must not equal to the current rate per second.\",\"params\":{\"newRatePerSecond\":\"The new rate per second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"streamId\":\"The ID of the stream to adjust.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"batch(bytes[])\":{\"details\":\"Since `msg.value` can be reused across calls, be VERY CAREFUL when using it. Refer to https://paradigm.xyz/2021/08/two-rights-might-make-a-wrong for more information.\",\"params\":{\"calls\":\"An array of inputs for each call.\"},\"returns\":{\"results\":\"An array of results from each call. Empty when the calls do not return anything.\"}},\"collectFees()\":{\"details\":\"Emits a {CollectFees} event. Notes: - If the admin is a contract, it must be able to receive native token payments, e.g., ETH for Ethereum Mainnet.\"},\"collectProtocolRevenue(address,address)\":{\"details\":\"Emits a {CollectProtocolRevenue} event. Requirements: - `msg.sender` must be the contract admin. - The accrued protocol revenue must be greater than zero.\",\"params\":{\"to\":\"The address to send the protocol revenue.\",\"token\":\"The contract address of the ERC-20 token for which to claim protocol revenue.\"}},\"constructor\":{\"details\":\"Emits {TransferAdmin} event.\",\"params\":{\"initialAdmin\":\"The address of the initial contract admin.\",\"initialNFTDescriptor\":\"The address of the initial NFT descriptor.\"}},\"coveredDebtOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"create(address,address,uint128,address,bool)\":{\"details\":\"Emits {CreateFlowStream} event. Requirements: - Must not be delegate called. - `sender` must not be the zero address. - `recipient` must not be the zero address. - The `token`'s decimals must be less than or equal to 18.\",\"params\":{\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"recipient\":\"The address receiving the tokens.\",\"sender\":\"The address streaming the tokens, which is able to adjust and pause the stream. It doesn't have to be the same as `msg.sender`.\",\"token\":\"The contract address of the ERC-20 token to be streamed.\",\"transferable\":\"Boolean indicating if the stream NFT is transferable.\"},\"returns\":{\"streamId\":\"The ID of the newly created stream.\"}},\"createAndDeposit(address,address,uint128,address,bool,uint128)\":{\"details\":\"Emits a {Transfer}, {CreateFlowStream}, and {DepositFlowStream} event. Notes: - Refer to the notes in {deposit}. Requirements: - Refer to the requirements in {create} and {deposit}.\",\"params\":{\"amount\":\"The deposit amount, denoted in token's decimals.\",\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"recipient\":\"The address receiving the tokens.\",\"sender\":\"The address streaming the tokens. It doesn't have to be the same as `msg.sender`.\",\"token\":\"The contract address of the ERC-20 token to be streamed.\",\"transferable\":\"Boolean indicating if the stream NFT is transferable.\"},\"returns\":{\"streamId\":\"The ID of the newly created stream.\"}},\"depletionTimeOf(uint256)\":{\"details\":\"Reverts on the following conditions: - If `streamId` references a paused or a null stream. - If stream balance is zero.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"deposit(uint256,uint128,address,address)\":{\"details\":\"Emits a {Transfer} and {DepositFlowStream} event. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a voided stream. - `amount` must be greater than zero. - `sender` and `recipient` must match the stream's sender and recipient addresses.\",\"params\":{\"amount\":\"The deposit amount, denoted in token's decimals.\",\"recipient\":\"The stream's recipient address.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream to deposit to.\"}},\"depositAndPause(uint256,uint128)\":{\"details\":\"Emits a {Transfer}, {DepositFlowStream} and {PauseFlowStream} event. Notes: - Refer to the notes in {deposit} and {pause}. Requirements: - Refer to the requirements in {deposit} and {pause}.\",\"params\":{\"amount\":\"The deposit amount, denoted in token's decimals.\",\"streamId\":\"The ID of the stream to deposit to, and then pause.\"}},\"depositViaBroker(uint256,uint128,address,address,(address,uint256))\":{\"details\":\"Emits a {Transfer} and {DepositFlowStream} event. Notes: - Refer to the notes in {deposit}. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `totalAmount` must be greater than zero. Otherwise it will revert inside {deposit}. - `broker.account` must not be 0 address. - `broker.fee` must not be greater than `MAX_FEE`. It can be zero.\",\"params\":{\"broker\":\"Struct encapsulating (i) the address of the broker assisting in creating the stream, and (ii) the percentage fee paid to the broker from `totalAmount`, denoted as a fixed-point percentage.\",\"recipient\":\"The stream's recipient address.\",\"sender\":\"The stream's sender address.\",\"streamId\":\"The ID of the stream to deposit on.\",\"totalAmount\":\"The total amount, including the deposit and any broker fee, denoted in token's decimals.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getBalance(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getRatePerSecond(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"getRecipient(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getSender(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getSnapshotDebtScaled(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getSnapshotTime(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"getStream(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getToken(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"getTokenDecimals(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isPaused(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"isStream(uint256)\":{\"details\":\"Does not revert if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"isTransferable(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"isVoided(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ongoingDebtScaledOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"pause(uint256)\":{\"details\":\"Emits {PauseFlowStream} event. Notes: - It updates snapshot debt and snapshot time. - It sets the rate per second to zero. Requirements: - Must not be delegate called. - `streamId` must not reference a null or an already paused stream. - `msg.sender` must be the stream's sender.\",\"params\":{\"streamId\":\"The ID of the stream to pause.\"}},\"recover(address,address)\":{\"details\":\"Emits a {Recover} event. Notes: - The surplus amount is defined as the difference between the total balance of the contract for the provided ERC-20 token and the sum of balances of all streams created using the same ERC-20 token. Requirements: - `msg.sender` must be the contract admin. - The surplus amount must be greater than zero.\",\"params\":{\"to\":\"The address to send the surplus amount.\",\"token\":\"The contract address of the ERC-20 token to recover for.\"}},\"refund(uint256,uint128)\":{\"details\":\"Emits a {Transfer} and {RefundFromFlowStream} event. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `msg.sender` must be the sender. - `amount` must be greater than zero and must not exceed the refundable amount.\",\"params\":{\"amount\":\"The amount to refund, denoted in token's decimals.\",\"streamId\":\"The ID of the stream to refund from.\"}},\"refundAndPause(uint256,uint128)\":{\"details\":\"Emits a {Transfer}, {RefundFromFlowStream} and {PauseFlowStream} event. Notes: - Refer to the notes in {pause}. Requirements: - Refer to the requirements in {refund} and {pause}.\",\"params\":{\"amount\":\"The amount to refund, denoted in token's decimals.\",\"streamId\":\"The ID of the stream to refund from and then pause.\"}},\"refundMax(uint256)\":{\"details\":\"Emits a {Transfer} and {RefundFromFlowStream} event. Requirements: - Refer to the requirements in {refund}.\",\"params\":{\"streamId\":\"The ID of the stream to refund from.\"}},\"refundableAmountOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"restart(uint256,uint128)\":{\"details\":\"Emits {RestartFlowStream} event. Notes: - It updates snapshot debt and snapshot time. Requirements: - Must not be delegate called. - `streamId` must not reference a null, or a voided stream. - `msg.sender` must be the stream's sender. - `ratePerSecond` must be greater than zero.\",\"params\":{\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"streamId\":\"The ID of the stream to restart.\"}},\"restartAndDeposit(uint256,uint128,uint128)\":{\"details\":\"Emits a {RestartFlowStream}, {Transfer}, and {DepositFlowStream} event. Notes: - Refer to the notes in {restart} and {deposit}. Requirements: - `amount` must be greater than zero. - Refer to the requirements in {restart}.\",\"params\":{\"amount\":\"The deposit amount, denoted in token's decimals.\",\"ratePerSecond\":\"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.\",\"streamId\":\"The ID of the stream to restart.\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setNFTDescriptor(address)\":{\"details\":\"Emits a {SetNFTDescriptor} and {BatchMetadataUpdate} event. Notes: - Does not revert if the NFT descriptor is the same. Requirements: - `msg.sender` must be the contract admin.\",\"params\":{\"newNFTDescriptor\":\"The address of the new NFT descriptor contract.\"}},\"setProtocolFee(address,uint256)\":{\"details\":\"Emits a {SetProtocolFee} and {BatchMetadataUpdate} event. Notes: - Does not revert if the fee is the same. - It can be zero. Requirements: - `msg.sender` must be the contract admin. - `newProtocolFee` must not be greater than `MAX_FEE`.\",\"params\":{\"newProtocolFee\":\"The new protocol fee, denoted as a fixed-point percentage where 1e18 is 100%.\",\"token\":\"The contract address of the ERC-20 token to update the fee for.\"}},\"statusOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream. Integrators should exercise caution when depending on the return value of this function as streams can be paused and resumed at any moment.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalDebtOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"transferAdmin(address)\":{\"details\":\"Notes: - Does not revert if the admin is the same. - This function can potentially leave the contract without an admin, thereby removing any functionality that is only available to the admin. Requirements: - `msg.sender` must be the contract admin.\",\"params\":{\"newAdmin\":\"The address of the new admin.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"uncoveredDebtOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"void(uint256)\":{\"details\":\"Emits {VoidFlowStream} event. Notes: - It sets snapshot time to the `block.timestamp` - Voiding an insolvent stream sets the snapshot debt to the stream's balance making the uncovered debt to become zero. - Voiding a solvent stream updates the snapshot debt by adding up ongoing debt. - It sets the rate per second to zero. - A voided stream cannot be restarted. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a voided stream. - `msg.sender` must either be the stream's sender, recipient or an approved third party.\",\"params\":{\"streamId\":\"The ID of the stream to void.\"}},\"withdraw(uint256,address,uint128)\":{\"details\":\"Emits a {Transfer} and {WithdrawFromFlowStream} event. Notes: - It sets the snapshot time to the `block.timestamp` if `amount` is greater than snapshot debt. - A protocol fee may be charged on the withdrawn amount if the protocol fee is enabled for the streaming token. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `to` must not be the zero address. - `to` must be the recipient if `msg.sender` is not the stream's recipient. - `amount` must  be greater than zero and must not exceed the withdrawable amount.\",\"params\":{\"amount\":\"The amount to withdraw, denoted in token's decimals.\",\"streamId\":\"The ID of the stream to withdraw from.\",\"to\":\"The address receiving the withdrawn tokens.\"},\"returns\":{\"protocolFeeAmount\":\"The protocol fee amount, denoted in the token's decimals.\",\"withdrawnAmount\":\"The amount withdrawn to the recipient, denoted in token's decimals. This is input amount minus the protocol fee.\"}},\"withdrawMax(uint256,address)\":{\"details\":\"Emits a {Transfer} and {WithdrawFromFlowStream} event. Notes: - Refer to the notes in {withdraw}. Requirements: - Refer to the requirements in {withdraw}.\",\"params\":{\"streamId\":\"The ID of the stream to withdraw from.\",\"to\":\"The address receiving the withdrawn tokens.\"},\"returns\":{\"protocolFeeAmount\":\"The protocol fee amount, denoted in the token's decimals.\",\"withdrawnAmount\":\"The amount withdrawn to the recipient, denoted in token's decimals.\"}},\"withdrawableAmountOf(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"},\"returns\":{\"withdrawableAmount\":\"The amount that the recipient can withdraw.\"}}},\"title\":\"SablierFlow\",\"version\":1},\"userdoc\":{\"errors\":{\"CallerNotAdmin(address,address)\":[{\"notice\":\"Thrown when `msg.sender` is not the admin.\"}],\"DelegateCall()\":[{\"notice\":\"Thrown when trying to delegate call to a function that disallows delegate calls.\"}],\"PRBMath_MulDiv18_Overflow(uint256,uint256)\":[{\"notice\":\"Thrown when the resultant value in {mulDiv18} overflows uint256.\"}],\"PRBMath_UD60x18_IntoUint128_Overflow(uint256)\":[{\"notice\":\"Thrown when trying to cast a UD60x18 number that doesn't fit in uint128.\"}],\"SablierFlowBase_FeeTransferFail(address,uint256)\":[{\"notice\":\"Thrown when the fee transfer fails.\"}],\"SablierFlowBase_NoProtocolRevenue(address)\":[{\"notice\":\"Thrown when trying to claim protocol revenue when the accrued amount is zero.\"}],\"SablierFlowBase_NotTransferable(uint256)\":[{\"notice\":\"Thrown when trying to transfer Stream NFT when transferability is disabled.\"}],\"SablierFlowBase_ProtocolFeeTooHigh(uint256,uint256)\":[{\"notice\":\"Thrown when trying to set protocol fee more than the allowed.\"}],\"SablierFlowBase_SurplusZero(address)\":[{\"notice\":\"Thrown when trying to recover for a token with zero surplus.\"}],\"SablierFlow_BrokerAddressZero()\":[{\"notice\":\"Thrown when trying to create a stream with a broker recipient address as zero.\"}],\"SablierFlow_BrokerFeeTooHigh(uint256,uint256)\":[{\"notice\":\"Thrown when trying to create a stream with a broker fee more than the allowed.\"}],\"SablierFlow_DepositAmountZero(uint256)\":[{\"notice\":\"Thrown when trying to create a stream with a zero deposit amount.\"}],\"SablierFlow_InvalidCalculation(uint256,uint128,uint128)\":[{\"notice\":\"Thrown when an unexpected error occurs during the calculation of an amount.\"}],\"SablierFlow_InvalidTokenDecimals(address)\":[{\"notice\":\"Thrown when trying to create a stream with an token with no decimals.\"}],\"SablierFlow_NotStreamRecipient(address,address)\":[{\"notice\":\"Thrown when the recipient address does not match the stream's recipient.\"}],\"SablierFlow_NotStreamSender(address,address)\":[{\"notice\":\"Thrown when the sender address does not match the stream's sender.\"}],\"SablierFlow_Null(uint256)\":[{\"notice\":\"Thrown when the ID references a null stream.\"}],\"SablierFlow_Overdraw(uint256,uint128,uint128)\":[{\"notice\":\"Thrown when trying to withdraw an amount greater than the withdrawable amount.\"}],\"SablierFlow_RatePerSecondNotDifferent(uint256,uint128)\":[{\"notice\":\"Thrown when trying to change the rate per second with the same rate per second.\"}],\"SablierFlow_RefundAmountZero(uint256)\":[{\"notice\":\"Thrown when trying to refund zero tokens from a stream.\"}],\"SablierFlow_RefundOverflow(uint256,uint128,uint128)\":[{\"notice\":\"Thrown when trying to refund an amount greater than the refundable amount.\"}],\"SablierFlow_SenderZeroAddress()\":[{\"notice\":\"Thrown when trying to create a stream with the sender as the zero address.\"}],\"SablierFlow_StreamBalanceZero(uint256)\":[{\"notice\":\"Thrown when trying to get depletion time of a stream with zero balance.\"}],\"SablierFlow_StreamNotPaused(uint256)\":[{\"notice\":\"Thrown when trying to restart a stream that is not paused.\"}],\"SablierFlow_StreamPaused(uint256)\":[{\"notice\":\"Thrown when trying to perform an action with a paused stream.\"}],\"SablierFlow_StreamVoided(uint256)\":[{\"notice\":\"Thrown when trying to perform an action with a voided stream.\"}],\"SablierFlow_Unauthorized(uint256,address)\":[{\"notice\":\"Thrown when `msg.sender` lacks authorization to perform an action.\"}],\"SablierFlow_WithdrawAmountZero(uint256)\":[{\"notice\":\"Thrown when trying to withdraw zero tokens from a stream.\"}],\"SablierFlow_WithdrawToZeroAddress(uint256)\":[{\"notice\":\"Thrown when trying to withdraw to the zero address.\"}],\"SablierFlow_WithdrawalAddressNotRecipient(uint256,address,address)\":[{\"notice\":\"Thrown when trying to withdraw to an address other than the recipient's.\"}]},\"events\":{\"AdjustFlowStream(uint256,uint256,uint128,uint128)\":{\"notice\":\"Emitted when the rate per second is updated by the sender.\"},\"CollectFees(address,uint256)\":{\"notice\":\"Emitted when the accrued fees are collected.\"},\"CollectProtocolRevenue(address,address,address,uint128)\":{\"notice\":\"Emitted when the contract admin collects protocol revenue accrued.\"},\"CreateFlowStream(uint256,address,address,uint128,address,bool)\":{\"notice\":\"Emitted when a Flow stream is created.\"},\"DepositFlowStream(uint256,address,uint128)\":{\"notice\":\"Emitted when a stream is funded.\"},\"PauseFlowStream(uint256,address,address,uint256)\":{\"notice\":\"Emitted when a stream is paused by the sender.\"},\"Recover(address,address,address,uint256)\":{\"notice\":\"Emitted when the contract admin recovers the surplus amount of token.\"},\"RefundFromFlowStream(uint256,address,uint128)\":{\"notice\":\"Emitted when a sender is refunded from a stream.\"},\"RestartFlowStream(uint256,address,uint128)\":{\"notice\":\"Emitted when a stream is restarted by the sender.\"},\"SetNFTDescriptor(address,address,address)\":{\"notice\":\"Emitted when the contract admin sets a new NFT descriptor contract.\"},\"SetProtocolFee(address,address,uint256,uint256)\":{\"notice\":\"Emitted when the contract admin sets a new protocol fee for the provided ERC-20 token.\"},\"TransferAdmin(address,address)\":{\"notice\":\"Emitted when the admin is transferred.\"},\"VoidFlowStream(uint256,address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a stream is voided by the sender, recipient or an approved operator.\"},\"WithdrawFromFlowStream(uint256,address,address,address,uint128,uint128)\":{\"notice\":\"Emitted when tokens are withdrawn from a stream by a recipient or an approved operator.\"}},\"kind\":\"user\",\"methods\":{\"MAX_FEE()\":{\"notice\":\"Retrieves the maximum fee that can be charged by the broker and the protocol, denoted as a fixed-point percentage where 1e18 is 100%.\"},\"adjustRatePerSecond(uint256,uint128)\":{\"notice\":\"Changes the stream's rate per second.\"},\"admin()\":{\"notice\":\"The address of the admin account or contract.\"},\"aggregateBalance(address)\":{\"notice\":\"Retrieves the sum of balances of all streams.\"},\"batch(bytes[])\":{\"notice\":\"Allows batched calls to self, i.e., `this` contract.\"},\"collectFees()\":{\"notice\":\"Collects the accrued fees by transferring them to the contract admin.\"},\"collectProtocolRevenue(address,address)\":{\"notice\":\"Collect the protocol revenue accrued for the provided ERC-20 token.\"},\"coveredDebtOf(uint256)\":{\"notice\":\"Returns the amount of debt covered by the stream balance, denoted in token's decimals.\"},\"create(address,address,uint128,address,bool)\":{\"notice\":\"Creates a new Flow stream by setting the snapshot time to `block.timestamp` and leaving the balance to zero. The stream is wrapped in an ERC-721 NFT.\"},\"createAndDeposit(address,address,uint128,address,bool,uint128)\":{\"notice\":\"Creates a new Flow stream by setting the snapshot time to `block.timestamp` and the balance to `amount`. The stream is wrapped in an ERC-721 NFT.\"},\"depletionTimeOf(uint256)\":{\"notice\":\"Returns the time at which the total debt exceeds stream balance. If the total debt is less than or equal to stream balance, it returns 0.\"},\"deposit(uint256,uint128,address,address)\":{\"notice\":\"Makes a deposit in a stream.\"},\"depositAndPause(uint256,uint128)\":{\"notice\":\"Deposits tokens in a stream and pauses it.\"},\"depositViaBroker(uint256,uint128,address,address,(address,uint256))\":{\"notice\":\"Deposits tokens in a stream.\"},\"getBalance(uint256)\":{\"notice\":\"Retrieves the balance of the stream, i.e. the total deposited amounts subtracted by the total withdrawn amounts, denoted in token's decimals.\"},\"getRatePerSecond(uint256)\":{\"notice\":\"Retrieves the rate per second of the stream, denoted as a fixed-point number where 1e18 is 1 token per second.\"},\"getRecipient(uint256)\":{\"notice\":\"Retrieves the stream's recipient.\"},\"getSender(uint256)\":{\"notice\":\"Retrieves the stream's sender.\"},\"getSnapshotDebtScaled(uint256)\":{\"notice\":\"Retrieves the snapshot debt of the stream, denoted as a fixed-point number where 1e18 is 1 token.\"},\"getSnapshotTime(uint256)\":{\"notice\":\"Retrieves the snapshot time of the stream, which is a Unix timestamp.\"},\"getStream(uint256)\":{\"notice\":\"Retrieves the stream entity.\"},\"getToken(uint256)\":{\"notice\":\"Retrieves the token of the stream.\"},\"getTokenDecimals(uint256)\":{\"notice\":\"Retrieves the token decimals of the stream.\"},\"isPaused(uint256)\":{\"notice\":\"Returns whether a stream is paused.\"},\"isStream(uint256)\":{\"notice\":\"Retrieves a flag indicating whether the stream exists.\"},\"isTransferable(uint256)\":{\"notice\":\"Retrieves a flag indicating whether the stream NFT is transferable.\"},\"isVoided(uint256)\":{\"notice\":\"Retrieves a flag indicating whether the stream is voided.\"},\"nextStreamId()\":{\"notice\":\"Counter for stream ids.\"},\"nftDescriptor()\":{\"notice\":\"Contract that generates the non-fungible token URI.\"},\"ongoingDebtScaledOf(uint256)\":{\"notice\":\"Returns the amount of debt accrued since the snapshot time until now, denoted as a fixed-point number where 1e18 is 1 token.\"},\"pause(uint256)\":{\"notice\":\"Pauses the stream.\"},\"protocolFee(address)\":{\"notice\":\"Protocol fee for the provided ERC-20 token, denoted as a fixed-point percentage where 1e18 is 100%.\"},\"protocolRevenue(address)\":{\"notice\":\"Protocol revenue accrued for the provided ERC-20 token, denoted in token's decimals.\"},\"recover(address,address)\":{\"notice\":\"Recover the surplus amount of tokens.\"},\"refund(uint256,uint128)\":{\"notice\":\"Refunds the provided amount of tokens from the stream to the sender's address.\"},\"refundAndPause(uint256,uint128)\":{\"notice\":\"Refunds the provided amount of tokens from the stream to the sender's address.\"},\"refundMax(uint256)\":{\"notice\":\"Refunds the entire refundable amount of tokens from the stream to the sender's address.\"},\"refundableAmountOf(uint256)\":{\"notice\":\"Returns the amount that the sender can be refunded from the stream, denoted in token's decimals.\"},\"restart(uint256,uint128)\":{\"notice\":\"Restarts the stream with the provided rate per second.\"},\"restartAndDeposit(uint256,uint128,uint128)\":{\"notice\":\"Restarts the stream with the provided rate per second, and makes a deposit.\"},\"setNFTDescriptor(address)\":{\"notice\":\"Sets a new NFT descriptor contract, which produces the URI describing the Sablier stream NFTs.\"},\"setProtocolFee(address,uint256)\":{\"notice\":\"Sets a new protocol fee that will be charged on all the withdrawals from streams created with the provided ERC-20 token.\"},\"statusOf(uint256)\":{\"notice\":\"Returns the stream's status.\"},\"totalDebtOf(uint256)\":{\"notice\":\"Returns the total amount owed by the sender to the recipient, denoted in token's decimals.\"},\"transferAdmin(address)\":{\"notice\":\"Transfers the contract admin to a new address.\"},\"uncoveredDebtOf(uint256)\":{\"notice\":\"Returns the amount of debt not covered by the stream balance, denoted in token's decimals.\"},\"void(uint256)\":{\"notice\":\"Voids a stream.\"},\"withdraw(uint256,address,uint128)\":{\"notice\":\"Withdraws the provided `amount` minus the protocol fee to the provided `to` address.\"},\"withdrawMax(uint256,address)\":{\"notice\":\"Withdraws the entire withdrawable amount minus the protocol fee to the provided `to` address.\"},\"withdrawableAmountOf(uint256)\":{\"notice\":\"Calculates the amount that the recipient can withdraw from the stream, denoted in token decimals. This is an alias for `coveredDebtOf`.\"}},\"notice\":\"See the documentation in {ISablierFlow}.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SablierFlow.sol\":\"SablierFlow\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@prb/math/=node_modules/@prb/math/\",\":forge-std/=node_modules/forge-std/\",\":solady/=node_modules/solady/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd\",\"dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"node_modules/@prb/math/src/Common.sol\":{\"keccak256\":\"0x8225a3898d2f11f585da1fb82234800e9717fa080dbe53d450fd429a3a632e99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2dcbf39ca575f68f32f0d1c66391de94082424956e7585e849813966f8c0fc05\",\"dweb:/ipfs/QmYvk8vXFDUJHrmqbtutYXfoLomLBosYLyBzuPoYBxsQ42\"]},\"node_modules/@prb/math/src/UD21x18.sol\":{\"keccak256\":\"0xb0176747ae9c9f329bce39730d4d315b839e73a815494ddf2de2094aa9056957\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://534a82fe091627f9d01e665ac763daf56981b30b3976269f8e5c33a84a2dbebc\",\"dweb:/ipfs/QmYiiGJNr4S4ypYB4KGBPMTMiNskert8Cp4s6uf1CU3k73\"]},\"node_modules/@prb/math/src/UD60x18.sol\":{\"keccak256\":\"0xb98c6f74275914d279e8af6c502c2b1f50d5f6e1ed418d3b0153f5a193206c48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a750edde2955f160806a51083a12185fb04e20efca0e3a7ebd127dc1acc049a9\",\"dweb:/ipfs/QmeAre3mThopoQPB9mSXZq6jck59QZ7JbDFR83urd2SLvp\"]},\"node_modules/@prb/math/src/sd1x18/Casting.sol\":{\"keccak256\":\"0x5d365f655f01598926c5d4fe5cda277f2cc7736fe38f943c11a32009077ddd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56b378bd6039819bc12e5f17dabd9492e1410b3281f9df496cf8210539101a11\",\"dweb:/ipfs/QmcMaE64ZWMg9cFhYxdTuG8nfzeDdNuTRHMMoFXi6tSZGu\"]},\"node_modules/@prb/math/src/sd1x18/Constants.sol\":{\"keccak256\":\"0xc14cc32061863d83912f9616de86f3c34f1ac58614b7d504c6ce07ee8efdb8e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22483b1282dda6a556b0232f008a5a3296bbfd76b1886e6b72bf351b7c554fab\",\"dweb:/ipfs/QmYX9cYkrFxBbhZNKsb6uUxtrc2chmAj7vuc7UKRPGMwos\"]},\"node_modules/@prb/math/src/sd1x18/Errors.sol\":{\"keccak256\":\"0xc3c8b1ab3d19889c356c222a3a2186d45dfc1d3a17b9ad88159bb64ee457baa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84fbe57569246403f778330bd7723018dfcb5f0ec50d7b1d82cc983c94a54bca\",\"dweb:/ipfs/QmWssAAnovc2EVjt58rTnxraE9B1RMivwTvYCYgpnr6oSE\"]},\"node_modules/@prb/math/src/sd1x18/ValueType.sol\":{\"keccak256\":\"0xaa9dc7b562faf45264390d80e2ea10c5295bb8a4f10d76261a3f9c04363734c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6ca36acd15f5cb47cf124ddec289f84e1011f2d29056159e4570435629a3353\",\"dweb:/ipfs/QmUKdiLmZpAkNCq2TKxrPbQPUhiRFXGfjGSnY1VeHVu4y6\"]},\"node_modules/@prb/math/src/sd21x18/Casting.sol\":{\"keccak256\":\"0x4a16adddb9ab1f6939dd4567c77205015a11081cb840029b84bbb6fdaf78ee36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5003b2f4cd2fc1413da36bc63107c6e83a88d29693e8f97b54f300fa78f9c6d2\",\"dweb:/ipfs/QmaNJn91NLrZmeeGqnFQV1FTrLVSW852zHyWTrWJ5pf1pd\"]},\"node_modules/@prb/math/src/sd21x18/Constants.sol\":{\"keccak256\":\"0x501c2d5cfdea9450422182059c8df1cb6a859901a07bd59631c3fa24edcc79d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4669a65001c92919671fd879d33ce0e5030b602a7ba4d36bd2308128d8d1f396\",\"dweb:/ipfs/QmUC3bJ3qdkCmLMw3WHBcEqvuC4tExT2LXzUhgu5KQ3vi3\"]},\"node_modules/@prb/math/src/sd21x18/Errors.sol\":{\"keccak256\":\"0xc5422ee47eb139274e538e758fb40177a1ba22c2113ef3b3446102f0150bfe0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1981e052e9e86e1b0e4e55a057a7af4739aedd4ead2d60e3eaa40fb703594ee\",\"dweb:/ipfs/QmPK5qSujnyk1R8ues4RhDMy1tRKKyjQ31YJTviTKq7GML\"]},\"node_modules/@prb/math/src/sd21x18/ValueType.sol\":{\"keccak256\":\"0x532bba888370bed393464412f4ef3462d654802e71c953ad02d078e3d2701092\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://922a4e8dd813602f72d165aa1dfdf2c29b971a2abe73bebca7cd81a32ee2c880\",\"dweb:/ipfs/QmTBAJnx1r3sZpbQAuTgQtsTtvjZbpDwhCJRzkhzUumbdf\"]},\"node_modules/@prb/math/src/sd59x18/Casting.sol\":{\"keccak256\":\"0xdf70d8e70c6d6325f3f7eb028c484bc7189ef902f1d4b5b220af2e550bb5fc39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b15bcd36129c5cb163d57a117435afb171182018dd6d1e766a5f49cf1f4b63d\",\"dweb:/ipfs/QmbjzkMBH4FM2rdxGbx9LQ65wVERijNcu7R9C8dQmH3y4n\"]},\"node_modules/@prb/math/src/sd59x18/Constants.sol\":{\"keccak256\":\"0x9bcb8dd6b3e886d140ad1c32747a4f6d29a492529ceb835be878ae837aa6cc3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4045c633e3618e7e90a768d92415b2f20f781fe129b4f4e26fa88f7dbf9201f\",\"dweb:/ipfs/Qmbet95pizwPno82cJ383wJtgQRSQKESmhVZ1vDrgAu7Si\"]},\"node_modules/@prb/math/src/sd59x18/Errors.sol\":{\"keccak256\":\"0x0a79c28c85fc8a450b0801ff2e66114eac4ec565819f5d1d8738904658fe33e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e0d4fd3c998019fb8555d9e26c03bec42a8513bdf4185aeac2da3a000abaebf\",\"dweb:/ipfs/QmahFJHXcX4RwPxaQbUf6LVZEk8NSpjCV3Eif7i9iqC6Mk\"]},\"node_modules/@prb/math/src/sd59x18/Helpers.sol\":{\"keccak256\":\"0x208570f1657cf730cb6c3d81aa14030e0d45cf906cdedea5059369d7df4bb716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c78ca900edafa9338d4e3649a55ab0c84f76468d8a22fb945ba6d01e70f8fed\",\"dweb:/ipfs/QmeP4hQYfNxcATd1FsasdD4ebyu2vrC9K1N68swxUJzzZD\"]},\"node_modules/@prb/math/src/sd59x18/Math.sol\":{\"keccak256\":\"0xd8e8b51db9b3e2fa31a60f6b8ce4ea0112c3364442ede5992aa0aa7a2c925c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c56913970e34ee7b142047b21f1856a511cbdc3473b7c50418a8490e19cd462\",\"dweb:/ipfs/QmfG1F9CBDjPYD7NXora9awFfdpvBMY9SCg5pMLCFRv9tD\"]},\"node_modules/@prb/math/src/sd59x18/ValueType.sol\":{\"keccak256\":\"0x76597ba64d37d66e0178512bc9bbc1a031a7634c45e5d5c6e9da87f46952dc9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36148899ad874814e9292636fb974d2eec61f1bcc0875ec39cf444d70ba40919\",\"dweb:/ipfs/QmadUe4kH2FPcdxvhCKy8yiezCvPWor4VcPzqLYSAaGDDb\"]},\"node_modules/@prb/math/src/ud21x18/Casting.sol\":{\"keccak256\":\"0x3821aa57604f6e5b7c9c5c5cc97a6d71116e673cf3fee5f76fcd42b4cefded65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a80399c6b38ab45cc10d0a6683d50340cd89d9a085b6d0dcfb81e7c4e5b3ce09\",\"dweb:/ipfs/QmWNW2YD2LMkqrpAtJYeeuHN329Rx7mvfmrjsCo1p6akTL\"]},\"node_modules/@prb/math/src/ud21x18/Constants.sol\":{\"keccak256\":\"0x0997574a1ced6c43bde6d9c9175edc5ad64cbb920a0969a9db68eea543747601\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c09f03345a6779b002b38ffc3954258accbb2b1d0d5506d42c3bd7f117304f60\",\"dweb:/ipfs/QmTeBXRCE7H2HpqKUNsZN7Nk3rdBnFmbAUFom3E1PJeGuV\"]},\"node_modules/@prb/math/src/ud21x18/Errors.sol\":{\"keccak256\":\"0x35a1fb789b90f8c90865884d3023deb17fcca5c7146b5ddef823496d835a5415\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0af359d07ba25bdc90de7c05ed6216833932caa75d4a02fcfc51ceeaba5a4e80\",\"dweb:/ipfs/QmavBFw73Xfp1qJiN6P1gk2Dfr8ByWo3dyCPVgDHtko2gq\"]},\"node_modules/@prb/math/src/ud21x18/ValueType.sol\":{\"keccak256\":\"0x24838b2b1da371b9259d8ee21534a9f0cb5796aba75a4efca2374627952bee25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://897e6b79308651671c7f3c91a0069e778b47356c9ba3f86e238398ab7f2623af\",\"dweb:/ipfs/QmZbLw3tJVRZFQnV9jWQUmF43gna841adSG2TAiwDAifGU\"]},\"node_modules/@prb/math/src/ud2x18/Casting.sol\":{\"keccak256\":\"0x0f3141ed054e7c29dbe1acb4b88b18eb05d60e998fba6b4e503a6799faa356d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1e2468fc4c458082aaf4aa2e35af9ba3702f207e3c8533dd1e7da11ad605eae\",\"dweb:/ipfs/QmSm7iRH1eo4cJCwcAiiXWRH9Hn1urSS4tMdbaFbFGuTyL\"]},\"node_modules/@prb/math/src/ud2x18/Constants.sol\":{\"keccak256\":\"0x29b0e050c865899e1fb9022b460a7829cdee248c44c4299f068ba80695eec3fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbaef16b662fac235349bcf97bc980dd0cba15d4e6230caae61224cdac8ea6d9\",\"dweb:/ipfs/QmZQa5XBhi7k3yhtCd8wVpnwW8htfU4sjXxWhxRypMBYkC\"]},\"node_modules/@prb/math/src/ud2x18/Errors.sol\":{\"keccak256\":\"0x3b27e2a57438cd30d9c130f84aace24d547e5ed58e8689691d7d92ad2db38ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841cf9fb45443899c6b659300bbf503c3fd2c1a1e83b7f0e28620eed457f7437\",\"dweb:/ipfs/QmUqg8WscP5yQPw3UMUCWaB9RLU6nryGzseuyhAjNnDc1i\"]},\"node_modules/@prb/math/src/ud2x18/ValueType.sol\":{\"keccak256\":\"0x975a2e69b48f34a4c0bd80e8a5609ac67b7264c91992c0944f9ebe7b9e3fc9d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65d012521c475295d7e70b7d526fcc0911d0f238ea938719d77251bba00c9b41\",\"dweb:/ipfs/QmexEvTQCCBPYRWAYnomZX5M7C2EkXQRAXqEYMNUZfazCs\"]},\"node_modules/@prb/math/src/ud60x18/Casting.sol\":{\"keccak256\":\"0x0803318ddc98b4ba8fbfe70e5ee08d78387fe6ae00982b9960518085a751d7b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e68a2f780b2e33fa5416eb60f9daa81f014c2591119f4b67bed1217d5530780\",\"dweb:/ipfs/QmZe7JTWvbfKqMnu4sxUwWCtLcCay9hH71VZUpoFCdENcr\"]},\"node_modules/@prb/math/src/ud60x18/Constants.sol\":{\"keccak256\":\"0x2b80d26153d3fdcfb3a9ca772d9309d31ed1275f5b8b54c3ffb54d3652b37d90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e3a6673a156f635db94dc176baaa7274db8f9bec4461cd1152596253550ee3b\",\"dweb:/ipfs/Qmc9zT4kNSbMYaXcnbxNVqmb3P3m46ieaQxkwxqLwsvRA5\"]},\"node_modules/@prb/math/src/ud60x18/Conversions.sol\":{\"keccak256\":\"0xd486ecca97abe69acdb28230088f4c7097fbdae5b36c5ae45d5be2faac4c33f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6080870ec6955ff0f5278f9c480b218a68714daf5f2ee42da0276d08d7b82932\",\"dweb:/ipfs/QmQ1SERHdemJgPrt4USwY8j5r63jZ8fQuJAm1knjMEEQEY\"]},\"node_modules/@prb/math/src/ud60x18/Errors.sol\":{\"keccak256\":\"0xbab6b0e303d32f3a9d9e2fe881f0392b8c59a73051a4d34f21a403b3961b3044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86a019bcf2510d0691287329dc057479cc0abc48a5e15f245e7f15c03052d2c8\",\"dweb:/ipfs/QmeXe5pbpDHvN5DZ8puXmH2RJ25zDHj55wpiStWtNQPvq6\"]},\"node_modules/@prb/math/src/ud60x18/Helpers.sol\":{\"keccak256\":\"0xf5faff881391d2c060029499a666cc5f0bea90a213150bb476fae8f02a5df268\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76105fa22bb1b5f1fa99abf9c4fbc9577a02c7bc204f271754c407f0d75489f5\",\"dweb:/ipfs/QmVNGZSTniDuZus5DdbFubqJXCLtTaZit7YPm4ntjr5Lgr\"]},\"node_modules/@prb/math/src/ud60x18/Math.sol\":{\"keccak256\":\"0xc4e51dfd9af62938e277e90fa724099f239d33727a35909ed48c292a76faf2fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d731537cbc50b852c21d28625aeb2c329729afc23a7b86ff9d8ee5878f47e9d6\",\"dweb:/ipfs/QmS7Cj4pAdPZcTp7RqYXyxBc9EYX92CT8icfkNigktUsLr\"]},\"node_modules/@prb/math/src/ud60x18/ValueType.sol\":{\"keccak256\":\"0x1b200baf25d01a8b91b97b42114248636f742b5b7028487ef4daef6621e378a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5708ed017206bda2197654e80bea9f37b3a9993434bb066c903c2865e028f47\",\"dweb:/ipfs/QmTyotZk2J5YvWkNvB2qhXBMgRGWW2UgPqR4JPocrXSr8n\"]},\"src/SablierFlow.sol\":{\"keccak256\":\"0xc7001d5e7b3cb9a124466406390de52e27e071668f86c0319240d2e278f5793f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://99c2ea9b04ac6c32006386a5daf89094d0b20e601288262be23c00d29c60ca70\",\"dweb:/ipfs/QmPUcE3fNWiR7us1s6Zdzry29uSAs7ZLCekm6shCzpBwnT\"]},\"src/abstracts/Adminable.sol\":{\"keccak256\":\"0xdbcb26718ab7e57e1df94fd9ecd7de1345b839e6fb4925dc1a1182da770651b6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://02d559eaa018921cb60d10eb015d1d12e5a3ebe35c68afbbb8fb58370238dd37\",\"dweb:/ipfs/QmTKaj3GqGssMXiNjno8NvzkKrCLHwx3dsDdsoFajCDf5c\"]},\"src/abstracts/Batch.sol\":{\"keccak256\":\"0x649e76284c399a008b84c14ec1dab7bcf570fefe0c9be16705f3ade9994284ef\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://e97d0373d28f1f80f2f4d43b7d815427de81e0bf07bd527d749e6207020a5ad8\",\"dweb:/ipfs/QmWe9yCQujQL7DefhBcWhkmuJKPjqQFtqvQLwr2afNxVxa\"]},\"src/abstracts/NoDelegateCall.sol\":{\"keccak256\":\"0x6c9e22ca1303c5953ee5574c1605515bab67dc71e9325605087557c7faf71059\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8f3de9954d1dfb54e6be6a082c2732b3bd5f4b88549e2d1b29ed5527fef13fc0\",\"dweb:/ipfs/QmfRzCfJRr2StpLTG93Qp6rvfMWfbRRoo7DKoy6yPDizwP\"]},\"src/abstracts/SablierFlowBase.sol\":{\"keccak256\":\"0x06432483d12bd36f2a94eafbe4fd64e4f8f4d86eeab9cd031d9bed3daff9fc78\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b3f8ab6ca8c10e87a4da2735fd929fa662f3a862dacfb23bc4053dab7a6919bb\",\"dweb:/ipfs/QmdefepHr11iZuAp2uShLdyqbsxsxd1fRr4MDYM7gzUdSv\"]},\"src/interfaces/IAdminable.sol\":{\"keccak256\":\"0xa279c49e51228b571329164e36250e82b2c1378e8b549194ab7dd90fca9c3b2b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b0af605b82e64679db7039fb378fc206c4a000f8cd24b3ff17b019e27b81be8f\",\"dweb:/ipfs/QmUSr73cbnG7K79mVE9Nwcou5nJZEK2ZGekt3KpkfpxL4Z\"]},\"src/interfaces/IBatch.sol\":{\"keccak256\":\"0x6d3aab84cb0529afc1e8b4a2ad4f89feb15c76b6a515a14fdf4b98887d856ae4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://77e68471ec663dda763ac40bb7c35d47b2a87e262461dad9a2f03377f928e758\",\"dweb:/ipfs/QmdvAq7XyNAUA8uLhnFrWuBgZAjNjoq6BaY5AyjFKvC8Xh\"]},\"src/interfaces/IFlowNFTDescriptor.sol\":{\"keccak256\":\"0xdf964042ae7c74f03909d020fbb63e0ae56aeb2fa47213e3775a1e3263d00e54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0d4ede276be940185ea0b638c8f38f68232b6f4394ce0a69c2c729bc761aec82\",\"dweb:/ipfs/QmSgivdvgxrY7n6XbLQcGp645nRw1y2272iJUVhQyfnWUp\"]},\"src/interfaces/ISablierFlow.sol\":{\"keccak256\":\"0x927e8a530af9585cd6228ad0b3ac32cd1c3313093e5733e13d3545b6c756883f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://66caa48250e672af1af324602482bf9261182be9954f2c48df3be4fe3f41661d\",\"dweb:/ipfs/QmUEPLrxrTzeFuj3Tr2GpGSQUcJoGcvbvSN7iSNek47Lki\"]},\"src/interfaces/ISablierFlowBase.sol\":{\"keccak256\":\"0xc62fbd975f27964a6c8772fd23a2a2d7335b73c02c496ff3648126818a86d1cb\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f9af47aa84cc5bac30d454c47c40c519f874fd4bde08b39f49c68487a7d514dc\",\"dweb:/ipfs/QmdmJGv3jR7H1GZh6XG5fJrsRcXmSJpTFCayAP6XYZybcA\"]},\"src/libraries/Errors.sol\":{\"keccak256\":\"0x38c6031154fb79077346d4daad4895e7e9c25ced414b854526892f16548dd41d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0376106f810b9ab10f4eb6a096c8503cb22a2d6a88fd02917195ba6c5a438218\",\"dweb:/ipfs/QmaxVYd2GkSATLJW6Eg4MTUJpHwFD5dHQSEKqt2PqJ1k48\"]},\"src/libraries/Helpers.sol\":{\"keccak256\":\"0x6557c9f556743a4a0d83a02cc65b07d29cfc6da989731bafb226bea2f622ca66\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://054fc3708bb6a03d2c0b6269394b252d6ffd5b0069c453121f1a26ea2e05306d\",\"dweb:/ipfs/QmbyFuGmnBUuifda686WLYYeqioFM7bEJAZfon9H6nggeF\"]},\"src/types/DataTypes.sol\":{\"keccak256\":\"0xaaa5b90094cfafd31ec968c769c88ff91b27677d6dcea172b0d4672a537f0a10\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://16b34fa9fa2fa7b791631c6a819b554692b8aeb8bb89c671fb0f6179c9e88e9d\",\"dweb:/ipfs/Qmcg91DDt8AjjnGrgHnDQogsq4Us8YPCfCHVG4DJVDNSB6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialAdmin","type":"address"},{"internalType":"contract IFlowNFTDescriptor","name":"initialNFTDescriptor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"CallerNotAdmin"},{"inputs":[],"type":"error","name":"DelegateCall"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"type":"error","name":"PRBMath_MulDiv18_Overflow"},{"inputs":[{"internalType":"UD60x18","name":"x","type":"uint256"}],"type":"error","name":"PRBMath_UD60x18_IntoUint128_Overflow"},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}],"type":"error","name":"SablierFlowBase_FeeTransferFail"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SablierFlowBase_NoProtocolRevenue"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlowBase_NotTransferable"},{"inputs":[{"internalType":"UD60x18","name":"newProtocolFee","type":"uint256"},{"internalType":"UD60x18","name":"maxFee","type":"uint256"}],"type":"error","name":"SablierFlowBase_ProtocolFeeTooHigh"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SablierFlowBase_SurplusZero"},{"inputs":[],"type":"error","name":"SablierFlow_BrokerAddressZero"},{"inputs":[{"internalType":"UD60x18","name":"brokerFee","type":"uint256"},{"internalType":"UD60x18","name":"maxFee","type":"uint256"}],"type":"error","name":"SablierFlow_BrokerFeeTooHigh"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_DepositAmountZero"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"availableAmount","type":"uint128"},{"internalType":"uint128","name":"amount","type":"uint128"}],"type":"error","name":"SablierFlow_InvalidCalculation"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SablierFlow_InvalidTokenDecimals"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"streamRecipient","type":"address"}],"type":"error","name":"SablierFlow_NotStreamRecipient"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"streamSender","type":"address"}],"type":"error","name":"SablierFlow_NotStreamSender"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_Null"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"uint128","name":"withdrawableAmount","type":"uint128"}],"type":"error","name":"SablierFlow_Overdraw"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"}],"type":"error","name":"SablierFlow_RatePerSecondNotDifferent"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_RefundAmountZero"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"refundAmount","type":"uint128"},{"internalType":"uint128","name":"refundableAmount","type":"uint128"}],"type":"error","name":"SablierFlow_RefundOverflow"},{"inputs":[],"type":"error","name":"SablierFlow_SenderZeroAddress"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_StreamBalanceZero"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_StreamNotPaused"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_StreamPaused"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_StreamVoided"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"SablierFlow_Unauthorized"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_WithdrawAmountZero"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"type":"error","name":"SablierFlow_WithdrawToZeroAddress"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"to","type":"address"}],"type":"error","name":"SablierFlow_WithdrawalAddressNotRecipient"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"uint256","name":"totalDebt","type":"uint256","indexed":false},{"internalType":"UD21x18","name":"oldRatePerSecond","type":"uint128","indexed":false},{"internalType":"UD21x18","name":"newRatePerSecond","type":"uint128","indexed":false}],"type":"event","name":"AdjustFlowStream","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_fromTokenId","type":"uint256","indexed":false},{"internalType":"uint256","name":"_toTokenId","type":"uint256","indexed":false}],"type":"event","name":"BatchMetadataUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"uint256","name":"feeAmount","type":"uint256","indexed":true}],"type":"event","name":"CollectFees","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint128","name":"revenue","type":"uint128","indexed":false}],"type":"event","name":"CollectProtocolRevenue","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128","indexed":false},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"bool","name":"transferable","type":"bool","indexed":false}],"type":"event","name":"CreateFlowStream","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"funder","type":"address","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false}],"type":"event","name":"DepositFlowStream","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":false}],"type":"event","name":"MetadataUpdate","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"totalDebt","type":"uint256","indexed":false}],"type":"event","name":"PauseFlowStream","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"surplus","type":"uint256","indexed":false}],"type":"event","name":"Recover","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false}],"type":"event","name":"RefundFromFlowStream","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128","indexed":false}],"type":"event","name":"RestartFlowStream","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"contract IFlowNFTDescriptor","name":"oldNFTDescriptor","type":"address","indexed":false},{"internalType":"contract IFlowNFTDescriptor","name":"newNFTDescriptor","type":"address","indexed":false}],"type":"event","name":"SetNFTDescriptor","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"UD60x18","name":"oldProtocolFee","type":"uint256","indexed":false},{"internalType":"UD60x18","name":"newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"SetProtocolFee","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"oldAdmin","type":"address","indexed":true},{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"TransferAdmin","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"uint256","name":"newTotalDebt","type":"uint256","indexed":false},{"internalType":"uint256","name":"writtenOffDebt","type":"uint256","indexed":false}],"type":"event","name":"VoidFlowStream","anonymous":false},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"contract IERC20","name":"token","type":"address","indexed":true},{"internalType":"address","name":"caller","type":"address","indexed":false},{"internalType":"uint128","name":"withdrawAmount","type":"uint128","indexed":false},{"internalType":"uint128","name":"protocolFeeAmount","type":"uint128","indexed":false}],"type":"event","name":"WithdrawFromFlowStream","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_FEE","outputs":[{"internalType":"UD60x18","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"UD21x18","name":"newRatePerSecond","type":"uint128"}],"stateMutability":"payable","type":"function","name":"adjustRatePerSecond"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"aggregateBalance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes[]","name":"calls","type":"bytes[]"}],"stateMutability":"payable","type":"function","name":"batch","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"collectFees"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"collectProtocolRevenue"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"coveredDebtOf","outputs":[{"internalType":"uint128","name":"coveredDebt","type":"uint128"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"bool","name":"transferable","type":"bool"}],"stateMutability":"payable","type":"function","name":"create","outputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"bool","name":"transferable","type":"bool"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"payable","type":"function","name":"createAndDeposit","outputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"depletionTimeOf","outputs":[{"internalType":"uint256","name":"depletionTime","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"payable","type":"function","name":"depositAndPause"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"totalAmount","type":"uint128"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct Broker","name":"broker","type":"tuple","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"UD60x18","name":"fee","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"depositViaBroker"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint128","name":"balance","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRatePerSecond","outputs":[{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRecipient","outputs":[{"internalType":"address","name":"recipient","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSnapshotDebtScaled","outputs":[{"internalType":"uint256","name":"snapshotDebtScaled","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSnapshotTime","outputs":[{"internalType":"uint40","name":"snapshotTime","type":"uint40"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStream","outputs":[{"internalType":"struct Flow.Stream","name":"stream","type":"tuple","components":[{"internalType":"uint128","name":"balance","type":"uint128"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint40","name":"snapshotTime","type":"uint40"},{"internalType":"bool","name":"isStream","type":"bool"},{"internalType":"bool","name":"isTransferable","type":"bool"},{"internalType":"bool","name":"isVoided","type":"bool"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"uint256","name":"snapshotDebtScaled","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getToken","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTokenDecimals","outputs":[{"internalType":"uint8","name":"tokenDecimals","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isPaused","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isStream","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isTransferable","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isVoided","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextStreamId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nftDescriptor","outputs":[{"internalType":"contract IFlowNFTDescriptor","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ongoingDebtScaledOf","outputs":[{"internalType":"uint256","name":"ongoingDebtScaled","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"pause"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"protocolFee","outputs":[{"internalType":"UD60x18","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"protocolRevenue","outputs":[{"internalType":"uint128","name":"revenue","type":"uint128"}]},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recover"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"payable","type":"function","name":"refund"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"payable","type":"function","name":"refundAndPause"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"refundMax"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"refundableAmountOf","outputs":[{"internalType":"uint128","name":"refundableAmount","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"}],"stateMutability":"payable","type":"function","name":"restart"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"UD21x18","name":"ratePerSecond","type":"uint128"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"payable","type":"function","name":"restartAndDeposit"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"contract IFlowNFTDescriptor","name":"newNFTDescriptor","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setNFTDescriptor"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"UD60x18","name":"newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"statusOf","outputs":[{"internalType":"enum Flow.Status","name":"status","type":"uint8"}]},{"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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"uri","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"totalDebtOf","outputs":[{"internalType":"uint256","name":"totalDebt","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"uncoveredDebtOf","outputs":[{"internalType":"uint256","name":"uncoveredDebt","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"void"},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"payable","type":"function","name":"withdraw","outputs":[{"internalType":"uint128","name":"withdrawnAmount","type":"uint128"},{"internalType":"uint128","name":"protocolFeeAmount","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"stateMutability":"payable","type":"function","name":"withdrawMax","outputs":[{"internalType":"uint128","name":"withdrawnAmount","type":"uint128"},{"internalType":"uint128","name":"protocolFeeAmount","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"streamId","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawableAmountOf","outputs":[{"internalType":"uint128","name":"withdrawableAmount","type":"uint128"}]}],"devdoc":{"kind":"dev","methods":{"adjustRatePerSecond(uint256,uint128)":{"details":"Emits a {AdjustFlowStream} and {MetadataUpdate} event. Notes: - It updates snapshot debt and snapshot time. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a paused stream. - `msg.sender` must be the stream's sender. - `newRatePerSecond` must not equal to the current rate per second.","params":{"newRatePerSecond":"The new rate per second, denoted as a fixed-point number where 1e18 is 1 token per second.","streamId":"The ID of the stream to adjust."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"batch(bytes[])":{"details":"Since `msg.value` can be reused across calls, be VERY CAREFUL when using it. Refer to https://paradigm.xyz/2021/08/two-rights-might-make-a-wrong for more information.","params":{"calls":"An array of inputs for each call."},"returns":{"results":"An array of results from each call. Empty when the calls do not return anything."}},"collectFees()":{"details":"Emits a {CollectFees} event. Notes: - If the admin is a contract, it must be able to receive native token payments, e.g., ETH for Ethereum Mainnet."},"collectProtocolRevenue(address,address)":{"details":"Emits a {CollectProtocolRevenue} event. Requirements: - `msg.sender` must be the contract admin. - The accrued protocol revenue must be greater than zero.","params":{"to":"The address to send the protocol revenue.","token":"The contract address of the ERC-20 token for which to claim protocol revenue."}},"constructor":{"details":"Emits {TransferAdmin} event.","params":{"initialAdmin":"The address of the initial contract admin.","initialNFTDescriptor":"The address of the initial NFT descriptor."}},"coveredDebtOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"create(address,address,uint128,address,bool)":{"details":"Emits {CreateFlowStream} event. Requirements: - Must not be delegate called. - `sender` must not be the zero address. - `recipient` must not be the zero address. - The `token`'s decimals must be less than or equal to 18.","params":{"ratePerSecond":"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.","recipient":"The address receiving the tokens.","sender":"The address streaming the tokens, which is able to adjust and pause the stream. It doesn't have to be the same as `msg.sender`.","token":"The contract address of the ERC-20 token to be streamed.","transferable":"Boolean indicating if the stream NFT is transferable."},"returns":{"streamId":"The ID of the newly created stream."}},"createAndDeposit(address,address,uint128,address,bool,uint128)":{"details":"Emits a {Transfer}, {CreateFlowStream}, and {DepositFlowStream} event. Notes: - Refer to the notes in {deposit}. Requirements: - Refer to the requirements in {create} and {deposit}.","params":{"amount":"The deposit amount, denoted in token's decimals.","ratePerSecond":"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.","recipient":"The address receiving the tokens.","sender":"The address streaming the tokens. It doesn't have to be the same as `msg.sender`.","token":"The contract address of the ERC-20 token to be streamed.","transferable":"Boolean indicating if the stream NFT is transferable."},"returns":{"streamId":"The ID of the newly created stream."}},"depletionTimeOf(uint256)":{"details":"Reverts on the following conditions: - If `streamId` references a paused or a null stream. - If stream balance is zero.","params":{"streamId":"The stream ID for the query."}},"deposit(uint256,uint128,address,address)":{"details":"Emits a {Transfer} and {DepositFlowStream} event. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a voided stream. - `amount` must be greater than zero. - `sender` and `recipient` must match the stream's sender and recipient addresses.","params":{"amount":"The deposit amount, denoted in token's decimals.","recipient":"The stream's recipient address.","sender":"The stream's sender address.","streamId":"The ID of the stream to deposit to."}},"depositAndPause(uint256,uint128)":{"details":"Emits a {Transfer}, {DepositFlowStream} and {PauseFlowStream} event. Notes: - Refer to the notes in {deposit} and {pause}. Requirements: - Refer to the requirements in {deposit} and {pause}.","params":{"amount":"The deposit amount, denoted in token's decimals.","streamId":"The ID of the stream to deposit to, and then pause."}},"depositViaBroker(uint256,uint128,address,address,(address,uint256))":{"details":"Emits a {Transfer} and {DepositFlowStream} event. Notes: - Refer to the notes in {deposit}. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `totalAmount` must be greater than zero. Otherwise it will revert inside {deposit}. - `broker.account` must not be 0 address. - `broker.fee` must not be greater than `MAX_FEE`. It can be zero.","params":{"broker":"Struct encapsulating (i) the address of the broker assisting in creating the stream, and (ii) the percentage fee paid to the broker from `totalAmount`, denoted as a fixed-point percentage.","recipient":"The stream's recipient address.","sender":"The stream's sender address.","streamId":"The ID of the stream to deposit on.","totalAmount":"The total amount, including the deposit and any broker fee, denoted in token's decimals."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"getBalance(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getRatePerSecond(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The ID of the stream to make the query for."}},"getRecipient(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getSender(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getSnapshotDebtScaled(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getSnapshotTime(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The ID of the stream to make the query for."}},"getStream(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"getToken(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The ID of the stream to make the query for."}},"getTokenDecimals(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The ID of the stream to make the query for."}},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"isPaused(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"isStream(uint256)":{"details":"Does not revert if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"isTransferable(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"isVoided(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"name()":{"details":"See {IERC721Metadata-name}."},"ongoingDebtScaledOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"pause(uint256)":{"details":"Emits {PauseFlowStream} event. Notes: - It updates snapshot debt and snapshot time. - It sets the rate per second to zero. Requirements: - Must not be delegate called. - `streamId` must not reference a null or an already paused stream. - `msg.sender` must be the stream's sender.","params":{"streamId":"The ID of the stream to pause."}},"recover(address,address)":{"details":"Emits a {Recover} event. Notes: - The surplus amount is defined as the difference between the total balance of the contract for the provided ERC-20 token and the sum of balances of all streams created using the same ERC-20 token. Requirements: - `msg.sender` must be the contract admin. - The surplus amount must be greater than zero.","params":{"to":"The address to send the surplus amount.","token":"The contract address of the ERC-20 token to recover for."}},"refund(uint256,uint128)":{"details":"Emits a {Transfer} and {RefundFromFlowStream} event. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `msg.sender` must be the sender. - `amount` must be greater than zero and must not exceed the refundable amount.","params":{"amount":"The amount to refund, denoted in token's decimals.","streamId":"The ID of the stream to refund from."}},"refundAndPause(uint256,uint128)":{"details":"Emits a {Transfer}, {RefundFromFlowStream} and {PauseFlowStream} event. Notes: - Refer to the notes in {pause}. Requirements: - Refer to the requirements in {refund} and {pause}.","params":{"amount":"The amount to refund, denoted in token's decimals.","streamId":"The ID of the stream to refund from and then pause."}},"refundMax(uint256)":{"details":"Emits a {Transfer} and {RefundFromFlowStream} event. Requirements: - Refer to the requirements in {refund}.","params":{"streamId":"The ID of the stream to refund from."}},"refundableAmountOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"restart(uint256,uint128)":{"details":"Emits {RestartFlowStream} event. Notes: - It updates snapshot debt and snapshot time. Requirements: - Must not be delegate called. - `streamId` must not reference a null, or a voided stream. - `msg.sender` must be the stream's sender. - `ratePerSecond` must be greater than zero.","params":{"ratePerSecond":"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.","streamId":"The ID of the stream to restart."}},"restartAndDeposit(uint256,uint128,uint128)":{"details":"Emits a {RestartFlowStream}, {Transfer}, and {DepositFlowStream} event. Notes: - Refer to the notes in {restart} and {deposit}. Requirements: - `amount` must be greater than zero. - Refer to the requirements in {restart}.","params":{"amount":"The deposit amount, denoted in token's decimals.","ratePerSecond":"The amount by which the debt is increasing every second, denoted as a fixed-point number where 1e18 is 1 token per second.","streamId":"The ID of the stream to restart."}},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setNFTDescriptor(address)":{"details":"Emits a {SetNFTDescriptor} and {BatchMetadataUpdate} event. Notes: - Does not revert if the NFT descriptor is the same. Requirements: - `msg.sender` must be the contract admin.","params":{"newNFTDescriptor":"The address of the new NFT descriptor contract."}},"setProtocolFee(address,uint256)":{"details":"Emits a {SetProtocolFee} and {BatchMetadataUpdate} event. Notes: - Does not revert if the fee is the same. - It can be zero. Requirements: - `msg.sender` must be the contract admin. - `newProtocolFee` must not be greater than `MAX_FEE`.","params":{"newProtocolFee":"The new protocol fee, denoted as a fixed-point percentage where 1e18 is 100%.","token":"The contract address of the ERC-20 token to update the fee for."}},"statusOf(uint256)":{"details":"Reverts if `streamId` references a null stream. Integrators should exercise caution when depending on the return value of this function as streams can be paused and resumed at any moment.","params":{"streamId":"The stream ID for the query."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"totalDebtOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"transferAdmin(address)":{"details":"Notes: - Does not revert if the admin is the same. - This function can potentially leave the contract without an admin, thereby removing any functionality that is only available to the admin. Requirements: - `msg.sender` must be the contract admin.","params":{"newAdmin":"The address of the new admin."}},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"uncoveredDebtOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."}},"void(uint256)":{"details":"Emits {VoidFlowStream} event. Notes: - It sets snapshot time to the `block.timestamp` - Voiding an insolvent stream sets the snapshot debt to the stream's balance making the uncovered debt to become zero. - Voiding a solvent stream updates the snapshot debt by adding up ongoing debt. - It sets the rate per second to zero. - A voided stream cannot be restarted. Requirements: - Must not be delegate called. - `streamId` must not reference a null or a voided stream. - `msg.sender` must either be the stream's sender, recipient or an approved third party.","params":{"streamId":"The ID of the stream to void."}},"withdraw(uint256,address,uint128)":{"details":"Emits a {Transfer} and {WithdrawFromFlowStream} event. Notes: - It sets the snapshot time to the `block.timestamp` if `amount` is greater than snapshot debt. - A protocol fee may be charged on the withdrawn amount if the protocol fee is enabled for the streaming token. Requirements: - Must not be delegate called. - `streamId` must not reference a null stream. - `to` must not be the zero address. - `to` must be the recipient if `msg.sender` is not the stream's recipient. - `amount` must  be greater than zero and must not exceed the withdrawable amount.","params":{"amount":"The amount to withdraw, denoted in token's decimals.","streamId":"The ID of the stream to withdraw from.","to":"The address receiving the withdrawn tokens."},"returns":{"protocolFeeAmount":"The protocol fee amount, denoted in the token's decimals.","withdrawnAmount":"The amount withdrawn to the recipient, denoted in token's decimals. This is input amount minus the protocol fee."}},"withdrawMax(uint256,address)":{"details":"Emits a {Transfer} and {WithdrawFromFlowStream} event. Notes: - Refer to the notes in {withdraw}. Requirements: - Refer to the requirements in {withdraw}.","params":{"streamId":"The ID of the stream to withdraw from.","to":"The address receiving the withdrawn tokens."},"returns":{"protocolFeeAmount":"The protocol fee amount, denoted in the token's decimals.","withdrawnAmount":"The amount withdrawn to the recipient, denoted in token's decimals."}},"withdrawableAmountOf(uint256)":{"details":"Reverts if `streamId` references a null stream.","params":{"streamId":"The stream ID for the query."},"returns":{"withdrawableAmount":"The amount that the recipient can withdraw."}}},"version":1},"userdoc":{"kind":"user","methods":{"MAX_FEE()":{"notice":"Retrieves the maximum fee that can be charged by the broker and the protocol, denoted as a fixed-point percentage where 1e18 is 100%."},"adjustRatePerSecond(uint256,uint128)":{"notice":"Changes the stream's rate per second."},"admin()":{"notice":"The address of the admin account or contract."},"aggregateBalance(address)":{"notice":"Retrieves the sum of balances of all streams."},"batch(bytes[])":{"notice":"Allows batched calls to self, i.e., `this` contract."},"collectFees()":{"notice":"Collects the accrued fees by transferring them to the contract admin."},"collectProtocolRevenue(address,address)":{"notice":"Collect the protocol revenue accrued for the provided ERC-20 token."},"coveredDebtOf(uint256)":{"notice":"Returns the amount of debt covered by the stream balance, denoted in token's decimals."},"create(address,address,uint128,address,bool)":{"notice":"Creates a new Flow stream by setting the snapshot time to `block.timestamp` and leaving the balance to zero. The stream is wrapped in an ERC-721 NFT."},"createAndDeposit(address,address,uint128,address,bool,uint128)":{"notice":"Creates a new Flow stream by setting the snapshot time to `block.timestamp` and the balance to `amount`. The stream is wrapped in an ERC-721 NFT."},"depletionTimeOf(uint256)":{"notice":"Returns the time at which the total debt exceeds stream balance. If the total debt is less than or equal to stream balance, it returns 0."},"deposit(uint256,uint128,address,address)":{"notice":"Makes a deposit in a stream."},"depositAndPause(uint256,uint128)":{"notice":"Deposits tokens in a stream and pauses it."},"depositViaBroker(uint256,uint128,address,address,(address,uint256))":{"notice":"Deposits tokens in a stream."},"getBalance(uint256)":{"notice":"Retrieves the balance of the stream, i.e. the total deposited amounts subtracted by the total withdrawn amounts, denoted in token's decimals."},"getRatePerSecond(uint256)":{"notice":"Retrieves the rate per second of the stream, denoted as a fixed-point number where 1e18 is 1 token per second."},"getRecipient(uint256)":{"notice":"Retrieves the stream's recipient."},"getSender(uint256)":{"notice":"Retrieves the stream's sender."},"getSnapshotDebtScaled(uint256)":{"notice":"Retrieves the snapshot debt of the stream, denoted as a fixed-point number where 1e18 is 1 token."},"getSnapshotTime(uint256)":{"notice":"Retrieves the snapshot time of the stream, which is a Unix timestamp."},"getStream(uint256)":{"notice":"Retrieves the stream entity."},"getToken(uint256)":{"notice":"Retrieves the token of the stream."},"getTokenDecimals(uint256)":{"notice":"Retrieves the token decimals of the stream."},"isPaused(uint256)":{"notice":"Returns whether a stream is paused."},"isStream(uint256)":{"notice":"Retrieves a flag indicating whether the stream exists."},"isTransferable(uint256)":{"notice":"Retrieves a flag indicating whether the stream NFT is transferable."},"isVoided(uint256)":{"notice":"Retrieves a flag indicating whether the stream is voided."},"nextStreamId()":{"notice":"Counter for stream ids."},"nftDescriptor()":{"notice":"Contract that generates the non-fungible token URI."},"ongoingDebtScaledOf(uint256)":{"notice":"Returns the amount of debt accrued since the snapshot time until now, denoted as a fixed-point number where 1e18 is 1 token."},"pause(uint256)":{"notice":"Pauses the stream."},"protocolFee(address)":{"notice":"Protocol fee for the provided ERC-20 token, denoted as a fixed-point percentage where 1e18 is 100%."},"protocolRevenue(address)":{"notice":"Protocol revenue accrued for the provided ERC-20 token, denoted in token's decimals."},"recover(address,address)":{"notice":"Recover the surplus amount of tokens."},"refund(uint256,uint128)":{"notice":"Refunds the provided amount of tokens from the stream to the sender's address."},"refundAndPause(uint256,uint128)":{"notice":"Refunds the provided amount of tokens from the stream to the sender's address."},"refundMax(uint256)":{"notice":"Refunds the entire refundable amount of tokens from the stream to the sender's address."},"refundableAmountOf(uint256)":{"notice":"Returns the amount that the sender can be refunded from the stream, denoted in token's decimals."},"restart(uint256,uint128)":{"notice":"Restarts the stream with the provided rate per second."},"restartAndDeposit(uint256,uint128,uint128)":{"notice":"Restarts the stream with the provided rate per second, and makes a deposit."},"setNFTDescriptor(address)":{"notice":"Sets a new NFT descriptor contract, which produces the URI describing the Sablier stream NFTs."},"setProtocolFee(address,uint256)":{"notice":"Sets a new protocol fee that will be charged on all the withdrawals from streams created with the provided ERC-20 token."},"statusOf(uint256)":{"notice":"Returns the stream's status."},"totalDebtOf(uint256)":{"notice":"Returns the total amount owed by the sender to the recipient, denoted in token's decimals."},"transferAdmin(address)":{"notice":"Transfers the contract admin to a new address."},"uncoveredDebtOf(uint256)":{"notice":"Returns the amount of debt not covered by the stream balance, denoted in token's decimals."},"void(uint256)":{"notice":"Voids a stream."},"withdraw(uint256,address,uint128)":{"notice":"Withdraws the provided `amount` minus the protocol fee to the provided `to` address."},"withdrawMax(uint256,address)":{"notice":"Withdraws the entire withdrawable amount minus the protocol fee to the provided `to` address."},"withdrawableAmountOf(uint256)":{"notice":"Calculates the amount that the recipient can withdraw from the stream, denoted in token decimals. This is an alias for `coveredDebtOf`."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@prb/math/=node_modules/@prb/math/","forge-std/=node_modules/forge-std/","solady/=node_modules/solady/"],"optimizer":{"enabled":true,"runs":10000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/SablierFlow.sol":"SablierFlow"},"evmVersion":"shanghai","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC4906.sol":{"keccak256":"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44","urls":["bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd","dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC721.sol":{"keccak256":"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d","urls":["bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b","dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2","urls":["bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850","dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x13dd061770956c8489b80cfc89d9cdfc8ea2783d953691ea037a380731d52784","urls":["bzz-raw://ed37f0f86e7fe31659e48c3a2a5920a92dd7f13c85cf8991fb79fe5f01e08efd","dweb:/ipfs/QmUtm9bQGvjr9hHGwkPWrbgFmVqzaJcxjkaYDex2oGsonS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133","urls":["bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8","dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"node_modules/@prb/math/src/Common.sol":{"keccak256":"0x8225a3898d2f11f585da1fb82234800e9717fa080dbe53d450fd429a3a632e99","urls":["bzz-raw://2dcbf39ca575f68f32f0d1c66391de94082424956e7585e849813966f8c0fc05","dweb:/ipfs/QmYvk8vXFDUJHrmqbtutYXfoLomLBosYLyBzuPoYBxsQ42"],"license":"MIT"},"node_modules/@prb/math/src/UD21x18.sol":{"keccak256":"0xb0176747ae9c9f329bce39730d4d315b839e73a815494ddf2de2094aa9056957","urls":["bzz-raw://534a82fe091627f9d01e665ac763daf56981b30b3976269f8e5c33a84a2dbebc","dweb:/ipfs/QmYiiGJNr4S4ypYB4KGBPMTMiNskert8Cp4s6uf1CU3k73"],"license":"MIT"},"node_modules/@prb/math/src/UD60x18.sol":{"keccak256":"0xb98c6f74275914d279e8af6c502c2b1f50d5f6e1ed418d3b0153f5a193206c48","urls":["bzz-raw://a750edde2955f160806a51083a12185fb04e20efca0e3a7ebd127dc1acc049a9","dweb:/ipfs/QmeAre3mThopoQPB9mSXZq6jck59QZ7JbDFR83urd2SLvp"],"license":"MIT"},"node_modules/@prb/math/src/sd1x18/Casting.sol":{"keccak256":"0x5d365f655f01598926c5d4fe5cda277f2cc7736fe38f943c11a32009077ddd5c","urls":["bzz-raw://56b378bd6039819bc12e5f17dabd9492e1410b3281f9df496cf8210539101a11","dweb:/ipfs/QmcMaE64ZWMg9cFhYxdTuG8nfzeDdNuTRHMMoFXi6tSZGu"],"license":"MIT"},"node_modules/@prb/math/src/sd1x18/Constants.sol":{"keccak256":"0xc14cc32061863d83912f9616de86f3c34f1ac58614b7d504c6ce07ee8efdb8e8","urls":["bzz-raw://22483b1282dda6a556b0232f008a5a3296bbfd76b1886e6b72bf351b7c554fab","dweb:/ipfs/QmYX9cYkrFxBbhZNKsb6uUxtrc2chmAj7vuc7UKRPGMwos"],"license":"MIT"},"node_modules/@prb/math/src/sd1x18/Errors.sol":{"keccak256":"0xc3c8b1ab3d19889c356c222a3a2186d45dfc1d3a17b9ad88159bb64ee457baa6","urls":["bzz-raw://84fbe57569246403f778330bd7723018dfcb5f0ec50d7b1d82cc983c94a54bca","dweb:/ipfs/QmWssAAnovc2EVjt58rTnxraE9B1RMivwTvYCYgpnr6oSE"],"license":"MIT"},"node_modules/@prb/math/src/sd1x18/ValueType.sol":{"keccak256":"0xaa9dc7b562faf45264390d80e2ea10c5295bb8a4f10d76261a3f9c04363734c0","urls":["bzz-raw://c6ca36acd15f5cb47cf124ddec289f84e1011f2d29056159e4570435629a3353","dweb:/ipfs/QmUKdiLmZpAkNCq2TKxrPbQPUhiRFXGfjGSnY1VeHVu4y6"],"license":"MIT"},"node_modules/@prb/math/src/sd21x18/Casting.sol":{"keccak256":"0x4a16adddb9ab1f6939dd4567c77205015a11081cb840029b84bbb6fdaf78ee36","urls":["bzz-raw://5003b2f4cd2fc1413da36bc63107c6e83a88d29693e8f97b54f300fa78f9c6d2","dweb:/ipfs/QmaNJn91NLrZmeeGqnFQV1FTrLVSW852zHyWTrWJ5pf1pd"],"license":"MIT"},"node_modules/@prb/math/src/sd21x18/Constants.sol":{"keccak256":"0x501c2d5cfdea9450422182059c8df1cb6a859901a07bd59631c3fa24edcc79d4","urls":["bzz-raw://4669a65001c92919671fd879d33ce0e5030b602a7ba4d36bd2308128d8d1f396","dweb:/ipfs/QmUC3bJ3qdkCmLMw3WHBcEqvuC4tExT2LXzUhgu5KQ3vi3"],"license":"MIT"},"node_modules/@prb/math/src/sd21x18/Errors.sol":{"keccak256":"0xc5422ee47eb139274e538e758fb40177a1ba22c2113ef3b3446102f0150bfe0a","urls":["bzz-raw://a1981e052e9e86e1b0e4e55a057a7af4739aedd4ead2d60e3eaa40fb703594ee","dweb:/ipfs/QmPK5qSujnyk1R8ues4RhDMy1tRKKyjQ31YJTviTKq7GML"],"license":"MIT"},"node_modules/@prb/math/src/sd21x18/ValueType.sol":{"keccak256":"0x532bba888370bed393464412f4ef3462d654802e71c953ad02d078e3d2701092","urls":["bzz-raw://922a4e8dd813602f72d165aa1dfdf2c29b971a2abe73bebca7cd81a32ee2c880","dweb:/ipfs/QmTBAJnx1r3sZpbQAuTgQtsTtvjZbpDwhCJRzkhzUumbdf"],"license":"MIT"},"node_modules/@prb/math/src/sd59x18/Casting.sol":{"keccak256":"0xdf70d8e70c6d6325f3f7eb028c484bc7189ef902f1d4b5b220af2e550bb5fc39","urls":["bzz-raw://0b15bcd36129c5cb163d57a117435afb171182018dd6d1e766a5f49cf1f4b63d","dweb:/ipfs/QmbjzkMBH4FM2rdxGbx9LQ65wVERijNcu7R9C8dQmH3y4n"],"license":"MIT"},"node_modules/@prb/math/src/sd59x18/Constants.sol":{"keccak256":"0x9bcb8dd6b3e886d140ad1c32747a4f6d29a492529ceb835be878ae837aa6cc3a","urls":["bzz-raw://c4045c633e3618e7e90a768d92415b2f20f781fe129b4f4e26fa88f7dbf9201f","dweb:/ipfs/Qmbet95pizwPno82cJ383wJtgQRSQKESmhVZ1vDrgAu7Si"],"license":"MIT"},"node_modules/@prb/math/src/sd59x18/Errors.sol":{"keccak256":"0x0a79c28c85fc8a450b0801ff2e66114eac4ec565819f5d1d8738904658fe33e2","urls":["bzz-raw://9e0d4fd3c998019fb8555d9e26c03bec42a8513bdf4185aeac2da3a000abaebf","dweb:/ipfs/QmahFJHXcX4RwPxaQbUf6LVZEk8NSpjCV3Eif7i9iqC6Mk"],"license":"MIT"},"node_modules/@prb/math/src/sd59x18/Helpers.sol":{"keccak256":"0x208570f1657cf730cb6c3d81aa14030e0d45cf906cdedea5059369d7df4bb716","urls":["bzz-raw://4c78ca900edafa9338d4e3649a55ab0c84f76468d8a22fb945ba6d01e70f8fed","dweb:/ipfs/QmeP4hQYfNxcATd1FsasdD4ebyu2vrC9K1N68swxUJzzZD"],"license":"MIT"},"node_modules/@prb/math/src/sd59x18/Math.sol":{"keccak256":"0xd8e8b51db9b3e2fa31a60f6b8ce4ea0112c3364442ede5992aa0aa7a2c925c84","urls":["bzz-raw://3c56913970e34ee7b142047b21f1856a511cbdc3473b7c50418a8490e19cd462","dweb:/ipfs/QmfG1F9CBDjPYD7NXora9awFfdpvBMY9SCg5pMLCFRv9tD"],"license":"MIT"},"node_modules/@prb/math/src/sd59x18/ValueType.sol":{"keccak256":"0x76597ba64d37d66e0178512bc9bbc1a031a7634c45e5d5c6e9da87f46952dc9d","urls":["bzz-raw://36148899ad874814e9292636fb974d2eec61f1bcc0875ec39cf444d70ba40919","dweb:/ipfs/QmadUe4kH2FPcdxvhCKy8yiezCvPWor4VcPzqLYSAaGDDb"],"license":"MIT"},"node_modules/@prb/math/src/ud21x18/Casting.sol":{"keccak256":"0x3821aa57604f6e5b7c9c5c5cc97a6d71116e673cf3fee5f76fcd42b4cefded65","urls":["bzz-raw://a80399c6b38ab45cc10d0a6683d50340cd89d9a085b6d0dcfb81e7c4e5b3ce09","dweb:/ipfs/QmWNW2YD2LMkqrpAtJYeeuHN329Rx7mvfmrjsCo1p6akTL"],"license":"MIT"},"node_modules/@prb/math/src/ud21x18/Constants.sol":{"keccak256":"0x0997574a1ced6c43bde6d9c9175edc5ad64cbb920a0969a9db68eea543747601","urls":["bzz-raw://c09f03345a6779b002b38ffc3954258accbb2b1d0d5506d42c3bd7f117304f60","dweb:/ipfs/QmTeBXRCE7H2HpqKUNsZN7Nk3rdBnFmbAUFom3E1PJeGuV"],"license":"MIT"},"node_modules/@prb/math/src/ud21x18/Errors.sol":{"keccak256":"0x35a1fb789b90f8c90865884d3023deb17fcca5c7146b5ddef823496d835a5415","urls":["bzz-raw://0af359d07ba25bdc90de7c05ed6216833932caa75d4a02fcfc51ceeaba5a4e80","dweb:/ipfs/QmavBFw73Xfp1qJiN6P1gk2Dfr8ByWo3dyCPVgDHtko2gq"],"license":"MIT"},"node_modules/@prb/math/src/ud21x18/ValueType.sol":{"keccak256":"0x24838b2b1da371b9259d8ee21534a9f0cb5796aba75a4efca2374627952bee25","urls":["bzz-raw://897e6b79308651671c7f3c91a0069e778b47356c9ba3f86e238398ab7f2623af","dweb:/ipfs/QmZbLw3tJVRZFQnV9jWQUmF43gna841adSG2TAiwDAifGU"],"license":"MIT"},"node_modules/@prb/math/src/ud2x18/Casting.sol":{"keccak256":"0x0f3141ed054e7c29dbe1acb4b88b18eb05d60e998fba6b4e503a6799faa356d6","urls":["bzz-raw://b1e2468fc4c458082aaf4aa2e35af9ba3702f207e3c8533dd1e7da11ad605eae","dweb:/ipfs/QmSm7iRH1eo4cJCwcAiiXWRH9Hn1urSS4tMdbaFbFGuTyL"],"license":"MIT"},"node_modules/@prb/math/src/ud2x18/Constants.sol":{"keccak256":"0x29b0e050c865899e1fb9022b460a7829cdee248c44c4299f068ba80695eec3fc","urls":["bzz-raw://cbaef16b662fac235349bcf97bc980dd0cba15d4e6230caae61224cdac8ea6d9","dweb:/ipfs/QmZQa5XBhi7k3yhtCd8wVpnwW8htfU4sjXxWhxRypMBYkC"],"license":"MIT"},"node_modules/@prb/math/src/ud2x18/Errors.sol":{"keccak256":"0x3b27e2a57438cd30d9c130f84aace24d547e5ed58e8689691d7d92ad2db38ddd","urls":["bzz-raw://841cf9fb45443899c6b659300bbf503c3fd2c1a1e83b7f0e28620eed457f7437","dweb:/ipfs/QmUqg8WscP5yQPw3UMUCWaB9RLU6nryGzseuyhAjNnDc1i"],"license":"MIT"},"node_modules/@prb/math/src/ud2x18/ValueType.sol":{"keccak256":"0x975a2e69b48f34a4c0bd80e8a5609ac67b7264c91992c0944f9ebe7b9e3fc9d0","urls":["bzz-raw://65d012521c475295d7e70b7d526fcc0911d0f238ea938719d77251bba00c9b41","dweb:/ipfs/QmexEvTQCCBPYRWAYnomZX5M7C2EkXQRAXqEYMNUZfazCs"],"license":"MIT"},"node_modules/@prb/math/src/ud60x18/Casting.sol":{"keccak256":"0x0803318ddc98b4ba8fbfe70e5ee08d78387fe6ae00982b9960518085a751d7b6","urls":["bzz-raw://2e68a2f780b2e33fa5416eb60f9daa81f014c2591119f4b67bed1217d5530780","dweb:/ipfs/QmZe7JTWvbfKqMnu4sxUwWCtLcCay9hH71VZUpoFCdENcr"],"license":"MIT"},"node_modules/@prb/math/src/ud60x18/Constants.sol":{"keccak256":"0x2b80d26153d3fdcfb3a9ca772d9309d31ed1275f5b8b54c3ffb54d3652b37d90","urls":["bzz-raw://7e3a6673a156f635db94dc176baaa7274db8f9bec4461cd1152596253550ee3b","dweb:/ipfs/Qmc9zT4kNSbMYaXcnbxNVqmb3P3m46ieaQxkwxqLwsvRA5"],"license":"MIT"},"node_modules/@prb/math/src/ud60x18/Conversions.sol":{"keccak256":"0xd486ecca97abe69acdb28230088f4c7097fbdae5b36c5ae45d5be2faac4c33f2","urls":["bzz-raw://6080870ec6955ff0f5278f9c480b218a68714daf5f2ee42da0276d08d7b82932","dweb:/ipfs/QmQ1SERHdemJgPrt4USwY8j5r63jZ8fQuJAm1knjMEEQEY"],"license":"MIT"},"node_modules/@prb/math/src/ud60x18/Errors.sol":{"keccak256":"0xbab6b0e303d32f3a9d9e2fe881f0392b8c59a73051a4d34f21a403b3961b3044","urls":["bzz-raw://86a019bcf2510d0691287329dc057479cc0abc48a5e15f245e7f15c03052d2c8","dweb:/ipfs/QmeXe5pbpDHvN5DZ8puXmH2RJ25zDHj55wpiStWtNQPvq6"],"license":"MIT"},"node_modules/@prb/math/src/ud60x18/Helpers.sol":{"keccak256":"0xf5faff881391d2c060029499a666cc5f0bea90a213150bb476fae8f02a5df268","urls":["bzz-raw://76105fa22bb1b5f1fa99abf9c4fbc9577a02c7bc204f271754c407f0d75489f5","dweb:/ipfs/QmVNGZSTniDuZus5DdbFubqJXCLtTaZit7YPm4ntjr5Lgr"],"license":"MIT"},"node_modules/@prb/math/src/ud60x18/Math.sol":{"keccak256":"0xc4e51dfd9af62938e277e90fa724099f239d33727a35909ed48c292a76faf2fc","urls":["bzz-raw://d731537cbc50b852c21d28625aeb2c329729afc23a7b86ff9d8ee5878f47e9d6","dweb:/ipfs/QmS7Cj4pAdPZcTp7RqYXyxBc9EYX92CT8icfkNigktUsLr"],"license":"MIT"},"node_modules/@prb/math/src/ud60x18/ValueType.sol":{"keccak256":"0x1b200baf25d01a8b91b97b42114248636f742b5b7028487ef4daef6621e378a3","urls":["bzz-raw://b5708ed017206bda2197654e80bea9f37b3a9993434bb066c903c2865e028f47","dweb:/ipfs/QmTyotZk2J5YvWkNvB2qhXBMgRGWW2UgPqR4JPocrXSr8n"],"license":"MIT"},"src/SablierFlow.sol":{"keccak256":"0xc7001d5e7b3cb9a124466406390de52e27e071668f86c0319240d2e278f5793f","urls":["bzz-raw://99c2ea9b04ac6c32006386a5daf89094d0b20e601288262be23c00d29c60ca70","dweb:/ipfs/QmPUcE3fNWiR7us1s6Zdzry29uSAs7ZLCekm6shCzpBwnT"],"license":"BUSL-1.1"},"src/abstracts/Adminable.sol":{"keccak256":"0xdbcb26718ab7e57e1df94fd9ecd7de1345b839e6fb4925dc1a1182da770651b6","urls":["bzz-raw://02d559eaa018921cb60d10eb015d1d12e5a3ebe35c68afbbb8fb58370238dd37","dweb:/ipfs/QmTKaj3GqGssMXiNjno8NvzkKrCLHwx3dsDdsoFajCDf5c"],"license":"GPL-3.0-or-later"},"src/abstracts/Batch.sol":{"keccak256":"0x649e76284c399a008b84c14ec1dab7bcf570fefe0c9be16705f3ade9994284ef","urls":["bzz-raw://e97d0373d28f1f80f2f4d43b7d815427de81e0bf07bd527d749e6207020a5ad8","dweb:/ipfs/QmWe9yCQujQL7DefhBcWhkmuJKPjqQFtqvQLwr2afNxVxa"],"license":"GPL-3.0-or-later"},"src/abstracts/NoDelegateCall.sol":{"keccak256":"0x6c9e22ca1303c5953ee5574c1605515bab67dc71e9325605087557c7faf71059","urls":["bzz-raw://8f3de9954d1dfb54e6be6a082c2732b3bd5f4b88549e2d1b29ed5527fef13fc0","dweb:/ipfs/QmfRzCfJRr2StpLTG93Qp6rvfMWfbRRoo7DKoy6yPDizwP"],"license":"GPL-3.0-or-later"},"src/abstracts/SablierFlowBase.sol":{"keccak256":"0x06432483d12bd36f2a94eafbe4fd64e4f8f4d86eeab9cd031d9bed3daff9fc78","urls":["bzz-raw://b3f8ab6ca8c10e87a4da2735fd929fa662f3a862dacfb23bc4053dab7a6919bb","dweb:/ipfs/QmdefepHr11iZuAp2uShLdyqbsxsxd1fRr4MDYM7gzUdSv"],"license":"GPL-3.0-or-later"},"src/interfaces/IAdminable.sol":{"keccak256":"0xa279c49e51228b571329164e36250e82b2c1378e8b549194ab7dd90fca9c3b2b","urls":["bzz-raw://b0af605b82e64679db7039fb378fc206c4a000f8cd24b3ff17b019e27b81be8f","dweb:/ipfs/QmUSr73cbnG7K79mVE9Nwcou5nJZEK2ZGekt3KpkfpxL4Z"],"license":"GPL-3.0-or-later"},"src/interfaces/IBatch.sol":{"keccak256":"0x6d3aab84cb0529afc1e8b4a2ad4f89feb15c76b6a515a14fdf4b98887d856ae4","urls":["bzz-raw://77e68471ec663dda763ac40bb7c35d47b2a87e262461dad9a2f03377f928e758","dweb:/ipfs/QmdvAq7XyNAUA8uLhnFrWuBgZAjNjoq6BaY5AyjFKvC8Xh"],"license":"GPL-3.0-or-later"},"src/interfaces/IFlowNFTDescriptor.sol":{"keccak256":"0xdf964042ae7c74f03909d020fbb63e0ae56aeb2fa47213e3775a1e3263d00e54","urls":["bzz-raw://0d4ede276be940185ea0b638c8f38f68232b6f4394ce0a69c2c729bc761aec82","dweb:/ipfs/QmSgivdvgxrY7n6XbLQcGp645nRw1y2272iJUVhQyfnWUp"],"license":"GPL-3.0-or-later"},"src/interfaces/ISablierFlow.sol":{"keccak256":"0x927e8a530af9585cd6228ad0b3ac32cd1c3313093e5733e13d3545b6c756883f","urls":["bzz-raw://66caa48250e672af1af324602482bf9261182be9954f2c48df3be4fe3f41661d","dweb:/ipfs/QmUEPLrxrTzeFuj3Tr2GpGSQUcJoGcvbvSN7iSNek47Lki"],"license":"GPL-3.0-or-later"},"src/interfaces/ISablierFlowBase.sol":{"keccak256":"0xc62fbd975f27964a6c8772fd23a2a2d7335b73c02c496ff3648126818a86d1cb","urls":["bzz-raw://f9af47aa84cc5bac30d454c47c40c519f874fd4bde08b39f49c68487a7d514dc","dweb:/ipfs/QmdmJGv3jR7H1GZh6XG5fJrsRcXmSJpTFCayAP6XYZybcA"],"license":"GPL-3.0-or-later"},"src/libraries/Errors.sol":{"keccak256":"0x38c6031154fb79077346d4daad4895e7e9c25ced414b854526892f16548dd41d","urls":["bzz-raw://0376106f810b9ab10f4eb6a096c8503cb22a2d6a88fd02917195ba6c5a438218","dweb:/ipfs/QmaxVYd2GkSATLJW6Eg4MTUJpHwFD5dHQSEKqt2PqJ1k48"],"license":"GPL-3.0-or-later"},"src/libraries/Helpers.sol":{"keccak256":"0x6557c9f556743a4a0d83a02cc65b07d29cfc6da989731bafb226bea2f622ca66","urls":["bzz-raw://054fc3708bb6a03d2c0b6269394b252d6ffd5b0069c453121f1a26ea2e05306d","dweb:/ipfs/QmbyFuGmnBUuifda686WLYYeqioFM7bEJAZfon9H6nggeF"],"license":"GPL-3.0-or-later"},"src/types/DataTypes.sol":{"keccak256":"0xaaa5b90094cfafd31ec968c769c88ff91b27677d6dcea172b0d4672a537f0a10","urls":["bzz-raw://16b34fa9fa2fa7b791631c6a819b554692b8aeb8bb89c671fb0f6179c9e88e9d","dweb:/ipfs/Qmcg91DDt8AjjnGrgHnDQogsq4Us8YPCfCHVG4DJVDNSB6"],"license":"GPL-3.0-or-later"}},"version":1},"id":77}