{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_lzEndpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"SEND","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"SEND_AND_CALL","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"buildMsgAndOptions","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"oftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_amountToCreditLD","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"message","type":"bytes","internalType":"bytes"},{"name":"options","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"combineOptions","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_msgType","type":"uint16","internalType":"uint16"},{"name":"_extraOptions","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"credit","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amountToCreditLD","type":"uint256","internalType":"uint256"},{"name":"_srcEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"amountReceivedLD","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"debit","inputs":[{"name":"_amountToSendLD","type":"uint256","internalType":"uint256"},{"name":"_minAmountToCreditLD","type":"uint256","internalType":"uint256"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"amountDebitedLD","type":"uint256","internalType":"uint256"},{"name":"amountToCreditLD","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"debitView","inputs":[{"name":"_amountToSendLD","type":"uint256","internalType":"uint256"},{"name":"_minAmountToCreditLD","type":"uint256","internalType":"uint256"},{"name":"_dstEid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"amountDebitedLD","type":"uint256","internalType":"uint256"},{"name":"amountToCreditLD","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimalConversionRate","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"enforcedOptions","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"}],"outputs":[{"name":"enforcedOption","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveAndRevert","inputs":[{"name":"_packets","type":"tuple[]","internalType":"struct InboundPacket[]","components":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"receiver","type":"address","internalType":"address"},{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"executor","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"extraData","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceiveSimulate","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oApp","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"oftVersion","inputs":[],"outputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"},{"name":"version","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"quoteOFT","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"oftCmd","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"oftLimit","type":"tuple","internalType":"struct OFTLimit","components":[{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"maxAmountLD","type":"uint256","internalType":"uint256"}]},{"name":"oftFeeDetails","type":"tuple[]","internalType":"struct OFTFeeDetail[]","components":[{"name":"feeAmountLD","type":"int256","internalType":"int256"},{"name":"description","type":"string","internalType":"string"}]},{"name":"oftReceipt","type":"tuple","internalType":"struct OFTReceipt","components":[{"name":"amountSentLD","type":"uint256","internalType":"uint256"},{"name":"amountReceivedLD","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"quoteSend","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"oftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"msgFee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"removeDust","inputs":[{"name":"_amountLD","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountLD","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_sendParam","type":"tuple","internalType":"struct SendParam","components":[{"name":"dstEid","type":"uint32","internalType":"uint32"},{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"},{"name":"extraOptions","type":"bytes","internalType":"bytes"},{"name":"composeMsg","type":"bytes","internalType":"bytes"},{"name":"oftCmd","type":"bytes","internalType":"bytes"}]},{"name":"_fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]},{"name":"_refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"msgReceipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]},{"name":"oftReceipt","type":"tuple","internalType":"struct OFTReceipt","components":[{"name":"amountSentLD","type":"uint256","internalType":"uint256"},{"name":"amountReceivedLD","type":"uint256","internalType":"uint256"}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEnforcedOptions","inputs":[{"name":"_enforcedOptions","type":"tuple[]","internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMsgInspector","inputs":[{"name":"_msgInspector","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPreCrime","inputs":[{"name":"_preCrime","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sharedDecimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"toLD","inputs":[{"name":"_amountSD","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"amountLD","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"toSD","inputs":[{"name":"_amountLD","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountSD","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EnforcedOptionSet","inputs":[{"name":"_enforcedOptions","type":"tuple[]","indexed":false,"internalType":"struct EnforcedOptionParam[]","components":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"msgType","type":"uint16","internalType":"uint16"},{"name":"options","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"MsgInspectorSet","inputs":[{"name":"inspector","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OFTReceived","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"srcEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"toAddress","type":"address","indexed":true,"internalType":"address"},{"name":"amountReceivedLD","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OFTSent","inputs":[{"name":"guid","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"dstEid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fromAddress","type":"address","indexed":true,"internalType":"address"},{"name":"amountSentLD","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountReceivedLD","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"PreCrimeSet","inputs":[{"name":"preCrimeAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidLocalDecimals","inputs":[]},{"type":"error","name":"InvalidOptions","inputs":[{"name":"options","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NativeTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OFTAltCore__msg_value_not_zero","inputs":[{"name":"_msg_value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OnlySelf","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SimulationResult","inputs":[{"name":"result","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"SlippageExceeded","inputs":[{"name":"amountLD","type":"uint256","internalType":"uint256"},{"name":"minAmountLD","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60c060405234801562000010575f80fd5b50604051620041a6380380620041a68339810160408190526200003391620002c2565b83838383838360128484818181818d6001600160a01b0381166200007057604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007b8162000191565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b158015620000ef575f80fd5b505af115801562000102573d5f803e3d5ffd5b50505050505050506200011a620001e060201b60201c565b60ff168360ff16101562000141576040516301e9714b60e41b815260040160405180910390fd5b6200014e60068462000360565b6200015b90600a6200047b565b60a052506008915062000171905083826200051c565b5060096200018082826200051c565b5050505050505050505050620005e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000209575f80fd5b81516001600160401b0380821115620002265762000226620001e5565b604051601f8301601f19908116603f01168101908282118183101715620002515762000251620001e5565b81604052838152602092508660208588010111156200026e575f80fd5b5f91505b8382101562000291578582018301518183018401529082019062000272565b5f602085830101528094505050505092915050565b80516001600160a01b0381168114620002bd575f80fd5b919050565b5f805f8060808587031215620002d6575f80fd5b84516001600160401b0380821115620002ed575f80fd5b620002fb88838901620001f9565b9550602087015191508082111562000311575f80fd5b506200032087828801620001f9565b9350506200033160408601620002a6565b91506200034160608601620002a6565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156200037c576200037c6200034c565b92915050565b600181815b80851115620003c257815f1904821115620003a657620003a66200034c565b80851615620003b457918102915b93841c939080029062000387565b509250929050565b5f82620003da575060016200037c565b81620003e857505f6200037c565b81600181146200040157600281146200040c576200042c565b60019150506200037c565b60ff8411156200042057620004206200034c565b50506001821b6200037c565b5060208310610133831016604e8410600b841016171562000451575081810a6200037c565b6200045d838362000382565b805f19048211156200047357620004736200034c565b029392505050565b5f6200048b60ff841683620003ca565b9392505050565b600181811c90821680620004a757607f821691505b602082108103620004c657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200051757805f5260205f20601f840160051c81016020851015620004f35750805b601f840160051c820191505b8181101562000514575f8155600101620004ff565b50505b505050565b81516001600160401b03811115620005385762000538620001e5565b620005508162000549845462000492565b84620004cc565b602080601f83116001811462000586575f84156200056e5750858301515b5f19600386901b1c1916600185901b178555620005e0565b5f85815260208120601f198616915b82811015620005b65788860151825594840194600190910190840162000595565b5085821015620005d457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a051613b486200065e5f395f81816107f0015281816116e201528181611d200152611e9801525f818161069d01528181610be3015281816113640152818161181301528181611b1d0152818161247d015281816125560152818161264d0152818161267c01526127730152613b485ff3fe608060405260043610610319575f3560e01c8063715018a61161019c578063bb0b6a53116100e7578063d045a0dc11610092578063f01630231161006d578063f0163023146109ec578063f2fde38b14610a0b578063fc0c546a146105f2578063ff7bd03d14610a2a575f80fd5b8063d045a0dc14610969578063d42438851461097c578063dd62ed3e1461099b575f80fd5b8063c0779988116100c2578063c07799881461090a578063c7c7f5b314610929578063ca5eb5e11461094a575f80fd5b8063bb0b6a53146108ad578063bc70b354146108d8578063bd815db0146108f7575f80fd5b8063963efcaa11610147578063b3a5abeb11610122578063b3a5abeb14610843578063b731ea0a14610862578063b98bd0701461088e575f80fd5b8063963efcaa146107df5780639f68b96414610812578063a9059cbb14610824575f80fd5b8063857749b011610177578063857749b01461078f5780638da5cb5b146107a257806395d89b41146107cb575f80fd5b8063715018a61461071f5780637d25a05e1461073357806382413eac14610754575f80fd5b806323b872dd1161026757806352ae2879116102125780635a0dfe4d116101ed5780635a0dfe4d146106575780635e280f111461068c5780636fc1b31e146106bf57806370a08231146106de575f80fd5b806352ae2879146105f257806354f52414146106045780635535d46114610638575f80fd5b80633b6f743b116102425780633b6f743b1461058857806340c10f19146105b45780634dba701b146105d3575f80fd5b806323b872dd14610529578063313ce567146105485780633400288b14610569575f80fd5b806313137d65116102c757806317442b70116102a257806317442b70146104d657806318160ddd146104f75780631f5e133414610515575f80fd5b806313137d651461045a578063134d4f251461046f578063156a0d0f14610496575f80fd5b80630d35b415116102f75780630d35b415146103a35780630e78842c146103d1578063111ecdad14610409575f80fd5b8063056d62de1461031d57806306fdde0314610353578063095ea7b314610374575b5f80fd5b348015610328575f80fd5b5061033c61033736600461291f565b610a49565b60405161034a9291906129cc565b60405180910390f35b34801561035e575f80fd5b50610367610a62565b60405161034a91906129f0565b34801561037f575f80fd5b5061039361038e366004612a23565b610af2565b604051901515815260200161034a565b3480156103ae575f80fd5b506103c26103bd366004612a4d565b610b0b565b60405161034a93929190612a7f565b3480156103dc575f80fd5b506103f06103eb366004612b34565b610bd7565b60405167ffffffffffffffff909116815260200161034a565b348015610414575f80fd5b506004546104359073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161034a565b61046d610468366004612b99565b610be1565b005b34801561047a575f80fd5b50610483600281565b60405161ffff909116815260200161034a565b3480156104a1575f80fd5b50604080517f02e49c2c000000000000000000000000000000000000000000000000000000008152600160208201520161034a565b3480156104e1575f80fd5b506040805160018152600260208201520161034a565b348015610502575f80fd5b506007545b60405190815260200161034a565b348015610520575f80fd5b50610483600181565b348015610534575f80fd5b50610393610543366004612c32565b610ce0565b348015610553575f80fd5b5060125b60405160ff909116815260200161034a565b348015610574575f80fd5b5061046d610583366004612c88565b610d05565b348015610593575f80fd5b506105a76105a2366004612caf565b610d1b565b60405161034a9190612cfe565b3480156105bf575f80fd5b5061046d6105ce366004612a23565b610d7f565b3480156105de575f80fd5b506105076105ed366004612d15565b610d89565b3480156105fd575f80fd5b5030610435565b34801561060f575f80fd5b5061062361061e366004612d50565b610d9d565b6040805192835260208301919091520161034a565b348015610643575f80fd5b50610367610652366004612d8a565b610db8565b348015610662575f80fd5b50610393610671366004612c88565b63ffffffff919091165f908152600160205260409020541490565b348015610697575f80fd5b506104357f000000000000000000000000000000000000000000000000000000000000000081565b3480156106ca575f80fd5b5061046d6106d9366004612dbb565b610e5a565b3480156106e9575f80fd5b506105076106f8366004612dbb565b73ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205490565b34801561072a575f80fd5b5061046d610edc565b34801561073e575f80fd5b506103f061074d366004612c88565b5f92915050565b34801561075f575f80fd5b5061039361076e366004612dd6565b73ffffffffffffffffffffffffffffffffffffffff81163014949350505050565b34801561079a575f80fd5b506006610557565b3480156107ad575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610435565b3480156107d6575f80fd5b50610367610eef565b3480156107ea575f80fd5b506105077f000000000000000000000000000000000000000000000000000000000000000081565b34801561081d575f80fd5b505f610393565b34801561082f575f80fd5b5061039361083e366004612a23565b610efe565b34801561084e575f80fd5b5061050761085d366004612e4e565b610f0b565b34801561086d575f80fd5b506002546104359073ffffffffffffffffffffffffffffffffffffffff1681565b348015610899575f80fd5b5061046d6108a8366004612eaa565b610f15565b3480156108b8575f80fd5b506105076108c7366004612ee9565b60016020525f908152604090205481565b3480156108e3575f80fd5b506103676108f2366004612f02565b610f2f565b61046d610905366004612eaa565b6110e9565b348015610915575f80fd5b50610507610924366004612b34565b6112ad565b61093c610937366004612f5f565b6112b7565b60405161034a929190612fe6565b348015610955575f80fd5b5061046d610964366004612dbb565b611317565b61046d610977366004612b99565b6113be565b348015610987575f80fd5b5061046d610996366004612dbb565b611406565b3480156109a6575f80fd5b506105076109b5366004613038565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260066020908152604080832093909416825291909152205490565b3480156109f7575f80fd5b50610623610a06366004612d50565b611481565b348015610a16575f80fd5b5061046d610a25366004612dbb565b61148e565b348015610a35575f80fd5b50610393610a44366004613064565b6114f1565b606080610a568484611525565b915091505b9250929050565b606060088054610a719061307e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9d9061307e565b8015610ae85780601f10610abf57610100808354040283529160200191610ae8565b820191905f5260205f20905b815481529060010190602001808311610acb57829003601f168201915b5050505050905090565b5f33610aff818585611676565b60019150505b92915050565b604080518082019091525f80825260208201526060610b3b60405180604001604052805f81526020015f81525090565b6040805180820182525f80825267ffffffffffffffff602080840182905284518381529081019094529195509182610b95565b604080518082019091525f815260606020820152815260200190600190039081610b6e5790505b5093505f80610bb9604089013560608a0135610bb460208c018c612ee9565b611688565b60408051808201909152918252602082015296989597505050505050565b5f610b05826116dc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610c57576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610c7190610c6c908a612ee9565b611707565b14610cc857610c836020880188612ee9565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610c4e565b610cd78787878787878761175b565b50505050505050565b5f33610ced8582856118ec565b610cf88585856119b9565b60019150505b9392505050565b610d0d611a62565b610d178282611ab4565b5050565b604080518082019091525f80825260208201525f610d4960408501356060860135610bb46020880188612ee9565b9150505f80610d588684611525565b9092509050610d75610d6d6020880188612ee9565b838388611b08565b9695505050505050565b610d178282611bf3565b5f610d95848484611c4d565b949350505050565b5f80610dab33868686611c81565b915091505b935093915050565b600360209081525f928352604080842090915290825290208054610ddb9061307e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e079061307e565b8015610e525780601f10610e2957610100808354040283529160200191610e52565b820191905f5260205f20905b815481529060010190602001808311610e3557829003601f168201915b505050505081565b610e62611a62565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610ee4611a62565b610eed5f611ca6565b565b606060098054610a719061307e565b5f33610aff8185856119b9565b5f610b0582611d1a565b610f1d611a62565b610d17610f2a82846131d6565b611d4f565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610f629061307e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8e9061307e565b8015610fd95780601f10610fb057610100808354040283529160200191610fd9565b820191905f5260205f20905b815481529060010190602001808311610fbc57829003601f168201915b5050505050905080515f036110275783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610d959350505050565b5f839003611036579050610d95565b600283106110b35761107c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611e5092505050565b8061108a84600281886132df565b60405160200161109c93929190613306565b604051602081830303815290604052915050610d95565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610c4e929190613373565b5f5b818110156111ec573683838381811061110657611106613386565b905060200281019061111891906133b3565b905061114a61112a6020830183612ee9565b602083013563ffffffff919091165f908152600160205260409020541490565b61115457506111e4565b3063d045a0dc60c08301358360a08101356111736101008301836133ef565b611184610100890160e08a01612dbb565b6111926101208a018a6133ef565b6040518963ffffffff1660e01b81526004016111b49796959493929190613450565b5f604051808303818588803b1580156111cb575f80fd5b505af11580156111dd573d5f803e3d5ffd5b5050505050505b6001016110eb565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611235573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261127a91908101906134e3565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610c4e91906129f0565b5f610b0582611e95565b6112bf6128c5565b604080518082019091525f8082526020820152341561130c576040517f8036d4a3000000000000000000000000000000000000000000000000000000008152346004820152602401610c4e565b610dab858585611ecb565b61131f611a62565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b1580156113a5575f80fd5b505af11580156113b7573d5f803e3d5ffd5b5050505050565b3330146113f7576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cd787878787878787610cc8565b61140e611a62565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610ed1565b5f80610dab858585611688565b611496611a62565b73ffffffffffffffffffffffffffffffffffffffff81166114e5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b6114ee81611ca6565b50565b5f6020820180359060019083906115089086612ee9565b63ffffffff16815260208101919091526040015f20541492915050565b6060805f611580856020013561153a866116dc565b61154760a08901896133ef565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611fc392505050565b90935090505f81611592576001611595565b60025b90506115b56115a76020880188612ee9565b826108f260808a018a6133ef565b60045490935073ffffffffffffffffffffffffffffffffffffffff16801561166c576040517f043a78eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063043a78eb9061162b90889088906004016129cc565b602060405180830381865afa158015611646573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166a919061354c565b505b5050509250929050565b6116838383836001612055565b505050565b5f8061169385611e95565b915081905083811015610db0576040517f71c4efed0000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610c4e565b5f610b057f000000000000000000000000000000000000000000000000000000000000000083613594565b63ffffffff81165f9081526001602052604081205480610b05576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610c4e565b5f61176c611769878761219a565b90565b90505f611797826117856117808a8a6121b1565b611d1a565b61179260208d018d612ee9565b611c4d565b9050602886111561187d575f6117d36117b660608c0160408d01612e4e565b6117c360208d018d612ee9565b846117ce8c8c6121d3565b61221d565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061184e9086908d905f9087906004016135cc565b5f604051808303815f87803b158015611865575f80fd5b505af1158015611877573d5f803e3d5ffd5b50505050505b73ffffffffffffffffffffffffffffffffffffffff8216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c6118c360208d018d612ee9565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600660209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119b357818110156119a5576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610c4e565b6119b384848484035f612055565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611a08576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b73ffffffffffffffffffffffffffffffffffffffff8216611a57576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b61168383838361224f565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610eed576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610c4e565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611b7789611707565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611bac92919061360a565b6040805180830381865afa158015611bc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bea91906136db565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216611c42576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b610d175f838361224f565b5f73ffffffffffffffffffffffffffffffffffffffff8416611c6f5761dead93505b611c798484611bf3565b509092915050565b5f80611c8e858585611688565b9092509050611c9d86836123f6565b94509492505050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f610b057f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84166136f5565b5f5b8151811015611e2057611d80828281518110611d6f57611d6f613386565b602002602001015160400151611e50565b818181518110611d9257611d92613386565b60200260200101516040015160035f848481518110611db357611db3613386565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f848481518110611dea57611dea613386565b60200260200101516020015161ffff1661ffff1681526020019081526020015f209081611e179190613750565b50600101611d51565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610ed1919061386c565b600281015161ffff8116600314610d1757816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610c4e91906129f0565b5f7f0000000000000000000000000000000000000000000000000000000000000000611ec18184613594565b610b0591906136f5565b611ed36128c5565b604080518082019091525f80825260208201525f80611f0833604089013560608a0135611f0360208c018c612ee9565b611c81565b915091505f80611f188984611525565b9092509050611f44611f2d60208b018b612ee9565b8383611f3e368d90038d018d613913565b8b612450565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611f92908d018d612ee9565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b805160609015158061202457848460405160200161201092919091825260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016602082015260280190565b60405160208183030381529060405261204b565b8484338560405160200161203b9493929190613943565b6040516020818303038152906040525b9150935093915050565b73ffffffffffffffffffffffffffffffffffffffff84166120a4576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b73ffffffffffffffffffffffffffffffffffffffff83166120f3576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260066020908152604080832093871683529290522082905580156119b3578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161218c91815260200190565b60405180910390a350505050565b5f6121a860208284866132df565b610cfe9161399b565b5f6121c06028602084866132df565b6121c9916139d7565b60c01c9392505050565b60606121e282602881866132df565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b6060848484846040516020016122369493929190613a1f565b6040516020818303038152906040529050949350505050565b73ffffffffffffffffffffffffffffffffffffffff8316612286578060075f82825461227b9190613a9c565b909155506123369050565b73ffffffffffffffffffffffffffffffffffffffff83165f908152600560205260409020548181101561230b576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610c4e565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526005602052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661235f5760078054829003905561238a565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526005602052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123e991815260200190565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8216612445576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b610d17825f8361224f565b6124586128c5565b825161246390612552565b5060208301511561247b5761247b8360200151612679565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a4506040518060a001604052808963ffffffff1681526020016124d78a611707565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b815260040161251292919061360a565b6080604051808303815f875af115801561252e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d759190613aaf565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e19190613af7565b905073ffffffffffffffffffffffffffffffffffffffff8116612630576040517f8dce522700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61267273ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000086612794565b5090919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127079190613af7565b905073ffffffffffffffffffffffffffffffffffffffff8116612756576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1773ffffffffffffffffffffffffffffffffffffffff8216337f0000000000000000000000000000000000000000000000000000000000000000855b6040805173ffffffffffffffffffffffffffffffffffffffff8581166024830152841660448201526064808201849052825180830390910181526084909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815282516119b393889390925f9283929183919082885af180612845576040513d5f823e3d81fd5b50505f513d9150811561285c578060011415612876565b73ffffffffffffffffffffffffffffffffffffffff84163b155b156119b3576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c4e565b60405180606001604052805f80191681526020015f67ffffffffffffffff16815260200161290460405180604001604052805f81526020015f81525090565b905290565b5f60e08284031215612919575f80fd5b50919050565b5f8060408385031215612930575f80fd5b823567ffffffffffffffff811115612946575f80fd5b61295285828601612909565b95602094909401359450505050565b5f5b8381101561297b578181015183820152602001612963565b50505f910152565b5f815180845261299a816020860160208601612961565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b604081525f6129de6040830185612983565b8281036020840152611bea8185612983565b602081525f610cfe6020830184612983565b73ffffffffffffffffffffffffffffffffffffffff811681146114ee575f80fd5b5f8060408385031215612a34575f80fd5b8235612a3f81612a02565b946020939093013593505050565b5f60208284031215612a5d575f80fd5b813567ffffffffffffffff811115612a73575f80fd5b610d9584828501612909565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b83811015612b16578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40018552815180518852830151838801879052612b0387890182612983565b9750509382019390820190600101612ab9565b50508751606088015250505060208501516080850152509050610d95565b5f60208284031215612b44575f80fd5b5035919050565b5f60608284031215612919575f80fd5b5f8083601f840112612b6b575f80fd5b50813567ffffffffffffffff811115612b82575f80fd5b602083019150836020828501011115610a5b575f80fd5b5f805f805f805f60e0888a031215612baf575f80fd5b612bb98989612b4b565b965060608801359550608088013567ffffffffffffffff80821115612bdc575f80fd5b612be88b838c01612b5b565b909750955060a08a01359150612bfd82612a02565b90935060c08901359080821115612c12575f80fd5b50612c1f8a828b01612b5b565b989b979a50959850939692959293505050565b5f805f60608486031215612c44575f80fd5b8335612c4f81612a02565b92506020840135612c5f81612a02565b929592945050506040919091013590565b803563ffffffff81168114612c83575f80fd5b919050565b5f8060408385031215612c99575f80fd5b612a3f83612c70565b80151581146114ee575f80fd5b5f8060408385031215612cc0575f80fd5b823567ffffffffffffffff811115612cd6575f80fd5b612ce285828601612909565b9250506020830135612cf381612ca2565b809150509250929050565b815181526020808301519082015260408101610b05565b5f805f60608486031215612d27575f80fd5b8335612d3281612a02565b925060208401359150612d4760408501612c70565b90509250925092565b5f805f60608486031215612d62575f80fd5b8335925060208401359150612d4760408501612c70565b803561ffff81168114612c83575f80fd5b5f8060408385031215612d9b575f80fd5b612da483612c70565b9150612db260208401612d79565b90509250929050565b5f60208284031215612dcb575f80fd5b8135610cfe81612a02565b5f805f8060a08587031215612de9575f80fd5b612df38686612b4b565b9350606085013567ffffffffffffffff811115612e0e575f80fd5b612e1a87828801612b5b565b9094509250506080850135612e2e81612a02565b939692955090935050565b67ffffffffffffffff811681146114ee575f80fd5b5f60208284031215612e5e575f80fd5b8135610cfe81612e39565b5f8083601f840112612e79575f80fd5b50813567ffffffffffffffff811115612e90575f80fd5b6020830191508360208260051b8501011115610a5b575f80fd5b5f8060208385031215612ebb575f80fd5b823567ffffffffffffffff811115612ed1575f80fd5b612edd85828601612e69565b90969095509350505050565b5f60208284031215612ef9575f80fd5b610cfe82612c70565b5f805f8060608587031215612f15575f80fd5b612f1e85612c70565b9350612f2c60208601612d79565b9250604085013567ffffffffffffffff811115612f47575f80fd5b612f5387828801612b5b565b95989497509550505050565b5f805f8385036080811215612f72575f80fd5b843567ffffffffffffffff811115612f88575f80fd5b612f9487828801612909565b94505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215612fc6575f80fd5b506020840191506060840135612fdb81612a02565b809150509250925092565b5f60c0820190508351825267ffffffffffffffff60208501511660208301526040840151613021604084018280518252602090810151910152565b5082516080830152602083015160a0830152610cfe565b5f8060408385031215613049575f80fd5b823561305481612a02565b91506020830135612cf381612a02565b5f60608284031215613074575f80fd5b610cfe8383612b4b565b600181811c9082168061309257607f821691505b602082108103612919577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715613119576131196130c9565b60405290565b6040805190810167ffffffffffffffff81118282101715613119576131196130c9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613189576131896130c9565b604052919050565b5f67ffffffffffffffff8211156131aa576131aa6130c9565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f67ffffffffffffffff808411156131f0576131f06130c9565b8360051b6020613201818301613142565b868152918501918181019036841115613218575f80fd5b865b848110156132d357803586811115613230575f80fd5b88016060368290031215613242575f80fd5b61324a6130f6565b61325382612c70565b8152613260868301612d79565b8682015260408083013589811115613276575f80fd5b929092019136601f840112613289575f80fd5b823561329c61329782613191565b613142565b81815236898387010111156132af575f80fd5b818986018a8301375f9181018901919091529082015284525091830191830161321a565b50979650505050505050565b5f80858511156132ed575f80fd5b838611156132f9575f80fd5b5050820193919092039150565b5f8451613317818460208901612961565b8201838582375f930192835250909392505050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f610d9560208301848661332c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec18336030181126133e5575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613422575f80fd5b83018035915067ffffffffffffffff82111561343c575f80fd5b602001915036819003821315610a5b575f80fd5b63ffffffff61345e89612c70565b168152602088013560208201525f604089013561347a81612e39565b67ffffffffffffffff811660408401525087606083015260e060808301526134a660e08301878961332c565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c08401526134d581858761332c565b9a9950505050505050505050565b5f602082840312156134f3575f80fd5b815167ffffffffffffffff811115613509575f80fd5b8201601f81018413613519575f80fd5b805161352761329782613191565b81815285602083850101111561353b575f80fd5b611bea826020830160208601612961565b5f6020828403121561355c575f80fd5b8151610cfe81612ca2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f826135c7577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015261ffff83166040820152608060608201525f610d756080830184612983565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261363f60e0840182612983565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a085015261367a8282612983565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156136bd575f80fd5b6136c561311f565b9050815181526020820151602082015292915050565b5f604082840312156136eb575f80fd5b610cfe83836136ad565b8082028115828204841417610b0557610b05613567565b601f82111561168357805f5260205f20601f840160051c810160208510156137315750805b601f840160051c820191505b818110156113b7575f815560010161373d565b815167ffffffffffffffff81111561376a5761376a6130c9565b61377e81613778845461307e565b8461370c565b602080601f8311600181146137d0575f841561379a5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613864565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561381c578886015182559484019460019091019084016137fd565b508582101561385857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015613905578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526138f181860183612983565b968901969450505090860190600101613893565b509098975050505050505050565b5f60408284031215613923575f80fd5b61392b61311f565b82358152602083013560208201528091505092915050565b8481527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b1660208201528260288201525f825161398b816048850160208701612961565b9190910160480195945050505050565b80356020831015610b05577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015613a175780818660080360031b1b83161692505b505092915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c8201525f8251613a8c81602c850160208701612961565b91909101602c0195945050505050565b80820180821115610b0557610b05613567565b5f60808284031215613abf575f80fd5b613ac76130f6565b825181526020830151613ad981612e39565b6020820152613aeb84604085016136ad565b60408201529392505050565b5f60208284031215613b07575f80fd5b8151610cfe81612a0256fea26469706673582212200d4d1a1098acfb6c7b5bec101bc2d2d6bcb297a38cdaac0d0f71fddf0ef500a164736f6c63430008160033","sourceMap":"249:1752:140:-:0;;;285:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;426:5;433:7;442:11;455:9;426:5;433:7;2780:2:121;835:11:1;848:9;835:11;848:9;835:11;848:9;474::140;-1:-1:-1;;;;;1273:26:116;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:116;;1350:1;1322:31;;;2061:51:141;2034:18;;1322:31:116;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:55;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:55;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:55;;-1:-1:-1;;;;;2079:32:141;;;1163:31:55;;;2061:51:141;1163:20:55;;;;;;2034:18:141;;1163:31:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;1259:83:53;;2931:16:2::1;:14;;;:16;;:::i;:::-;2914:33;;:14;:33;;;2910:68;;;2956:22;;-1:-1:-1::0;;;2956:22:2::1;;;;;;;;;;;2910:68;3019:33;4401:1:::0;3019:14;:33:::1;:::i;:::-;3012:41;::::0;:2:::1;:41;:::i;:::-;2988:65;::::0;-1:-1:-1;1667:5:121;;-1:-1:-1;1667:13:121;;-1:-1:-1;1675:5:121;1667;:13;:::i;:::-;-1:-1:-1;1690:7:121;:17;1700:7;1690;:17;:::i;:::-;;1601:113;;656:205:1;;;;285:202:140;;;;249:1752;;2912:187:116;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:116;;;-1:-1:-1;;;;;;3020:17:116;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;4322:87:2:-;4401:1;;4322:87::o;14:127:141:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:141;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:141;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:177::-;1074:13;;-1:-1:-1;;;;;1116:31:141;;1106:42;;1096:70;;1162:1;1159;1152:12;1096:70;995:177;;;:::o;1177:733::-;1294:6;1302;1310;1318;1371:3;1359:9;1350:7;1346:23;1342:33;1339:53;;;1388:1;1385;1378:12;1339:53;1415:16;;-1:-1:-1;;;;;1480:14:141;;;1477:34;;;1507:1;1504;1497:12;1477:34;1530:61;1583:7;1574:6;1563:9;1559:22;1530:61;:::i;:::-;1520:71;;1637:2;1626:9;1622:18;1616:25;1600:41;;1666:2;1656:8;1653:16;1650:36;;;1682:1;1679;1672:12;1650:36;;1705:63;1760:7;1749:8;1738:9;1734:24;1705:63;:::i;:::-;1695:73;;;1787:49;1832:2;1821:9;1817:18;1787:49;:::i;:::-;1777:59;;1855:49;1900:2;1889:9;1885:18;1855:49;:::i;:::-;1845:59;;1177:733;;;;;;;:::o;2123:127::-;2184:10;2179:3;2175:20;2172:1;2165:31;2215:4;2212:1;2205:15;2239:4;2236:1;2229:15;2255:151;2345:4;2338:12;;;2324;;;2320:31;;2363:14;;2360:40;;;2380:18;;:::i;:::-;2255:151;;;;:::o;2411:416::-;2500:1;2537:5;2500:1;2551:270;2572:7;2562:8;2559:21;2551:270;;;2631:4;2627:1;2623:6;2619:17;2613:4;2610:27;2607:53;;;2640:18;;:::i;:::-;2690:7;2680:8;2676:22;2673:55;;;2710:16;;;;2673:55;2789:22;;;;2749:15;;;;2551:270;;;2555:3;2411:416;;;;;:::o;2832:806::-;2881:5;2911:8;2901:80;;-1:-1:-1;2952:1:141;2966:5;;2901:80;3000:4;2990:76;;-1:-1:-1;3037:1:141;3051:5;;2990:76;3082:4;3100:1;3095:59;;;;3168:1;3163:130;;;;3075:218;;3095:59;3125:1;3116:10;;3139:5;;;3163:130;3200:3;3190:8;3187:17;3184:43;;;3207:18;;:::i;:::-;-1:-1:-1;;3263:1:141;3249:16;;3278:5;;3075:218;;3377:2;3367:8;3364:16;3358:3;3352:4;3349:13;3345:36;3339:2;3329:8;3326:16;3321:2;3315:4;3312:12;3308:35;3305:77;3302:159;;;-1:-1:-1;3414:19:141;;;3446:5;;3302:159;3493:34;3518:8;3512:4;3493:34;:::i;:::-;3563:6;3559:1;3555:6;3551:19;3542:7;3539:32;3536:58;;;3574:18;;:::i;:::-;3612:20;;2832:806;-1:-1:-1;;;2832:806:141:o;3643:140::-;3701:5;3730:47;3771:4;3761:8;3757:19;3751:4;3730:47;:::i;:::-;3721:56;3643:140;-1:-1:-1;;;3643:140:141:o;3788:380::-;3867:1;3863:12;;;;3910;;;3931:61;;3985:4;3977:6;3973:17;3963:27;;3931:61;4038:2;4030:6;4027:14;4007:18;4004:38;4001:161;;4084:10;4079:3;4075:20;4072:1;4065:31;4119:4;4116:1;4109:15;4147:4;4144:1;4137:15;4001:161;;3788:380;;;:::o;4299:518::-;4401:2;4396:3;4393:11;4390:421;;;4437:5;4434:1;4427:16;4481:4;4478:1;4468:18;4551:2;4539:10;4535:19;4532:1;4528:27;4522:4;4518:38;4587:4;4575:10;4572:20;4569:47;;;-1:-1:-1;4610:4:141;4569:47;4665:2;4660:3;4656:12;4653:1;4649:20;4643:4;4639:31;4629:41;;4720:81;4738:2;4731:5;4728:13;4720:81;;;4797:1;4783:16;;4764:1;4753:13;4720:81;;;4724:3;;4390:421;4299:518;;;:::o;4993:1345::-;5113:10;;-1:-1:-1;;;;;5135:30:141;;5132:56;;;5168:18;;:::i;:::-;5197:97;5287:6;5247:38;5279:4;5273:11;5247:38;:::i;:::-;5241:4;5197:97;:::i;:::-;5349:4;;5406:2;5395:14;;5423:1;5418:663;;;;6125:1;6142:6;6139:89;;;-1:-1:-1;6194:19:141;;;6188:26;6139:89;-1:-1:-1;;4950:1:141;4946:11;;;4942:24;4938:29;4928:40;4974:1;4970:11;;;4925:57;6241:81;;5388:944;;5418:663;4246:1;4239:14;;;4283:4;4270:18;;-1:-1:-1;;5454:20:141;;;5572:236;5586:7;5583:1;5580:14;5572:236;;;5675:19;;;5669:26;5654:42;;5767:27;;;;5735:1;5723:14;;;;5602:19;;5572:236;;;5576:3;5836:6;5827:7;5824:19;5821:201;;;5897:19;;;5891:26;-1:-1:-1;;5980:1:141;5976:14;;;5992:3;5972:24;5968:37;5964:42;5949:58;5934:74;;5821:201;;;6068:1;6059:6;6056:1;6052:14;6048:22;6042:4;6035:36;5388:944;;;;;4993:1345;;:::o;:::-;249:1752:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610319575f3560e01c8063715018a61161019c578063bb0b6a53116100e7578063d045a0dc11610092578063f01630231161006d578063f0163023146109ec578063f2fde38b14610a0b578063fc0c546a146105f2578063ff7bd03d14610a2a575f80fd5b8063d045a0dc14610969578063d42438851461097c578063dd62ed3e1461099b575f80fd5b8063c0779988116100c2578063c07799881461090a578063c7c7f5b314610929578063ca5eb5e11461094a575f80fd5b8063bb0b6a53146108ad578063bc70b354146108d8578063bd815db0146108f7575f80fd5b8063963efcaa11610147578063b3a5abeb11610122578063b3a5abeb14610843578063b731ea0a14610862578063b98bd0701461088e575f80fd5b8063963efcaa146107df5780639f68b96414610812578063a9059cbb14610824575f80fd5b8063857749b011610177578063857749b01461078f5780638da5cb5b146107a257806395d89b41146107cb575f80fd5b8063715018a61461071f5780637d25a05e1461073357806382413eac14610754575f80fd5b806323b872dd1161026757806352ae2879116102125780635a0dfe4d116101ed5780635a0dfe4d146106575780635e280f111461068c5780636fc1b31e146106bf57806370a08231146106de575f80fd5b806352ae2879146105f257806354f52414146106045780635535d46114610638575f80fd5b80633b6f743b116102425780633b6f743b1461058857806340c10f19146105b45780634dba701b146105d3575f80fd5b806323b872dd14610529578063313ce567146105485780633400288b14610569575f80fd5b806313137d65116102c757806317442b70116102a257806317442b70146104d657806318160ddd146104f75780631f5e133414610515575f80fd5b806313137d651461045a578063134d4f251461046f578063156a0d0f14610496575f80fd5b80630d35b415116102f75780630d35b415146103a35780630e78842c146103d1578063111ecdad14610409575f80fd5b8063056d62de1461031d57806306fdde0314610353578063095ea7b314610374575b5f80fd5b348015610328575f80fd5b5061033c61033736600461291f565b610a49565b60405161034a9291906129cc565b60405180910390f35b34801561035e575f80fd5b50610367610a62565b60405161034a91906129f0565b34801561037f575f80fd5b5061039361038e366004612a23565b610af2565b604051901515815260200161034a565b3480156103ae575f80fd5b506103c26103bd366004612a4d565b610b0b565b60405161034a93929190612a7f565b3480156103dc575f80fd5b506103f06103eb366004612b34565b610bd7565b60405167ffffffffffffffff909116815260200161034a565b348015610414575f80fd5b506004546104359073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161034a565b61046d610468366004612b99565b610be1565b005b34801561047a575f80fd5b50610483600281565b60405161ffff909116815260200161034a565b3480156104a1575f80fd5b50604080517f02e49c2c000000000000000000000000000000000000000000000000000000008152600160208201520161034a565b3480156104e1575f80fd5b506040805160018152600260208201520161034a565b348015610502575f80fd5b506007545b60405190815260200161034a565b348015610520575f80fd5b50610483600181565b348015610534575f80fd5b50610393610543366004612c32565b610ce0565b348015610553575f80fd5b5060125b60405160ff909116815260200161034a565b348015610574575f80fd5b5061046d610583366004612c88565b610d05565b348015610593575f80fd5b506105a76105a2366004612caf565b610d1b565b60405161034a9190612cfe565b3480156105bf575f80fd5b5061046d6105ce366004612a23565b610d7f565b3480156105de575f80fd5b506105076105ed366004612d15565b610d89565b3480156105fd575f80fd5b5030610435565b34801561060f575f80fd5b5061062361061e366004612d50565b610d9d565b6040805192835260208301919091520161034a565b348015610643575f80fd5b50610367610652366004612d8a565b610db8565b348015610662575f80fd5b50610393610671366004612c88565b63ffffffff919091165f908152600160205260409020541490565b348015610697575f80fd5b506104357f000000000000000000000000000000000000000000000000000000000000000081565b3480156106ca575f80fd5b5061046d6106d9366004612dbb565b610e5a565b3480156106e9575f80fd5b506105076106f8366004612dbb565b73ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205490565b34801561072a575f80fd5b5061046d610edc565b34801561073e575f80fd5b506103f061074d366004612c88565b5f92915050565b34801561075f575f80fd5b5061039361076e366004612dd6565b73ffffffffffffffffffffffffffffffffffffffff81163014949350505050565b34801561079a575f80fd5b506006610557565b3480156107ad575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610435565b3480156107d6575f80fd5b50610367610eef565b3480156107ea575f80fd5b506105077f000000000000000000000000000000000000000000000000000000000000000081565b34801561081d575f80fd5b505f610393565b34801561082f575f80fd5b5061039361083e366004612a23565b610efe565b34801561084e575f80fd5b5061050761085d366004612e4e565b610f0b565b34801561086d575f80fd5b506002546104359073ffffffffffffffffffffffffffffffffffffffff1681565b348015610899575f80fd5b5061046d6108a8366004612eaa565b610f15565b3480156108b8575f80fd5b506105076108c7366004612ee9565b60016020525f908152604090205481565b3480156108e3575f80fd5b506103676108f2366004612f02565b610f2f565b61046d610905366004612eaa565b6110e9565b348015610915575f80fd5b50610507610924366004612b34565b6112ad565b61093c610937366004612f5f565b6112b7565b60405161034a929190612fe6565b348015610955575f80fd5b5061046d610964366004612dbb565b611317565b61046d610977366004612b99565b6113be565b348015610987575f80fd5b5061046d610996366004612dbb565b611406565b3480156109a6575f80fd5b506105076109b5366004613038565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260066020908152604080832093909416825291909152205490565b3480156109f7575f80fd5b50610623610a06366004612d50565b611481565b348015610a16575f80fd5b5061046d610a25366004612dbb565b61148e565b348015610a35575f80fd5b50610393610a44366004613064565b6114f1565b606080610a568484611525565b915091505b9250929050565b606060088054610a719061307e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9d9061307e565b8015610ae85780601f10610abf57610100808354040283529160200191610ae8565b820191905f5260205f20905b815481529060010190602001808311610acb57829003601f168201915b5050505050905090565b5f33610aff818585611676565b60019150505b92915050565b604080518082019091525f80825260208201526060610b3b60405180604001604052805f81526020015f81525090565b6040805180820182525f80825267ffffffffffffffff602080840182905284518381529081019094529195509182610b95565b604080518082019091525f815260606020820152815260200190600190039081610b6e5790505b5093505f80610bb9604089013560608a0135610bb460208c018c612ee9565b611688565b60408051808201909152918252602082015296989597505050505050565b5f610b05826116dc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610c57576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610c7190610c6c908a612ee9565b611707565b14610cc857610c836020880188612ee9565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610c4e565b610cd78787878787878761175b565b50505050505050565b5f33610ced8582856118ec565b610cf88585856119b9565b60019150505b9392505050565b610d0d611a62565b610d178282611ab4565b5050565b604080518082019091525f80825260208201525f610d4960408501356060860135610bb46020880188612ee9565b9150505f80610d588684611525565b9092509050610d75610d6d6020880188612ee9565b838388611b08565b9695505050505050565b610d178282611bf3565b5f610d95848484611c4d565b949350505050565b5f80610dab33868686611c81565b915091505b935093915050565b600360209081525f928352604080842090915290825290208054610ddb9061307e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e079061307e565b8015610e525780601f10610e2957610100808354040283529160200191610e52565b820191905f5260205f20905b815481529060010190602001808311610e3557829003601f168201915b505050505081565b610e62611a62565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610ee4611a62565b610eed5f611ca6565b565b606060098054610a719061307e565b5f33610aff8185856119b9565b5f610b0582611d1a565b610f1d611a62565b610d17610f2a82846131d6565b611d4f565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610f629061307e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8e9061307e565b8015610fd95780601f10610fb057610100808354040283529160200191610fd9565b820191905f5260205f20905b815481529060010190602001808311610fbc57829003601f168201915b5050505050905080515f036110275783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610d959350505050565b5f839003611036579050610d95565b600283106110b35761107c84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611e5092505050565b8061108a84600281886132df565b60405160200161109c93929190613306565b604051602081830303815290604052915050610d95565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610c4e929190613373565b5f5b818110156111ec573683838381811061110657611106613386565b905060200281019061111891906133b3565b905061114a61112a6020830183612ee9565b602083013563ffffffff919091165f908152600160205260409020541490565b61115457506111e4565b3063d045a0dc60c08301358360a08101356111736101008301836133ef565b611184610100890160e08a01612dbb565b6111926101208a018a6133ef565b6040518963ffffffff1660e01b81526004016111b49796959493929190613450565b5f604051808303818588803b1580156111cb575f80fd5b505af11580156111dd573d5f803e3d5ffd5b5050505050505b6001016110eb565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611235573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261127a91908101906134e3565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610c4e91906129f0565b5f610b0582611e95565b6112bf6128c5565b604080518082019091525f8082526020820152341561130c576040517f8036d4a3000000000000000000000000000000000000000000000000000000008152346004820152602401610c4e565b610dab858585611ecb565b61131f611a62565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b1580156113a5575f80fd5b505af11580156113b7573d5f803e3d5ffd5b5050505050565b3330146113f7576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cd787878787878787610cc8565b61140e611a62565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610ed1565b5f80610dab858585611688565b611496611a62565b73ffffffffffffffffffffffffffffffffffffffff81166114e5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b6114ee81611ca6565b50565b5f6020820180359060019083906115089086612ee9565b63ffffffff16815260208101919091526040015f20541492915050565b6060805f611580856020013561153a866116dc565b61154760a08901896133ef565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611fc392505050565b90935090505f81611592576001611595565b60025b90506115b56115a76020880188612ee9565b826108f260808a018a6133ef565b60045490935073ffffffffffffffffffffffffffffffffffffffff16801561166c576040517f043a78eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063043a78eb9061162b90889088906004016129cc565b602060405180830381865afa158015611646573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166a919061354c565b505b5050509250929050565b6116838383836001612055565b505050565b5f8061169385611e95565b915081905083811015610db0576040517f71c4efed0000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610c4e565b5f610b057f000000000000000000000000000000000000000000000000000000000000000083613594565b63ffffffff81165f9081526001602052604081205480610b05576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610c4e565b5f61176c611769878761219a565b90565b90505f611797826117856117808a8a6121b1565b611d1a565b61179260208d018d612ee9565b611c4d565b9050602886111561187d575f6117d36117b660608c0160408d01612e4e565b6117c360208d018d612ee9565b846117ce8c8c6121d3565b61221d565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061184e9086908d905f9087906004016135cc565b5f604051808303815f87803b158015611865575f80fd5b505af1158015611877573d5f803e3d5ffd5b50505050505b73ffffffffffffffffffffffffffffffffffffffff8216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c6118c360208d018d612ee9565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600660209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119b357818110156119a5576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610c4e565b6119b384848484035f612055565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611a08576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b73ffffffffffffffffffffffffffffffffffffffff8216611a57576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b61168383838361224f565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610eed576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610c4e565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611b7789611707565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611bac92919061360a565b6040805180830381865afa158015611bc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bea91906136db565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff8216611c42576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b610d175f838361224f565b5f73ffffffffffffffffffffffffffffffffffffffff8416611c6f5761dead93505b611c798484611bf3565b509092915050565b5f80611c8e858585611688565b9092509050611c9d86836123f6565b94509492505050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f610b057f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84166136f5565b5f5b8151811015611e2057611d80828281518110611d6f57611d6f613386565b602002602001015160400151611e50565b818181518110611d9257611d92613386565b60200260200101516040015160035f848481518110611db357611db3613386565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f848481518110611dea57611dea613386565b60200260200101516020015161ffff1661ffff1681526020019081526020015f209081611e179190613750565b50600101611d51565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610ed1919061386c565b600281015161ffff8116600314610d1757816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610c4e91906129f0565b5f7f0000000000000000000000000000000000000000000000000000000000000000611ec18184613594565b610b0591906136f5565b611ed36128c5565b604080518082019091525f80825260208201525f80611f0833604089013560608a0135611f0360208c018c612ee9565b611c81565b915091505f80611f188984611525565b9092509050611f44611f2d60208b018b612ee9565b8383611f3e368d90038d018d613913565b8b612450565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611f92908d018d612ee9565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b805160609015158061202457848460405160200161201092919091825260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016602082015260280190565b60405160208183030381529060405261204b565b8484338560405160200161203b9493929190613943565b6040516020818303038152906040525b9150935093915050565b73ffffffffffffffffffffffffffffffffffffffff84166120a4576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b73ffffffffffffffffffffffffffffffffffffffff83166120f3576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260066020908152604080832093871683529290522082905580156119b3578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161218c91815260200190565b60405180910390a350505050565b5f6121a860208284866132df565b610cfe9161399b565b5f6121c06028602084866132df565b6121c9916139d7565b60c01c9392505050565b60606121e282602881866132df565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b6060848484846040516020016122369493929190613a1f565b6040516020818303038152906040529050949350505050565b73ffffffffffffffffffffffffffffffffffffffff8316612286578060075f82825461227b9190613a9c565b909155506123369050565b73ffffffffffffffffffffffffffffffffffffffff83165f908152600560205260409020548181101561230b576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610c4e565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526005602052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661235f5760078054829003905561238a565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526005602052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123e991815260200190565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8216612445576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610c4e565b610d17825f8361224f565b6124586128c5565b825161246390612552565b5060208301511561247b5761247b8360200151612679565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a4506040518060a001604052808963ffffffff1681526020016124d78a611707565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b815260040161251292919061360a565b6080604051808303815f875af115801561252e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d759190613aaf565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e19190613af7565b905073ffffffffffffffffffffffffffffffffffffffff8116612630576040517f8dce522700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61267273ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000086612794565b5090919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127079190613af7565b905073ffffffffffffffffffffffffffffffffffffffff8116612756576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d1773ffffffffffffffffffffffffffffffffffffffff8216337f0000000000000000000000000000000000000000000000000000000000000000855b6040805173ffffffffffffffffffffffffffffffffffffffff8581166024830152841660448201526064808201849052825180830390910181526084909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815282516119b393889390925f9283929183919082885af180612845576040513d5f823e3d81fd5b50505f513d9150811561285c578060011415612876565b73ffffffffffffffffffffffffffffffffffffffff84163b155b156119b3576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c4e565b60405180606001604052805f80191681526020015f67ffffffffffffffff16815260200161290460405180604001604052805f81526020015f81525090565b905290565b5f60e08284031215612919575f80fd5b50919050565b5f8060408385031215612930575f80fd5b823567ffffffffffffffff811115612946575f80fd5b61295285828601612909565b95602094909401359450505050565b5f5b8381101561297b578181015183820152602001612963565b50505f910152565b5f815180845261299a816020860160208601612961565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b604081525f6129de6040830185612983565b8281036020840152611bea8185612983565b602081525f610cfe6020830184612983565b73ffffffffffffffffffffffffffffffffffffffff811681146114ee575f80fd5b5f8060408385031215612a34575f80fd5b8235612a3f81612a02565b946020939093013593505050565b5f60208284031215612a5d575f80fd5b813567ffffffffffffffff811115612a73575f80fd5b610d9584828501612909565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b83811015612b16578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40018552815180518852830151838801879052612b0387890182612983565b9750509382019390820190600101612ab9565b50508751606088015250505060208501516080850152509050610d95565b5f60208284031215612b44575f80fd5b5035919050565b5f60608284031215612919575f80fd5b5f8083601f840112612b6b575f80fd5b50813567ffffffffffffffff811115612b82575f80fd5b602083019150836020828501011115610a5b575f80fd5b5f805f805f805f60e0888a031215612baf575f80fd5b612bb98989612b4b565b965060608801359550608088013567ffffffffffffffff80821115612bdc575f80fd5b612be88b838c01612b5b565b909750955060a08a01359150612bfd82612a02565b90935060c08901359080821115612c12575f80fd5b50612c1f8a828b01612b5b565b989b979a50959850939692959293505050565b5f805f60608486031215612c44575f80fd5b8335612c4f81612a02565b92506020840135612c5f81612a02565b929592945050506040919091013590565b803563ffffffff81168114612c83575f80fd5b919050565b5f8060408385031215612c99575f80fd5b612a3f83612c70565b80151581146114ee575f80fd5b5f8060408385031215612cc0575f80fd5b823567ffffffffffffffff811115612cd6575f80fd5b612ce285828601612909565b9250506020830135612cf381612ca2565b809150509250929050565b815181526020808301519082015260408101610b05565b5f805f60608486031215612d27575f80fd5b8335612d3281612a02565b925060208401359150612d4760408501612c70565b90509250925092565b5f805f60608486031215612d62575f80fd5b8335925060208401359150612d4760408501612c70565b803561ffff81168114612c83575f80fd5b5f8060408385031215612d9b575f80fd5b612da483612c70565b9150612db260208401612d79565b90509250929050565b5f60208284031215612dcb575f80fd5b8135610cfe81612a02565b5f805f8060a08587031215612de9575f80fd5b612df38686612b4b565b9350606085013567ffffffffffffffff811115612e0e575f80fd5b612e1a87828801612b5b565b9094509250506080850135612e2e81612a02565b939692955090935050565b67ffffffffffffffff811681146114ee575f80fd5b5f60208284031215612e5e575f80fd5b8135610cfe81612e39565b5f8083601f840112612e79575f80fd5b50813567ffffffffffffffff811115612e90575f80fd5b6020830191508360208260051b8501011115610a5b575f80fd5b5f8060208385031215612ebb575f80fd5b823567ffffffffffffffff811115612ed1575f80fd5b612edd85828601612e69565b90969095509350505050565b5f60208284031215612ef9575f80fd5b610cfe82612c70565b5f805f8060608587031215612f15575f80fd5b612f1e85612c70565b9350612f2c60208601612d79565b9250604085013567ffffffffffffffff811115612f47575f80fd5b612f5387828801612b5b565b95989497509550505050565b5f805f8385036080811215612f72575f80fd5b843567ffffffffffffffff811115612f88575f80fd5b612f9487828801612909565b94505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215612fc6575f80fd5b506020840191506060840135612fdb81612a02565b809150509250925092565b5f60c0820190508351825267ffffffffffffffff60208501511660208301526040840151613021604084018280518252602090810151910152565b5082516080830152602083015160a0830152610cfe565b5f8060408385031215613049575f80fd5b823561305481612a02565b91506020830135612cf381612a02565b5f60608284031215613074575f80fd5b610cfe8383612b4b565b600181811c9082168061309257607f821691505b602082108103612919577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715613119576131196130c9565b60405290565b6040805190810167ffffffffffffffff81118282101715613119576131196130c9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613189576131896130c9565b604052919050565b5f67ffffffffffffffff8211156131aa576131aa6130c9565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f67ffffffffffffffff808411156131f0576131f06130c9565b8360051b6020613201818301613142565b868152918501918181019036841115613218575f80fd5b865b848110156132d357803586811115613230575f80fd5b88016060368290031215613242575f80fd5b61324a6130f6565b61325382612c70565b8152613260868301612d79565b8682015260408083013589811115613276575f80fd5b929092019136601f840112613289575f80fd5b823561329c61329782613191565b613142565b81815236898387010111156132af575f80fd5b818986018a8301375f9181018901919091529082015284525091830191830161321a565b50979650505050505050565b5f80858511156132ed575f80fd5b838611156132f9575f80fd5b5050820193919092039150565b5f8451613317818460208901612961565b8201838582375f930192835250909392505050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f610d9560208301848661332c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec18336030181126133e5575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613422575f80fd5b83018035915067ffffffffffffffff82111561343c575f80fd5b602001915036819003821315610a5b575f80fd5b63ffffffff61345e89612c70565b168152602088013560208201525f604089013561347a81612e39565b67ffffffffffffffff811660408401525087606083015260e060808301526134a660e08301878961332c565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c08401526134d581858761332c565b9a9950505050505050505050565b5f602082840312156134f3575f80fd5b815167ffffffffffffffff811115613509575f80fd5b8201601f81018413613519575f80fd5b805161352761329782613191565b81815285602083850101111561353b575f80fd5b611bea826020830160208601612961565b5f6020828403121561355c575f80fd5b8151610cfe81612ca2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f826135c7577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015261ffff83166040820152608060608201525f610d756080830184612983565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261363f60e0840182612983565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a085015261367a8282612983565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156136bd575f80fd5b6136c561311f565b9050815181526020820151602082015292915050565b5f604082840312156136eb575f80fd5b610cfe83836136ad565b8082028115828204841417610b0557610b05613567565b601f82111561168357805f5260205f20601f840160051c810160208510156137315750805b601f840160051c820191505b818110156113b7575f815560010161373d565b815167ffffffffffffffff81111561376a5761376a6130c9565b61377e81613778845461307e565b8461370c565b602080601f8311600181146137d0575f841561379a5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613864565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561381c578886015182559484019460019091019084016137fd565b508582101561385857878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015613905578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526138f181860183612983565b968901969450505090860190600101613893565b509098975050505050505050565b5f60408284031215613923575f80fd5b61392b61311f565b82358152602083013560208201528091505092915050565b8481527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b1660208201528260288201525f825161398b816048850160208701612961565b9190910160480195945050505050565b80356020831015610b05577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015613a175780818660080360031b1b83161692505b505092915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c8201525f8251613a8c81602c850160208701612961565b91909101602c0195945050505050565b80820180821115610b0557610b05613567565b5f60808284031215613abf575f80fd5b613ac76130f6565b825181526020830151613ad981612e39565b6020820152613aeb84604085016136ad565b60408201529392505050565b5f60208284031215613b07575f80fd5b8151610cfe81612a0256fea26469706673582212200d4d1a1098acfb6c7b5bec101bc2d2d6bcb297a38cdaac0d0f71fddf0ef500a164736f6c63430008160033","sourceMap":"249:1752:140:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1752:247;;;;;;;;;;-1:-1:-1;1752:247:140;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1779:89:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3998:186::-;;;;;;;;;;-1:-1:-1;3998:186:121;;;;;:::i;:::-;;:::i;:::-;;;2450:14:141;;2443:22;2425:41;;2413:2;2398:18;3998:186:121;2285:187:141;5226:1258:2;;;;;;;;;;-1:-1:-1;5226:1258:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;1451:111:140:-;;;;;;;;;;-1:-1:-1;1451:111:140;;;;;:::i;:::-;;:::i;:::-;;;4760:18:141;4748:31;;;4730:50;;4718:2;4703:18;1451:111:140;4586:200:141;2364:27:2;;;;;;;;;;-1:-1:-1;2364:27:2;;;;;;;;;;;4967:42:141;4955:55;;;4937:74;;4925:2;4910:18;2364:27:2;4791:226:141;4368:708:56;;;;;;:::i;:::-;;:::i;:::-;;2238:40:2;;;;;;;;;;;;2277:1;2238:40;;;;;6760:6:141;6748:19;;;6730:38;;6718:2;6703:18;2238:40:2;6586:188:141;3575:140:2;;;;;;;;;;-1:-1:-1;3575:140:2;;;3682:22;6949:98:141;;3706:1:2;7078:2:141;7063:18;;7056:59;6922:18;3575:140:2;6779:342:141;1587:235:53;;;;;;;;;;-1:-1:-1;1587:235:53;;;843:1:57;7333:34:141;;678:1:56;7398:2:141;7383:18;;7376:43;7269:18;1587:235:53;7126:299:141;2849:97:121;;;;;;;;;;-1:-1:-1;2927:12:121;;2849:97;;;7576:25:141;;;7564:2;7549:18;2849:97:121;7430:177:141;2201:31:2;;;;;;;;;;;;2231:1;2201:31;;4776:244:121;;;;;;;;;;-1:-1:-1;4776:244:121;;;;;:::i;:::-;;:::i;2707:82::-;;;;;;;;;;-1:-1:-1;2780:2:121;2707:82;;;8245:4:141;8233:17;;;8215:36;;8203:2;8188:18;2707:82:121;8073:184:141;1724:108:55;;;;;;;;;;-1:-1:-1;1724:108:55;;;;;:::i;:::-;;:::i;6935:774:2:-;;;;;;;;;;-1:-1:-1;6935:774:2;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;493:87:140:-;;;;;;;;;;-1:-1:-1;493:87:140;;;;;:::i;:::-;;:::i;1568:178::-;;;;;;;;;;-1:-1:-1;1568:178:140;;;;;:::i;:::-;;:::i;875:93:65:-;;;;;;;;;;-1:-1:-1;956:4:65;875:93;;645:273:140;;;;;;;;;;-1:-1:-1;645:273:140;;;;;:::i;:::-;;:::i;:::-;;;;10458:25:141;;;10514:2;10499:18;;10492:34;;;;10431:18;645:273:140;10284:248:141;538:93:63;;;;;;;;;;-1:-1:-1;538:93:63;;;;;:::i;:::-;;:::i;16260:132:2:-;;;;;;;;;;-1:-1:-1;16260:132:2;;;;;:::i;:::-;16365:11;;;;;16342:4;16365:11;;;:5;:11;;;;;;:20;;16260:132;446:46:55;;;;;;;;;;;;;;;4757:163:2;;;;;;;;;;-1:-1:-1;4757:163:2;;;;;:::i;:::-;;:::i;3004:116:121:-;;;;;;;;;;-1:-1:-1;3004:116:121;;;;;:::i;:::-;3095:18;;3069:7;3095:18;;;:9;:18;;;;;;;3004:116;2293:101:116;;;;;;;;;;;;;:::i;3507:128:56:-;;;;;;;;;;-1:-1:-1;3507:128:56;;;;;:::i;:::-;3596:12;3507:128;;;;;2013:216;;;;;;;;;;-1:-1:-1;2013:216:56;;;;;:::i;:::-;2198:24;;;2217:4;2198:24;2013:216;;;;;;;4322:87:2;;;;;;;;;;-1:-1:-1;4401:1:2;4322:87;;1638:85:116;;;;;;;;;;-1:-1:-1;1684:7:116;1710:6;;;1638:85;;1981:93:121;;;;;;;;;;;;;:::i;1895:46:2:-;;;;;;;;;;;;;;;1472:94:1;;;;;;;;;;-1:-1:-1;1531:4:1;1472:94;;3315:178:121;;;;;;;;;;-1:-1:-1;3315:178:121;;;;;:::i;:::-;;:::i;1334:111:140:-;;;;;;;;;;-1:-1:-1;1334:111:140;;;;;:::i;:::-;;:::i;559:23:65:-;;;;;;;;;;-1:-1:-1;559:23:65;;;;;;;;1391:156:63;;;;;;;;;;-1:-1:-1;1391:156:63;;;;;:::i;:::-;;:::i;569:48:55:-;;;;;;;;;;-1:-1:-1;569:48:55;;;;;:::i;:::-;;;;;;;;;;;;;;3510:981:63;;;;;;;;;;-1:-1:-1;3510:981:63;;;;;:::i;:::-;;:::i;1698:1333:65:-;;;;;;:::i;:::-;;:::i;1204:124:140:-;;;;;;;;;;-1:-1:-1;1204:124:140;;;;;:::i;:::-;;:::i;8397:367:2:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;3252:105:55:-;;;;;;;;;;-1:-1:-1;3252:105:55;;;;;:::i;:::-;;:::i;3679:409:65:-;;;;;;:::i;:::-;;:::i;1100:139::-;;;;;;;;;;-1:-1:-1;1100:139:65;;;;;:::i;:::-;;:::i;3551:140:121:-;;;;;;;;;;-1:-1:-1;3551:140:121;;;;;:::i;:::-;3657:18;;;;3631:7;3657:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3551:140;924:274:140;;;;;;;;;;-1:-1:-1;924:274:140;;;;;:::i;:::-;;:::i;2543:215:116:-;;;;;;;;;;-1:-1:-1;2543:215:116;;;;;:::i;:::-;;:::i;2771:149:56:-;;;;;;;;;;-1:-1:-1;2771:149:56;;;;;:::i;:::-;;:::i;1752:247:140:-;1881:20;1903;1942:50;1962:10;1974:17;1942:19;:50::i;:::-;1935:57;;;;1752:247;;;;;;:::o;1779:89:121:-;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;735:10:126;4125:31:121;735:10:126;4141:7:121;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;;:::o;5226:1258:2:-;-1:-1:-1;;;;;;;;;;;;;;;;;5378:35:2;5415:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;5415:28:2;5633:34;;;;;;;;-1:-1:-1;5633:34:2;;;5555:16;5633:34;;;;;;;5784:21;;;;;;;;;;;5633:34;;-1:-1:-1;;;5784:21:2;;;-1:-1:-1;;;;;;;;;;;;;;;;;5784:21:2;;;;;;;;;;;;;;;-1:-1:-1;5768:37:2;-1:-1:-1;6242:20:2;;6292:120;6316:19;;;;6349:22;;;;6385:17;;;;6316:10;6385:17;:::i;:::-;6292:10;:120::i;:::-;6435:42;;;;;;;;;;;;;;;;5226:1258;;;;-1:-1:-1;;;;;;5226:1258:2:o;1451:111:140:-;1505:15;1539:16;1545:9;1539:5;:16::i;4368:708:56:-;4681:8;4673:31;;4694:10;4673:31;4669:68;;4713:24;;;;;4726:10;4713:24;;;4937:74:141;4910:18;;4713:24:56;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;;;;17907:10:141;17895:23;;;4896:40:56;;;17877:42:141;4921:14:56;;;;17935:18:141;;;17928:34;17850:18;;4896:40:56;17705:263:141;4833:103:56;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;4776:244:121:-;4863:4;735:10:126;4919:37:121;4935:4;735:10:126;4950:5:121;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;;:::o;1724:108:55:-;1531:13:116;:11;:13::i;:::-;1804:21:55::1;1813:4;1819:5;1804:8;:21::i;:::-;1724:108:::0;;:::o;6935:774:2:-;-1:-1:-1;;;;;;;;;;;;;;;;;7269:24:2;7297:74;7308:19;;;;7329:22;;;;7353:17;;;;7308:10;7353:17;:::i;7297:74::-;7266:105;;;7460:20;7482;7506:49;7526:10;7538:16;7506:19;:49::i;:::-;7459:96;;-1:-1:-1;7459:96:2;-1:-1:-1;7644:58:2;7651:17;;;;:10;:17;:::i;:::-;7670:7;7679;7688:13;7644:6;:58::i;:::-;7637:65;6935:774;-1:-1:-1;;;;;;6935:774:2:o;493:87:140:-;554:19;560:3;565:7;554:5;:19::i;1568:178::-;1656:24;1699:40;1707:3;1712:17;1731:7;1699;:40::i;:::-;1692:47;1568:178;-1:-1:-1;;;;1568:178:140:o;645:273::-;777:23;802:24;845:66;852:10;864:15;881:20;903:7;845:6;:66::i;:::-;838:73;;;;645:273;;;;;;;:::o;538:93:63:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4757:163:2:-;1531:13:116;:11;:13::i;:::-;4840:12:2::1;:28:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;4883:30:::1;::::0;4937:74:141;;;4883:30:2::1;::::0;4925:2:141;4910:18;4883:30:2::1;;;;;;;;4757:163:::0;:::o;2293:101:116:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1981:93:121:-;2028:13;2060:7;2053:14;;;;;:::i;3315:178::-;3384:4;735:10:126;3438:27:121;735:10:126;3455:2:121;3459:5;3438:9;:27::i;1334:111:140:-;1387:16;1422;1428:9;1422:5;:16::i;1391:156:63:-;1531:13:116;:11;:13::i;:::-;1503:37:63::1;;1523:16:::0;;1503:37:::1;:::i;:::-;:19;:37::i;3510:981::-:0;3701:21;;;3677;3701;;;:15;:21;;;;;;;;:31;;;;;;;;;;3677:55;;3653:12;;3677:21;3701:31;3677:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3861:8;:15;3880:1;3861:20;3857:46;;3890:13;;3883:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:20:63;;-1:-1:-1;3883:20:63;;-1:-1:-1;;;;3883:20:63;3857:46;3988:1;3964:25;;;3960:46;;3998:8;-1:-1:-1;3991:15:63;;3960:46;4153:1;4129:25;;4125:267;;4170:34;4190:13;;4170:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4170:19:63;;-1:-1:-1;;;4170:34:63:i;:::-;4353:8;4363:17;:13;4377:1;4363:13;;:17;:::i;:::-;4340:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:48;;;;;4125:267;4470:13;;4455:29;;;;;;;;;;;;:::i;1698:1333:65:-;1799:9;1794:1037;1814:19;;;1794:1037;;;1854:29;1886:8;;1895:1;1886:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1854:43;-1:-1:-1;1980:50:65;1987:20;;;;1854:43;1987:20;:::i;:::-;2009;;;;16365:11:2;;;;;16342:4;16365:11;;;:5;:11;;;;;;:20;;16260:132;1980:50:65;1975:65;;2032:8;;;1975:65;2602:4;:22;2633:12;;;;:6;2696:11;;;;2725:14;;;;2633:6;2725:14;:::i;:::-;2757:15;;;;;;;;:::i;:::-;2790:16;;;;:6;:16;:::i;:::-;2602:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:991;1794:1037;1835:3;;1794:1037;;;;2988:10;2978:43;;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2961:63;;;;;;;;;;;:::i;1204:124:140:-;1264:16;1299:22;1311:9;1299:11;:22::i;8397:367:2:-;8558:34;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;8638:9:2;:13;8634:67;;8660:41;;;;;8691:9;8660:41;;;7576:25:141;7549:18;;8660:41:2;7430:177:141;8634:67:2;8718:39;8724:10;8736:4;8742:14;8718:5;:39::i;3252:105:55:-;1531:13:116;:11;:13::i;:::-;3319:31:55::1;::::0;;;;:20:::1;4955:55:141::0;;;3319:31:55::1;::::0;::::1;4937:74:141::0;3319:8:55::1;:20;::::0;::::1;::::0;4910:18:141;;3319:31:55::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;3679:409:65:-;3958:10;3980:4;3958:27;3954:50;;3994:10;;;;;;;;;;;;;;3954:50;4014:67;4033:7;4042:5;4049:8;;4059:9;4070:10;;4014:18;:67::i;1100:139::-;1531:13:116;:11;:13::i;:::-;1175:8:65::1;:20:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;1210:22:::1;::::0;4937:74:141;;;1210:22:65::1;::::0;4925:2:141;4910:18;1210:22:65::1;4791:226:141::0;924:274:140;1065:23;1090:24;1133:58;1144:15;1161:20;1183:7;1133:10;:58::i;2543:215:116:-;1531:13;:11;:13::i;:::-;2627:22:::1;::::0;::::1;2623:91;;2672:31;::::0;::::1;::::0;;2700:1:::1;2672:31;::::0;::::1;4937:74:141::0;4910:18;;2672:31:116::1;4791:226:141::0;2623:91:116::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;2771:149:56:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:56;;:37;;2771:149;-1:-1:-1;;2771:149:56:o;11099:1436:2:-;11231:20;11253;11285:15;11456:324;11488:10;:13;;;11515:16;11521:9;11515:5;:16::i;:::-;11749:21;;;;:10;:21;:::i;:::-;11456:324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11456:18:2;;-1:-1:-1;;;11456:324:2:i;:::-;11432:348;;-1:-1:-1;11432:348:2;-1:-1:-1;11860:14:2;11432:348;11877:33;;2231:1;11877:33;;;2277:1;11877:33;11860:50;-1:-1:-1;12032:67:2;12047:17;;;;:10;:17;:::i;:::-;12066:7;12075:23;;;;:10;:23;:::i;12032:67::-;12357:12;;12022:77;;-1:-1:-1;12357:12:2;;12449:23;;12445:83;;12474:54;;;;;:36;;;;;;:54;;12511:7;;12520;;12474:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12445:83;11275:1260;;;11099:1436;;;;;:::o;8726:128:121:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;18277:668:2:-;18419:20;18441:24;18615:22;18627:9;18615:11;:22::i;:::-;18600:37;;18763:12;18744:31;;18845:12;18826:16;:31;18822:117;;;18880:48;;;;;;;;10458:25:141;;;10499:18;;;10492:34;;;10431:18;;18880:48:2;10284:248:141;17545:147:2;17610:15;17651:33;17663:21;17651:9;:33;:::i;2718:196:55:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;;;;25973:10:141;25961:23;;2874:12:55;;;25943:42:141;25916:18;;2874:12:55;25799:192:141;13053:1806:2;13530:17;13550:36;:17;:8;;:15;:17::i;:::-;2891:2:71;2780:123;13550:36:2;13530:56;;13719:24;13746:62;13754:9;13765:26;13771:19;:8;;:17;:19::i;:::-;13765:5;:26::i;:::-;13793:14;;;;:7;:14;:::i;:::-;13746:7;:62::i;:::-;13719:89;-1:-1:-1;243:2:71;-1:-1:-1;;13819:955:2;;;13923:23;13949:175;13992:13;;;;;;;;:::i;:::-;14023:14;;;;:7;:14;:::i;:::-;14055:16;14089:21;:8;;:19;:21::i;:::-;13949:25;:175::i;:::-;14671:92;;;;;13923:201;;-1:-1:-1;14671:20:2;:8;:20;;;;:92;;14692:9;;14703:5;;14710:1;;13923:201;;14671:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13846:928;13819:955;14789:63;;;14801:5;14789:63;14808:14;;;;:7;:14;:::i;:::-;14789:63;;;17907:10:141;17895:23;;;17877:42;;17950:2;17935:18;;17928:34;;;17850:18;14789:63:2;;;;;;;13356:1503;;13053:1806;;;;;;;:::o;10415:477:121:-;3657:18;;;;10514:24;3657:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;10600:17;10580:37;;10576:310;;10656:5;10637:16;:24;10633:130;;;10688:60;;;;;27002:42:141;26990:55;;10688:60:121;;;26972:74:141;27062:18;;;27055:34;;;27105:18;;;27098:34;;;26945:18;;10688:60:121;26770:368:141;10633:130:121;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10504:388;10415:477;;;:::o;5393:300::-;5476:18;;;5472:86;;5517:30;;;;;5544:1;5517:30;;;4937:74:141;4910:18;;5517:30:121;4791:226:141;5472:86:121;5571:16;;;5567:86;;5610:32;;;;;5639:1;5610:32;;;4937:74:141;4910:18;;5610:32:121;4791:226:141;5567:86:121;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;1796:162:116:-;1684:7;1710:6;1855:23;1710:6;735:10:126;1855:23:116;1851:101;;1901:40;;;;;735:10:126;1901:40:116;;;4937:74:141;4910:18;;1901:40:116;4791:226:141;2286:134:55;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;17877:42:141;;;17935:18;;17928:34;;;2393:20:55;;17850:18:141;2393:20:55;;;;;;;2286:134;;:::o;2038:391:57:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:57;:14;;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2240:182;2038:391;-1:-1:-1;;;;;2038:391:57:o;7458:208:121:-;7528:21;;;7524:91;;7572:32;;;;;7601:1;7572:32;;;4937:74:141;4910:18;;7572:32:121;4791:226:141;7524:91:121;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;2951:462:1:-;3085:24;3125:19;;;3121:46;;3160:6;3146:21;;3121:46;3263:21;3269:3;3274:9;3263:5;:21::i;:::-;-1:-1:-1;3397:9:1;;2951:462;-1:-1:-1;;2951:462:1:o;2049:567::-;2210:20;2232:24;2303:44;2314:9;2325:12;2339:7;2303:10;:44::i;:::-;2268:79;;-1:-1:-1;2268:79:1;-1:-1:-1;2583:26:1;2589:5;2268:79;2583:5;:26::i;:::-;2049:567;;;;;;;:::o;2912:187:116:-;2985:16;3004:6;;;3020:17;;;;;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;17182:139:2:-;17246:16;17281:33;17293:21;17281:33;;;;:::i;2237:514:63:-;2345:9;2340:354;2364:16;:23;2360:1;:27;2340:354;;;2522:48;2542:16;2559:1;2542:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2522:19;:48::i;:::-;2656:16;2673:1;2656:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:15;:40;2600:16;2617:1;2600:19;;;;;;;;:::i;:::-;;;;;;;:23;;;2584:40;;;;;;;;;;;;;;;:69;2625:16;2642:1;2625:19;;;;;;;;:::i;:::-;;;;;;;:27;;;2584:69;;;;;;;;;;;;;;;:99;;;;;;:::i;:::-;-1:-1:-1;2389:3:63;;2340:354;;;;2709:35;2727:16;2709:35;;;;;;:::i;4631:264::-;4801:1;4787:16;;4781:23;4827:28;;;463:1;4827:28;4823:65;;4879:8;4864:24;;;;;;;;;;;:::i;16786:172:2:-;16857:16;16930:21;16893:33;16930:21;16893:9;:33;:::i;:::-;16892:59;;;;:::i;9472:1333::-;9626:34;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;10024:20:2;;10074:140;10094:10;10118:19;;;;10151:22;;;;10187:17;;;;10118:10;10187:17;:::i;:::-;10074:6;:140::i;:::-;10023:191;;;;10303:20;10325;10349:49;10369:10;10381:16;10349:19;:49::i;:::-;10302:96;;-1:-1:-1;10302:96:2;-1:-1:-1;10521:66:2;10529:17;;;;:10;:17;:::i;:::-;10548:7;10557;10521:66;;;;;;;10566:4;10521:66;:::i;:::-;10572:14;10521:7;:66::i;:::-;10653:42;;;;;;;;;;;;;;;;;;;10719:15;;10508:79;;-1:-1:-1;10653:42:2;;-1:-1:-1;10755:10:2;;10719:15;10711:87;;10736:17;;;;:10;:17;:::i;:::-;10711:87;;;33000:10:141;32988:23;;;32970:42;;33043:2;33028:18;;33021:34;;;33071:18;;33064:34;;;32958:2;32943:18;10711:87:2;;;;;;;9692:1113;;;;9472:1333;;;;;;:::o;598:506:71:-;791:18;;732:17;;791:22;;;934:163;;1074:7;1083:13;1057:40;;;;;;;;33264:19:141;;;33321:3;33317:16;33335:66;33313:89;33308:2;33299:12;;33292:111;33428:2;33419:12;;33109:328;1057:40:71;;;;;;;;;;;;;934:163;;;976:7;985:13;1017:10;1030:11;959:83;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;934:163;927:170;;598:506;;;;;;:::o;9701:432:121:-;9813:19;;;9809:89;;9855:32;;;;;9884:1;9855:32;;;4937:74:141;4910:18;;9855:32:121;4791:226:141;9809:89:121;9911:21;;;9907:90;;9955:31;;;;;9983:1;9955:31;;;4937:74:141;4910:18;;9955:31:121;4791:226:141;9907:90:121;10006:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10051:76;;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;7576:25:141;;7564:2;7549:18;;7430:177;10085:31:121;;;;;;;;9701:432;;;;:::o;1573:123:71:-;1633:7;1667:21;188:2;1633:7;1667:4;;:21;:::i;:::-;1659:30;;;:::i;1874:152::-;1936:6;1975:42;243:2;188;1975:4;;:42;:::i;:::-;1968:50;;;:::i;:::-;1961:58;;;1874:152;-1:-1:-1;;;1874:152:71:o;2186:130::-;2250:12;2281:28;:4;243:2;2281:4;;:28;:::i;:::-;2274:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2274:35:71;;2186:130;-1:-1:-1;;;;;;2186:130:71:o;640:284:70:-;824:17;877:6;885:7;894:9;905:11;860:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;853:64;;640:284;;;;;;:::o;6008:1107:121:-;6097:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6093:540:121;;-1:-1:-1;6093:540:121;;6307:15;;;6285:19;6307:15;;;:9;:15;;;;;;6340:19;;;6336:115;;;6386:50;;;;;27002:42:141;26990:55;;6386:50:121;;;26972:74:141;27062:18;;;27055:34;;;27105:18;;;27098:34;;;26945:18;;6386:50:121;26770:368:141;6336:115:121;6571:15;;;;;;;:9;:15;;;;;6589:19;;;;6571:37;;6093:540;6647:16;;;6643:425;;6810:12;:21;;;;;;;6643:425;;;7021:13;;;;;;;:9;:13;;;;;:22;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;7576::141;;7564:2;7549:18;;7430:177;7083:25:121;;;;;;;;6008:1107;;;:::o;7984:206::-;8054:21;;;8050:89;;8098:30;;;;;8125:1;8098:30;;;4937:74:141;4910:18;;8098:30:121;4791:226:141;8050:89:121;8148:35;8156:7;8173:1;8177:5;8148:7;:35::i;1542:721:54:-;1744:31;;:::i;:::-;1920:14;;1909:26;;:10;:26::i;:::-;-1:-1:-1;1949:15:54;;;;:19;1945:53;;1970:28;1982:4;:15;;;1970:11;:28::i;:::-;2087:8;:13;;;2118:92;;;;;;;;2134:7;2118:92;;;;;;2143:25;2160:7;2143:16;:25::i;:::-;2118:92;;;;2170:8;2118:92;;;;2180:8;2118:92;;;;2208:1;2190:4;:15;;;:19;2118:92;;;;;2228:14;2087:169;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2898:488::-;2965:17;3078:19;3100:8;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3078:44;-1:-1:-1;3136:25:54;;;3132:62;;3170:24;;;;;;;;;;;;;;3132:62;3272:79;:36;;;3309:10;3329:8;3340:10;3272:36;:79::i;:::-;-1:-1:-1;3369:10:54;;2898:488;-1:-1:-1;2898:488:54:o;5218:410:57:-;5371:15;5389:8;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;5421:21:57;;;5417:54;;5451:20;;;;;;;;;;;;;;5417:54;5545:76;:32;;;5578:10;5598:8;5609:11;1670:188:124;1797:53;;;1812:18;36565:15:141;;;1797:53:124;;;36547:34:141;36617:15;;36597:18;;;36590:43;36649:18;;;;36642:34;;;1797:53:124;;;;;;;;;;36459:18:141;;;;1797:53:124;;;;;;;;;;;;;;;7968:11;;1770:81;;1790:5;;1797:53;;-1:-1:-1;;;;1797:53:124;-1:-1:-1;;7968:11:124;-1:-1:-1;1790:5:124;7934;7929:60;8041:7;8031:176;;8085:4;8079:11;8130:16;8127:1;8122:3;8107:40;8176:16;8171:3;8164:29;8031:176;-1:-1:-1;;8284:1:124;8278:8;8234:16;;-1:-1:-1;8310:15:124;;:68;;8362:11;8377:1;8362:16;;8310:68;;;8328:26;;;;:31;8310:68;8306:146;;;8401:40;;;;;4967:42:141;4955:55;;8401:40:124;;;4937:74:141;4910:18;;8401:40:124;4791:226:141;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:158:141:-;76:5;121:3;112:6;107:3;103:16;99:26;96:46;;;138:1;135;128:12;96:46;-1:-1:-1;160:6:141;14:158;-1:-1:-1;14:158:141:o;177:429::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;392:9;379:23;425:18;417:6;414:30;411:50;;;457:1;454;447:12;411:50;480:69;541:7;532:6;521:9;517:22;480:69;:::i;:::-;470:79;596:2;581:18;;;;568:32;;-1:-1:-1;;;;177:429:141:o;611:250::-;696:1;706:113;720:6;717:1;714:13;706:113;;;796:11;;;790:18;777:11;;;770:39;742:2;735:10;706:113;;;-1:-1:-1;;853:1:141;835:16;;828:27;611:250::o;866:329::-;907:3;945:5;939:12;972:6;967:3;960:19;988:76;1057:6;1050:4;1045:3;1041:14;1034:4;1027:5;1023:16;988:76;:::i;:::-;1109:2;1097:15;1114:66;1093:88;1084:98;;;;1184:4;1080:109;;866:329;-1:-1:-1;;866:329:141:o;1200:377::-;1393:2;1382:9;1375:21;1356:4;1419:44;1459:2;1448:9;1444:18;1436:6;1419:44;:::i;:::-;1511:9;1503:6;1499:22;1494:2;1483:9;1479:18;1472:50;1539:32;1564:6;1556;1539:32;:::i;1582:219::-;1731:2;1720:9;1713:21;1694:4;1751:44;1791:2;1780:9;1776:18;1768:6;1751:44;:::i;1806:154::-;1892:42;1885:5;1881:54;1874:5;1871:65;1861:93;;1950:1;1947;1940:12;1965:315;2033:6;2041;2094:2;2082:9;2073:7;2069:23;2065:32;2062:52;;;2110:1;2107;2100:12;2062:52;2149:9;2136:23;2168:31;2193:5;2168:31;:::i;:::-;2218:5;2270:2;2255:18;;;;2242:32;;-1:-1:-1;;;1965:315:141:o;2477:361::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;2675:9;2662:23;2708:18;2700:6;2697:30;2694:50;;;2740:1;2737;2730:12;2694:50;2763:69;2824:7;2815:6;2804:9;2800:22;2763:69;:::i;2997:1399::-;2917:12;;2905:25;;2979:4;2968:16;;;2962:23;2946:14;;;2939:47;3369:4;3417:3;3402:19;;3494:2;3532:3;3527:2;3516:9;3512:18;3505:31;3556:6;3591;3585:13;3622:6;3614;3607:22;3660:3;3649:9;3645:19;3638:26;;3723:3;3713:6;3710:1;3706:14;3695:9;3691:30;3687:40;3673:54;;3746:4;3785;3777:6;3773:17;3808:1;3818:486;3832:6;3829:1;3826:13;3818:486;;;3897:22;;;3921:66;3893:95;3881:108;;4012:13;;4053:9;;4038:25;;4102:11;;4096:18;4134:15;;;4127:27;;;4177:47;4208:15;;;4096:18;4177:47;:::i;:::-;4167:57;-1:-1:-1;;4282:12:141;;;;4247:15;;;;3854:1;3847:9;3818:486;;;-1:-1:-1;;2917:12:141;;4386:2;4371:18;;2905:25;-1:-1:-1;;;2979:4:141;2968:16;;2962:23;2946:14;;;2939:47;-1:-1:-1;4321:6:141;-1:-1:-1;4336:54:141;2843:149;4401:180;4460:6;4513:2;4501:9;4492:7;4488:23;4484:32;4481:52;;;4529:1;4526;4519:12;4481:52;-1:-1:-1;4552:23:141;;4401:180;-1:-1:-1;4401:180:141:o;5022:154::-;5081:5;5126:2;5117:6;5112:3;5108:16;5104:25;5101:45;;;5142:1;5139;5132:12;5181:347;5232:8;5242:6;5296:3;5289:4;5281:6;5277:17;5273:27;5263:55;;5314:1;5311;5304:12;5263:55;-1:-1:-1;5337:20:141;;5380:18;5369:30;;5366:50;;;5412:1;5409;5402:12;5366:50;5449:4;5441:6;5437:17;5425:29;;5501:3;5494:4;5485:6;5477;5473:19;5469:30;5466:39;5463:59;;;5518:1;5515;5508:12;5533:1048;5676:6;5684;5692;5700;5708;5716;5724;5777:3;5765:9;5756:7;5752:23;5748:33;5745:53;;;5794:1;5791;5784:12;5745:53;5817;5862:7;5851:9;5817:53;:::i;:::-;5807:63;;5917:2;5906:9;5902:18;5889:32;5879:42;;5972:3;5961:9;5957:19;5944:33;5996:18;6037:2;6029:6;6026:14;6023:34;;;6053:1;6050;6043:12;6023:34;6092:58;6142:7;6133:6;6122:9;6118:22;6092:58;:::i;:::-;6169:8;;-1:-1:-1;6066:84:141;-1:-1:-1;6254:3:141;6239:19;;6226:33;;-1:-1:-1;6268:31:141;6226:33;6268:31;:::i;:::-;6318:5;;-1:-1:-1;6376:3:141;6361:19;;6348:33;;6393:16;;;6390:36;;;6422:1;6419;6412:12;6390:36;;6461:60;6513:7;6502:8;6491:9;6487:24;6461:60;:::i;:::-;5533:1048;;;;-1:-1:-1;5533:1048:141;;-1:-1:-1;5533:1048:141;;;;6435:86;;-1:-1:-1;;;5533:1048:141:o;7612:456::-;7689:6;7697;7705;7758:2;7746:9;7737:7;7733:23;7729:32;7726:52;;;7774:1;7771;7764:12;7726:52;7813:9;7800:23;7832:31;7857:5;7832:31;:::i;:::-;7882:5;-1:-1:-1;7939:2:141;7924:18;;7911:32;7952:33;7911:32;7952:33;:::i;:::-;7612:456;;8004:7;;-1:-1:-1;;;8058:2:141;8043:18;;;;8030:32;;7612:456::o;8262:163::-;8329:20;;8389:10;8378:22;;8368:33;;8358:61;;8415:1;8412;8405:12;8358:61;8262:163;;;:::o;8430:252::-;8497:6;8505;8558:2;8546:9;8537:7;8533:23;8529:32;8526:52;;;8574:1;8571;8564:12;8526:52;8597:28;8615:9;8597:28;:::i;8687:118::-;8773:5;8766:13;8759:21;8752:5;8749:32;8739:60;;8795:1;8792;8785:12;8810:490;8905:6;8913;8966:2;8954:9;8945:7;8941:23;8937:32;8934:52;;;8982:1;8979;8972:12;8934:52;9022:9;9009:23;9055:18;9047:6;9044:30;9041:50;;;9087:1;9084;9077:12;9041:50;9110:69;9171:7;9162:6;9151:9;9147:22;9110:69;:::i;:::-;9100:79;;;9229:2;9218:9;9214:18;9201:32;9242:28;9264:5;9242:28;:::i;:::-;9289:5;9279:15;;;8810:490;;;;;:::o;9305:257::-;2917:12;;2905:25;;2979:4;2968:16;;;2962:23;2946:14;;;2939:47;9499:2;9484:18;;9511:45;2843:149;9567:387;9643:6;9651;9659;9712:2;9700:9;9691:7;9687:23;9683:32;9680:52;;;9728:1;9725;9718:12;9680:52;9767:9;9754:23;9786:31;9811:5;9786:31;:::i;:::-;9836:5;-1:-1:-1;9888:2:141;9873:18;;9860:32;;-1:-1:-1;9911:37:141;9944:2;9929:18;;9911:37;:::i;:::-;9901:47;;9567:387;;;;;:::o;9959:320::-;10035:6;10043;10051;10104:2;10092:9;10083:7;10079:23;10075:32;10072:52;;;10120:1;10117;10110:12;10072:52;10156:9;10143:23;10133:33;;10213:2;10202:9;10198:18;10185:32;10175:42;;10236:37;10269:2;10258:9;10254:18;10236:37;:::i;10537:159::-;10604:20;;10664:6;10653:18;;10643:29;;10633:57;;10686:1;10683;10676:12;10701:256;10767:6;10775;10828:2;10816:9;10807:7;10803:23;10799:32;10796:52;;;10844:1;10841;10834:12;10796:52;10867:28;10885:9;10867:28;:::i;:::-;10857:38;;10914:37;10947:2;10936:9;10932:18;10914:37;:::i;:::-;10904:47;;10701:256;;;;;:::o;11444:247::-;11503:6;11556:2;11544:9;11535:7;11531:23;11527:32;11524:52;;;11572:1;11569;11562:12;11524:52;11611:9;11598:23;11630:31;11655:5;11630:31;:::i;11696:670::-;11810:6;11818;11826;11834;11887:3;11875:9;11866:7;11862:23;11858:33;11855:53;;;11904:1;11901;11894:12;11855:53;11927;11972:7;11961:9;11927:53;:::i;:::-;11917:63;;12031:2;12020:9;12016:18;12003:32;12058:18;12050:6;12047:30;12044:50;;;12090:1;12087;12080:12;12044:50;12129:58;12179:7;12170:6;12159:9;12155:22;12129:58;:::i;:::-;12206:8;;-1:-1:-1;12103:84:141;-1:-1:-1;;12291:3:141;12276:19;;12263:33;12305:31;12263:33;12305:31;:::i;:::-;11696:670;;;;-1:-1:-1;11696:670:141;;-1:-1:-1;;11696:670:141:o;12371:129::-;12456:18;12449:5;12445:30;12438:5;12435:41;12425:69;;12490:1;12487;12480:12;12505:245;12563:6;12616:2;12604:9;12595:7;12591:23;12587:32;12584:52;;;12632:1;12629;12622:12;12584:52;12671:9;12658:23;12690:30;12714:5;12690:30;:::i;12755:395::-;12846:8;12856:6;12910:3;12903:4;12895:6;12891:17;12887:27;12877:55;;12928:1;12925;12918:12;12877:55;-1:-1:-1;12951:20:141;;12994:18;12983:30;;12980:50;;;13026:1;13023;13016:12;12980:50;13063:4;13055:6;13051:17;13039:29;;13123:3;13116:4;13106:6;13103:1;13099:14;13091:6;13087:27;13083:38;13080:47;13077:67;;;13140:1;13137;13130:12;13155:505;13281:6;13289;13342:2;13330:9;13321:7;13317:23;13313:32;13310:52;;;13358:1;13355;13348:12;13310:52;13398:9;13385:23;13431:18;13423:6;13420:30;13417:50;;;13463:1;13460;13453:12;13417:50;13502:98;13592:7;13583:6;13572:9;13568:22;13502:98;:::i;:::-;13619:8;;13476:124;;-1:-1:-1;13155:505:141;-1:-1:-1;;;;13155:505:141:o;13665:184::-;13723:6;13776:2;13764:9;13755:7;13751:23;13747:32;13744:52;;;13792:1;13789;13782:12;13744:52;13815:28;13833:9;13815:28;:::i;14036:553::-;14122:6;14130;14138;14146;14199:2;14187:9;14178:7;14174:23;14170:32;14167:52;;;14215:1;14212;14205:12;14167:52;14238:28;14256:9;14238:28;:::i;:::-;14228:38;;14285:37;14318:2;14307:9;14303:18;14285:37;:::i;:::-;14275:47;;14373:2;14362:9;14358:18;14345:32;14400:18;14392:6;14389:30;14386:50;;;14432:1;14429;14422:12;14386:50;14471:58;14521:7;14512:6;14501:9;14497:22;14471:58;:::i;:::-;14036:553;;;;-1:-1:-1;14548:8:141;-1:-1:-1;;;;14036:553:141:o;15098:717::-;15237:6;15245;15253;15297:9;15288:7;15284:23;15327:3;15323:2;15319:12;15316:32;;;15344:1;15341;15334:12;15316:32;15384:9;15371:23;15417:18;15409:6;15406:30;15403:50;;;15449:1;15446;15439:12;15403:50;15472:69;15533:7;15524:6;15513:9;15509:22;15472:69;:::i;:::-;15462:79;;;15634:2;15565:66;15561:2;15557:75;15553:84;15550:104;;;15650:1;15647;15640:12;15550:104;;15688:2;15677:9;15673:18;15663:28;;15741:2;15730:9;15726:18;15713:32;15754:31;15779:5;15754:31;:::i;:::-;15804:5;15794:15;;;15098:717;;;;;:::o;15820:615::-;16066:4;16108:3;16097:9;16093:19;16085:27;;16145:6;16139:13;16128:9;16121:32;16221:18;16213:4;16205:6;16201:17;16195:24;16191:49;16184:4;16173:9;16169:20;16162:79;16288:4;16280:6;16276:17;16270:24;16303:62;16359:4;16348:9;16344:20;16330:12;2917;;2905:25;;2979:4;2968:16;;;2962:23;2946:14;;2939:47;2843:149;16303:62;-1:-1:-1;2917:12:141;;16424:3;16409:19;;2905:25;2979:4;2968:16;;2962:23;2946:14;;;2939:47;16374:55;2843:149;16440:388;16508:6;16516;16569:2;16557:9;16548:7;16544:23;16540:32;16537:52;;;16585:1;16582;16575:12;16537:52;16624:9;16611:23;16643:31;16668:5;16643:31;:::i;:::-;16693:5;-1:-1:-1;16750:2:141;16735:18;;16722:32;16763:33;16722:32;16763:33;:::i;16833:236::-;16918:6;16971:2;16959:9;16950:7;16946:23;16942:32;16939:52;;;16987:1;16984;16977:12;16939:52;17010:53;17055:7;17044:9;17010:53;:::i;17074:437::-;17153:1;17149:12;;;;17196;;;17217:61;;17271:4;17263:6;17259:17;17249:27;;17217:61;17324:2;17316:6;17313:14;17293:18;17290:38;17287:218;;17361:77;17358:1;17351:88;17462:4;17459:1;17452:15;17490:4;17487:1;17480:15;17516:184;17568:77;17565:1;17558:88;17665:4;17662:1;17655:15;17689:4;17686:1;17679:15;17973:253;18045:2;18039:9;18087:4;18075:17;;18122:18;18107:34;;18143:22;;;18104:62;18101:88;;;18169:18;;:::i;:::-;18205:2;18198:22;17973:253;:::o;18231:257::-;18303:4;18297:11;;;18335:17;;18382:18;18367:34;;18403:22;;;18364:62;18361:88;;;18429:18;;:::i;18493:334::-;18564:2;18558:9;18620:2;18610:13;;18625:66;18606:86;18594:99;;18723:18;18708:34;;18744:22;;;18705:62;18702:88;;;18770:18;;:::i;:::-;18806:2;18799:22;18493:334;;-1:-1:-1;18493:334:141:o;18832:245::-;18880:4;18913:18;18905:6;18902:30;18899:56;;;18935:18;;:::i;:::-;-1:-1:-1;18992:2:141;18980:15;18997:66;18976:88;19066:4;18972:99;;18832:245::o;19082:1757::-;19276:9;19310:18;19351:2;19343:6;19340:14;19337:40;;;19357:18;;:::i;:::-;19403:6;19400:1;19396:14;19429:4;19453:28;19477:2;19473;19469:11;19453:28;:::i;:::-;19515:19;;;19585:14;;;;19550:12;;;;19622:14;19611:26;;19608:46;;;19650:1;19647;19640:12;19608:46;19674:5;19688:1118;19704:6;19699:3;19696:15;19688:1118;;;19790:3;19777:17;19826:2;19813:11;19810:19;19807:39;;;19842:1;19839;19832:12;19807:39;19869:23;;19937:4;19916:14;19912:23;;;19908:34;19905:54;;;19955:1;19952;19945:12;19905:54;19987:22;;:::i;:::-;20038:21;20056:2;20038:21;:::i;:::-;20029:7;20022:38;20098:30;20124:2;20120;20116:11;20098:30;:::i;:::-;20093:2;20084:7;20080:16;20073:56;20152:2;20202;20198;20194:11;20181:25;20233:2;20225:6;20222:14;20219:34;;;20249:1;20246;20239:12;20219:34;20276:15;;;;;20333:14;20326:4;20318:13;;20314:34;20304:62;;20362:1;20359;20352:12;20304:62;20402:2;20389:16;20431:48;20447:31;20475:2;20447:31;:::i;:::-;20431:48;:::i;:::-;20506:2;20499:5;20492:17;20550:14;20545:2;20540;20536;20532:11;20528:20;20525:40;20522:60;;;20578:1;20575;20568:12;20522:60;20637:2;20632;20628;20624:11;20619:2;20612:5;20608:14;20595:45;20685:1;20664:14;;;20660:23;;20653:34;;;;20707:16;;;20700:31;20744:20;;-1:-1:-1;20784:12:141;;;;19721;;19688:1118;;;-1:-1:-1;20828:5:141;19082:1757;-1:-1:-1;;;;;;;19082:1757:141:o;20844:331::-;20949:9;20960;21002:8;20990:10;20987:24;20984:44;;;21024:1;21021;21014:12;20984:44;21053:6;21043:8;21040:20;21037:40;;;21073:1;21070;21063:12;21037:40;-1:-1:-1;;21099:23:141;;;21144:25;;;;;-1:-1:-1;20844:331:141:o;21180:476::-;21371:3;21409:6;21403:13;21425:66;21484:6;21479:3;21472:4;21464:6;21460:17;21425:66;:::i;:::-;21513:16;;21566:6;21558;21513:16;21538:35;21630:1;21592:18;;21619:13;;;-1:-1:-1;21592:18:141;;21180:476;-1:-1:-1;;;21180:476:141:o;21661:325::-;21749:6;21744:3;21737:19;21801:6;21794:5;21787:4;21782:3;21778:14;21765:43;;21853:1;21846:4;21837:6;21832:3;21828:16;21824:27;21817:38;21719:3;21975:4;21905:66;21900:2;21892:6;21888:15;21884:88;21879:3;21875:98;21871:109;21864:116;;21661:325;;;;:::o;21991:244::-;22148:2;22137:9;22130:21;22111:4;22168:61;22225:2;22214:9;22210:18;22202:6;22194;22168:61;:::i;22240:184::-;22292:77;22289:1;22282:88;22389:4;22386:1;22379:15;22413:4;22410:1;22403:15;22429:390;22529:4;22587:11;22574:25;22677:66;22666:8;22650:14;22646:29;22642:102;22622:18;22618:127;22608:155;;22759:1;22756;22749:12;22608:155;22780:33;;;;;22429:390;-1:-1:-1;;22429:390:141:o;22824:580::-;22901:4;22907:6;22967:11;22954:25;23057:66;23046:8;23030:14;23026:29;23022:102;23002:18;22998:127;22988:155;;23139:1;23136;23129:12;22988:155;23166:33;;23218:20;;;-1:-1:-1;23261:18:141;23250:30;;23247:50;;;23293:1;23290;23283:12;23247:50;23326:4;23314:17;;-1:-1:-1;23357:14:141;23353:27;;;23343:38;;23340:58;;;23394:1;23391;23384:12;23409:1015;23787:10;23760:25;23778:6;23760:25;:::i;:::-;23756:42;23745:9;23738:61;23862:4;23854:6;23850:17;23837:31;23830:4;23819:9;23815:20;23808:61;23719:4;23916;23908:6;23904:17;23891:31;23931:30;23955:5;23931:30;:::i;:::-;24010:18;24003:5;23999:30;23992:4;23981:9;23977:20;23970:60;;24066:6;24061:2;24050:9;24046:18;24039:34;24110:3;24104;24093:9;24089:19;24082:32;24137:62;24194:3;24183:9;24179:19;24171:6;24163;24137:62;:::i;:::-;24248:42;24240:6;24236:55;24230:3;24219:9;24215:19;24208:84;24341:9;24333:6;24329:22;24323:3;24312:9;24308:19;24301:51;24369:49;24411:6;24403;24395;24369:49;:::i;:::-;24361:57;23409:1015;-1:-1:-1;;;;;;;;;;23409:1015:141:o;24429:647::-;24508:6;24561:2;24549:9;24540:7;24536:23;24532:32;24529:52;;;24577:1;24574;24567:12;24529:52;24610:9;24604:16;24643:18;24635:6;24632:30;24629:50;;;24675:1;24672;24665:12;24629:50;24698:22;;24751:4;24743:13;;24739:27;-1:-1:-1;24729:55:141;;24780:1;24777;24770:12;24729:55;24809:2;24803:9;24834:48;24850:31;24878:2;24850:31;:::i;24834:48::-;24905:2;24898:5;24891:17;24945:7;24940:2;24935;24931;24927:11;24923:20;24920:33;24917:53;;;24966:1;24963;24956:12;24917:53;24979:67;25043:2;25038;25031:5;25027:14;25022:2;25018;25014:11;24979:67;:::i;25081:245::-;25148:6;25201:2;25189:9;25180:7;25176:23;25172:32;25169:52;;;25217:1;25214;25207:12;25169:52;25249:9;25243:16;25268:28;25290:5;25268:28;:::i;25331:184::-;25383:77;25380:1;25373:88;25480:4;25477:1;25470:15;25504:4;25501:1;25494:15;25520:274;25560:1;25586;25576:189;;25621:77;25618:1;25611:88;25722:4;25719:1;25712:15;25750:4;25747:1;25740:15;25576:189;-1:-1:-1;25779:9:141;;25520:274::o;25996:501::-;26246:42;26238:6;26234:55;26223:9;26216:74;26326:6;26321:2;26310:9;26306:18;26299:34;26381:6;26373;26369:19;26364:2;26353:9;26349:18;26342:47;26425:3;26420:2;26409:9;26405:18;26398:31;26197:4;26446:45;26486:3;26475:9;26471:19;26463:6;26446:45;:::i;27143:971::-;27366:2;27355:9;27348:21;27424:10;27415:6;27409:13;27405:30;27400:2;27389:9;27385:18;27378:58;27490:4;27482:6;27478:17;27472:24;27467:2;27456:9;27452:18;27445:52;27329:4;27544:2;27536:6;27532:15;27526:22;27585:4;27579:3;27568:9;27564:19;27557:33;27613:51;27659:3;27648:9;27644:19;27630:12;27613:51;:::i;:::-;27599:65;;27713:2;27705:6;27701:15;27695:22;27783:66;27771:9;27763:6;27759:22;27755:95;27748:4;27737:9;27733:20;27726:125;27874:40;27907:6;27891:14;27874:40;:::i;:::-;27983:3;27971:16;;;;27965:23;27958:31;27951:39;27945:3;27930:19;;27923:68;-1:-1:-1;;;28064:42:141;28052:55;;;;28045:4;28030:20;;;28023:85;27860:54;27143:971::o;28119:284::-;28189:5;28237:4;28225:9;28220:3;28216:19;28212:30;28209:50;;;28255:1;28252;28245:12;28209:50;28277:22;;:::i;:::-;28268:31;;28328:9;28322:16;28315:5;28308:31;28392:2;28381:9;28377:18;28371:25;28366:2;28359:5;28355:14;28348:49;28119:284;;;;:::o;28408:259::-;28508:6;28561:2;28549:9;28540:7;28536:23;28532:32;28529:52;;;28577:1;28574;28567:12;28529:52;28600:61;28653:7;28642:9;28600:61;:::i;28672:168::-;28745:9;;;28776;;28793:15;;;28787:22;;28773:37;28763:71;;28814:18;;:::i;28970:517::-;29071:2;29066:3;29063:11;29060:421;;;29107:5;29104:1;29097:16;29151:4;29148:1;29138:18;29221:2;29209:10;29205:19;29202:1;29198:27;29192:4;29188:38;29257:4;29245:10;29242:20;29239:47;;;-1:-1:-1;29280:4:141;29239:47;29335:2;29330:3;29326:12;29323:1;29319:20;29313:4;29309:31;29299:41;;29390:81;29408:2;29401:5;29398:13;29390:81;;;29467:1;29453:16;;29434:1;29423:13;29390:81;;29723:1460;29847:3;29841:10;29874:18;29866:6;29863:30;29860:56;;;29896:18;;:::i;:::-;29925:96;30014:6;29974:38;30006:4;30000:11;29974:38;:::i;:::-;29968:4;29925:96;:::i;:::-;30076:4;;30133:2;30122:14;;30150:1;30145:781;;;;30970:1;30987:6;30984:89;;;-1:-1:-1;31039:19:141;;;31033:26;30984:89;29629:66;29620:1;29616:11;;;29612:84;29608:89;29598:100;29704:1;29700:11;;;29595:117;31086:81;;30115:1062;;30145:781;28917:1;28910:14;;;28954:4;28941:18;;30193:66;30181:79;;;30357:236;30371:7;30368:1;30365:14;30357:236;;;30460:19;;;30454:26;30439:42;;30552:27;;;;30520:1;30508:14;;;;30387:19;;30357:236;;;30361:3;30621:6;30612:7;30609:19;30606:261;;;30682:19;;;30676:26;30783:66;30765:1;30761:14;;;30777:3;30757:24;30753:97;30749:102;30734:118;30719:134;;30606:261;;;30913:1;30904:6;30901:1;30897:14;30893:22;30887:4;30880:36;30115:1062;;;;;29723:1460;;:::o;31188:1224::-;31406:4;31435:2;31475;31464:9;31460:18;31505:2;31494:9;31487:21;31528:6;31563;31557:13;31594:6;31586;31579:22;31620:2;31610:12;;31653:2;31642:9;31638:18;31631:25;;31715:2;31705:6;31702:1;31698:14;31687:9;31683:30;31679:39;31753:2;31745:6;31741:15;31774:1;31784:599;31798:6;31795:1;31792:13;31784:599;;;31863:22;;;31887:66;31859:95;31847:108;;31978:13;;32050:9;;32061:10;32046:26;32031:42;;32120:11;;;32114:18;32134:6;32110:31;32093:15;;;32086:56;32181:11;;32175:18;32014:4;32213:15;;;32206:27;;;32256:47;32287:15;;;32175:18;32256:47;:::i;:::-;32361:12;;;;32246:57;-1:-1:-1;;;32326:15:141;;;;31820:1;31813:9;31784:599;;;-1:-1:-1;32400:6:141;;31188:1224;-1:-1:-1;;;;;;;;31188:1224:141:o;32417:348::-;32506:6;32559:2;32547:9;32538:7;32534:23;32530:32;32527:52;;;32575:1;32572;32565:12;32527:52;32601:22;;:::i;:::-;32659:9;32646:23;32639:5;32632:38;32730:2;32719:9;32715:18;32702:32;32697:2;32690:5;32686:14;32679:56;32754:5;32744:15;;;32417:348;;;;:::o;33442:570::-;33683:6;33678:3;33671:19;33742:66;33733:6;33728:3;33724:16;33720:89;33715:2;33710:3;33706:12;33699:111;33840:6;33835:2;33830:3;33826:12;33819:28;33653:3;33876:6;33870:13;33892:73;33958:6;33953:2;33948:3;33944:12;33939:2;33931:6;33927:15;33892:73;:::i;:::-;33985:16;;;;34003:2;33981:25;;33442:570;-1:-1:-1;;;;;33442:570:141:o;34017:315::-;34137:19;;34176:2;34168:11;;34165:161;;;34248:66;34237:2;34233:12;;;34230:1;34226:20;34222:93;34211:105;34017:315;;;;:::o;34337:369::-;34495:66;34457:19;;34579:11;;;;34610:1;34602:10;;34599:101;;;34687:2;34681;34674:3;34671:1;34667:11;34664:1;34660:19;34656:28;34652:2;34648:37;34644:46;34635:55;;34599:101;;;34337:369;;;;:::o;34711:652::-;34972:66;34963:6;34958:3;34954:16;34950:89;34945:3;34938:102;35091:66;35082:6;35077:3;35073:16;35069:89;35065:1;35060:3;35056:11;35049:110;35189:6;35184:2;35179:3;35175:12;35168:28;34920:3;35225:6;35219:13;35241:75;35309:6;35304:2;35299:3;35295:12;35288:4;35280:6;35276:17;35241:75;:::i;:::-;35336:16;;;;35354:2;35332:25;;34711:652;-1:-1:-1;;;;;34711:652:141:o;35368:125::-;35433:9;;;35454:10;;;35451:36;;;35467:18;;:::i;35498:525::-;35602:6;35655:3;35643:9;35634:7;35630:23;35626:33;35623:53;;;35672:1;35669;35662:12;35623:53;35698:22;;:::i;:::-;35749:9;35743:16;35736:5;35729:31;35805:2;35794:9;35790:18;35784:25;35818:32;35842:7;35818:32;:::i;:::-;35877:2;35866:14;;35859:31;35922:70;35984:7;35979:2;35964:18;;35922:70;:::i;:::-;35917:2;35906:14;;35899:94;35910:5;35498:525;-1:-1:-1;;;35498:525:141:o;36028:251::-;36098:6;36151:2;36139:9;36130:7;36126:23;36122:32;36119:52;;;36167:1;36164;36157:12;36119:52;36199:9;36193:16;36218:31;36243:5;36218:31;:::i","linkReferences":{},"immutableReferences":{"11366":[{"start":1693,"length":32},{"start":3043,"length":32},{"start":4964,"length":32},{"start":6163,"length":32},{"start":6941,"length":32},{"start":9341,"length":32},{"start":9558,"length":32},{"start":9805,"length":32},{"start":9852,"length":32},{"start":10099,"length":32}],"292":[{"start":2032,"length":32},{"start":5858,"length":32},{"start":7456,"length":32},{"start":7832,"length":32}]}},"methodIdentifiers":{"SEND()":"1f5e1334","SEND_AND_CALL()":"134d4f25","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","allowance(address,address)":"dd62ed3e","approvalRequired()":"9f68b964","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","buildMsgAndOptions((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),uint256)":"056d62de","combineOptions(uint32,uint16,bytes)":"bc70b354","credit(address,uint256,uint32)":"4dba701b","debit(uint256,uint256,uint32)":"54f52414","debitView(uint256,uint256,uint32)":"f0163023","decimalConversionRate()":"963efcaa","decimals()":"313ce567","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","isPeer(uint32,bytes32)":"5a0dfe4d","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":"bd815db0","lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"d045a0dc","mint(address,uint256)":"40c10f19","msgInspector()":"111ecdad","name()":"06fdde03","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","oftVersion()":"156a0d0f","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","preCrime()":"b731ea0a","quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))":"0d35b415","quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)":"3b6f743b","removeDust(uint256)":"c0779988","renounceOwnership()":"715018a6","send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)":"c7c7f5b3","setDelegate(address)":"ca5eb5e1","setEnforcedOptions((uint32,uint16,bytes)[])":"b98bd070","setMsgInspector(address)":"6fc1b31e","setPeer(uint32,bytes32)":"3400288b","setPreCrime(address)":"d4243885","sharedDecimals()":"857749b0","symbol()":"95d89b41","toLD(uint64)":"b3a5abeb","toSD(uint256)":"0e78842c","token()":"fc0c546a","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_lzEndpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalDecimals\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_msg_value\",\"type\":\"uint256\"}],\"name\":\"OFTAltCore__msg_value_not_zero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlySelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"name\":\"SimulationResult\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"}],\"name\":\"SlippageExceeded\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"EnforcedOptionSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inspector\",\"type\":\"address\"}],\"name\":\"MsgInspectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"name\":\"OFTReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"name\":\"OFTSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"preCrimeAddress\",\"type\":\"address\"}],\"name\":\"PreCrimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SEND_AND_CALL\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_amountToCreditLD\",\"type\":\"uint256\"}],\"name\":\"buildMsgAndOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_extraOptions\",\"type\":\"bytes\"}],\"name\":\"combineOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToCreditLD\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_srcEid\",\"type\":\"uint32\"}],\"name\":\"credit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountToSendLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minAmountToCreditLD\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"debit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountDebitedLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToCreditLD\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountToSendLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minAmountToCreditLD\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_dstEid\",\"type\":\"uint32\"}],\"name\":\"debitView\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountDebitedLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToCreditLD\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimalConversionRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"endpoint\",\"outputs\":[{\"internalType\":\"contract ILayerZeroEndpointV2\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"}],\"name\":\"enforcedOptions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"enforcedOption\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"isComposeMsgSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"isPeer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"internalType\":\"struct InboundPacket[]\",\"name\":\"_packets\",\"type\":\"tuple[]\"}],\"name\":\"lzReceiveAndRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"_origin\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"_guid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"lzReceiveSimulate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"nextNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oApp\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oAppVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"senderVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"receiverVersion\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oftVersion\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"},{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"}],\"name\":\"quoteOFT\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTLimit\",\"name\":\"oftLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"feeAmountLD\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct OFTFeeDetail[]\",\"name\":\"oftFeeDetails\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTReceipt\",\"name\":\"oftReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"_payInLzToken\",\"type\":\"bool\"}],\"name\":\"quoteSend\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"msgFee\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountLD\",\"type\":\"uint256\"}],\"name\":\"removeDust\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"dstEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraOptions\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"composeMsg\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"oftCmd\",\"type\":\"bytes\"}],\"internalType\":\"struct SendParam\",\"name\":\"_sendParam\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"_fee\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"send\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"guid\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nativeFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lzTokenFee\",\"type\":\"uint256\"}],\"internalType\":\"struct MessagingFee\",\"name\":\"fee\",\"type\":\"tuple\"}],\"internalType\":\"struct MessagingReceipt\",\"name\":\"msgReceipt\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amountSentLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountReceivedLD\",\"type\":\"uint256\"}],\"internalType\":\"struct OFTReceipt\",\"name\":\"oftReceipt\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"msgType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"internalType\":\"struct EnforcedOptionParam[]\",\"name\":\"_enforcedOptions\",\"type\":\"tuple[]\"}],\"name\":\"setEnforcedOptions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_msgInspector\",\"type\":\"address\"}],\"name\":\"setMsgInspector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"_peer\",\"type\":\"bytes32\"}],\"name\":\"setPeer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_preCrime\",\"type\":\"address\"}],\"name\":\"setPreCrime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sharedDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_amountSD\",\"type\":\"uint64\"}],\"name\":\"toLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountLD\",\"type\":\"uint256\"}],\"name\":\"toSD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"amountSD\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"details\":\"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.\",\"params\":{\"origin\":\"The origin information containing the source endpoint and sender address.\"},\"returns\":{\"_0\":\"Whether the path has been initialized.\"}},\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approvalRequired()\":{\"details\":\"In the case of OFT where the contract IS the token, approval is NOT required.\",\"returns\":{\"_0\":\"requiresApproval Needs approval of the underlying token implementation.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"combineOptions(uint32,uint16,bytes)\":{\"details\":\"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_extraOptions\":\"Additional options passed by the caller.\",\"_msgType\":\"The OAPP message type.\"},\"returns\":{\"_0\":\"options The combination of caller specified options AND enforced options.\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"details\":\"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.\",\"params\":{\"_sender\":\"The sender address.\"},\"returns\":{\"_0\":\"isSender Is a valid sender.\"}},\"isPeer(uint32,bytes32)\":{\"details\":\"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.\",\"params\":{\"_eid\":\"The endpoint ID to check.\",\"_peer\":\"The peer to check.\"},\"returns\":{\"_0\":\"Whether the peer passed is considered 'trusted' by the OApp.\"}},\"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.\",\"params\":{\"_executor\":\"The address of the executor for the received message.\",\"_extraData\":\"Additional arbitrary data provided by the corresponding executor.\",\"_guid\":\"The unique identifier for the received LayerZero message.\",\"_message\":\"The payload of the received message.\",\"_origin\":\"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message.\"}},\"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])\":{\"details\":\"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.\",\"params\":{\"_packets\":\"An array of InboundPacket objects representing received packets to be delivered.\"}},\"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)\":{\"details\":\"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.\",\"params\":{\"_executor\":\"The executor address for the packet.\",\"_extraData\":\"Additional data for the packet.\",\"_guid\":\"The unique identifier of the packet.\",\"_message\":\"The message payload of the packet.\",\"_origin\":\"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nextNonce(uint32,bytes32)\":{\"details\":\"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.\",\"returns\":{\"nonce\":\"The next nonce.\"}},\"oApp()\":{\"details\":\"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.\",\"returns\":{\"_0\":\"The address of the OApp contract.\"}},\"oAppVersion()\":{\"returns\":{\"receiverVersion\":\"The version of the OAppReceiver.sol implementation.\",\"senderVersion\":\"The version of the OAppSenderAlt.sol implementation.\"}},\"oftVersion()\":{\"details\":\"interfaceId: This specific interface ID is '0x02e49c2c'.version: Indicates a cross-chain compatible msg encoding with other OFTs.If a new feature is added to the OFT cross-chain msg encoding, the version will be incremented. ie. localOFT version(x,1) CAN send messages to remoteOFT version(x,1)\",\"returns\":{\"interfaceId\":\"The interface ID.\",\"version\":\"The version.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))\":{\"params\":{\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"oftFeeDetails\":\"The details of OFT fees.\",\"oftLimit\":\"The OFT limit information.\",\"oftReceipt\":\"The OFT receipt information.\"}},\"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)\":{\"details\":\"MessagingFee: LayerZero msg fee  - nativeFee: The native fee.  - lzTokenFee: The lzToken fee.\",\"params\":{\"_payInLzToken\":\"Flag indicating whether the caller is paying in the LZ token.\",\"_sendParam\":\"The parameters for the send() operation.\"},\"returns\":{\"msgFee\":\"The calculated LayerZero messaging fee from the send() operation.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)\":{\"details\":\"Executes the send operation.MessagingReceipt: LayerZero msg receipt  - guid: The unique identifier for the sent message.  - nonce: The nonce of the sent message.  - fee: The LayerZero fee incurred for the message.\",\"params\":{\"_fee\":\"The calculated fee for the send() operation.      - nativeFee: The native fee.      - lzTokenFee: The lzToken fee.\",\"_refundAddress\":\"The address to receive any excess funds.\",\"_sendParam\":\"The parameters for the send operation.\"},\"returns\":{\"msgReceipt\":\"The receipt for the send operation.\",\"oftReceipt\":\"The OFT receipt information.\"}},\"setDelegate(address)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.\",\"params\":{\"_delegate\":\"The address of the delegate to be set.\"}},\"setEnforcedOptions((uint32,uint16,bytes)[])\":{\"details\":\"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().\",\"params\":{\"_enforcedOptions\":\"An array of EnforcedOptionParam structures specifying enforced options.\"}},\"setMsgInspector(address)\":{\"details\":\"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.\",\"params\":{\"_msgInspector\":\"The address of the message inspector.\"}},\"setPeer(uint32,bytes32)\":{\"details\":\"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.\",\"params\":{\"_eid\":\"The endpoint ID.\",\"_peer\":\"The address of the peer to be associated with the corresponding endpoint.\"}},\"setPreCrime(address)\":{\"details\":\"Sets the preCrime contract address.\",\"params\":{\"_preCrime\":\"The address of the preCrime contract.\"}},\"sharedDecimals()\":{\"details\":\"Retrieves the shared decimals of the OFT.Sets an implicit cap on the amount of tokens, over uint64.max() will need some sort of outbound cap / totalSupply cap Lowest common decimal denominator between chains. Defaults to 6 decimal places to provide up to 18,446,744,073,709.551615 units (max uint64). For tokens exceeding this totalSupply(), they will need to override the sharedDecimals function with something smaller. ie. 4 sharedDecimals would be 1,844,674,407,370,955.1615\",\"returns\":{\"_0\":\"The shared decimals of the OFT.\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"token()\":{\"details\":\"Retrieves the address of the underlying ERC20 implementation.In the case of OFT, address(this) and erc20 are the same contract.\",\"returns\":{\"_0\":\"The address of the OFT token.\"}},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowInitializePath((uint32,bytes32,uint64))\":{\"notice\":\"Checks if the path initialization is allowed based on the provided origin.\"},\"approvalRequired()\":{\"notice\":\"Indicates whether the OFT contract requires approval of the 'token()' to send.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)\":{\"notice\":\"Indicates whether an address is an approved composeMsg sender to the Endpoint.\"},\"nextNonce(uint32,bytes32)\":{\"notice\":\"Retrieves the next nonce for a given source endpoint and sender address.\"},\"oAppVersion()\":{\"notice\":\"Retrieves the OAppAlt version information.\"},\"oftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the OFT.\"},\"peers(uint32)\":{\"notice\":\"Retrieves the peer (OApp) associated with a corresponding endpoint.\"},\"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))\":{\"notice\":\"Provides a quote for OFT-related operations.\"},\"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)\":{\"notice\":\"Provides a quote for the send() operation.\"},\"setDelegate(address)\":{\"notice\":\"Sets the delegate address for the OApp.\"},\"setPeer(uint32,bytes32)\":{\"notice\":\"Sets the peer address (OApp instance) for a corresponding endpoint.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/OFTAltMock.sol\":\"OFTAltMock\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"contracts/OFTAlt.sol\":{\"keccak256\":\"0xa55ede3d22bdb08d68fe5bfdb895f52c79ab6b4b30b9f73cd38b0a1ef6aa87e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ecba6eed8c2cdf7233da1d5cab72f834bef464c3800e0aac3482d75ddc180ac\",\"dweb:/ipfs/QmXzmy192HRnGzVAMNmq6jALnGGmSi8T5L1a5CwCb6e8NJ\"]},\"contracts/OFTAltCore.sol\":{\"keccak256\":\"0x35411d8b7208e05dc20d6c55f07311ad8b3c774449253e09a30aae1c8641e7bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8115bd2d5a02eabf38872b46e59df892c310b2fa5560e5ad4a606c17c6a2e6f4\",\"dweb:/ipfs/QmecqPx8QFxz9ZYLfTUFzxT2sXQmUcyUwRdxYKa6CCwuGK\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/oapp-alt-evm/contracts/oapp/OAppAlt.sol\":{\"keccak256\":\"0xbe02609f15066d507c857389271a1bc0935a201a91adc4402eac957a353975f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df92bda5b2954f96f8055a6f2abc5aa08ae4811eea2fd4516d539352230dbcea\",\"dweb:/ipfs/QmdX84h7wvKZ3aN5HPRPZTr8vwXXTVR6RY79KbiDSdModG\"]},\"node_modules/@layerzerolabs/oapp-alt-evm/contracts/oapp/OAppSenderAlt.sol\":{\"keccak256\":\"0x484947570c20054c628516bbfe2a7ce7dd7fa01cd8af094aaf6a2efefc11c449\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c6f9a7038e88b637f63dd6088e0344ee636985c6c9f3cf12fb3bfec6e8b6deb\",\"dweb:/ipfs/QmXAE2XQn7PH4DsiCMDfyAVacftrTUphfecN3oiVtPtpqy\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol\":{\"keccak256\":\"0x7ba6bb62fba7ee83451cfb0e727ddeef0e96b4388bd4e9ff0fc6ce103e1101c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfbd447f2e8a730bd46a14c3c3e6a0b2bf7446145579603a9793ba5ac1dd38b4\",\"dweb:/ipfs/QmZ4nx4iGrFmBHvYFgki5TXFdCHz4Co38hgdgwpRaM7NLs\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":{\"keccak256\":\"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e\",\"dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol\":{\"keccak256\":\"0x5358948017669c03e157f871d8c38e988f9004dbd0801ad3119d2487f0d40b0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d0f1bf32a80af9b99cd93fefa373dac5c27463351cc35f62b9c2439d5b9258\",\"dweb:/ipfs/Qmb81qoxzMwV3PkPANRvnXf4fJTsZ5sjJ8r2df9V2vhh6q\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"test/mocks/OFTAltMock.sol\":{\"keccak256\":\"0x71bcb72507cf9a8dd7846f2b7209400181939b110a5d2dae33d53aaef3fd96be\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://23df99efc2af309c440c89094d97e0f4dab9b3413a678b40e0bd2fc1e1e5c12c\",\"dweb:/ipfs/QmXq1Ky9SW7KBszfJGTJ8NXGXsHv9z3iwX4LsCLXe5Wvh3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_lzEndpoint","type":"address"},{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[],"type":"error","name":"InvalidLocalDecimals"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[],"type":"error","name":"NativeTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[{"internalType":"uint256","name":"_msg_value","type":"uint256"}],"type":"error","name":"OFTAltCore__msg_value_not_zero"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"OnlyEndpoint"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"type":"error","name":"OnlyPeer"},{"inputs":[],"type":"error","name":"OnlySelf"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"type":"error","name":"SimulationResult"},{"inputs":[{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"}],"type":"error","name":"SlippageExceeded"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false}],"type":"event","name":"EnforcedOptionSet","anonymous":false},{"inputs":[{"internalType":"address","name":"inspector","type":"address","indexed":false}],"type":"event","name":"MsgInspectorSet","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"srcEid","type":"uint32","indexed":false},{"internalType":"address","name":"toAddress","type":"address","indexed":true},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256","indexed":false}],"type":"event","name":"OFTReceived","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"guid","type":"bytes32","indexed":true},{"internalType":"uint32","name":"dstEid","type":"uint32","indexed":false},{"internalType":"address","name":"fromAddress","type":"address","indexed":true},{"internalType":"uint256","name":"amountSentLD","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256","indexed":false}],"type":"event","name":"OFTSent","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32","indexed":false},{"internalType":"bytes32","name":"peer","type":"bytes32","indexed":false}],"type":"event","name":"PeerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"preCrimeAddress","type":"address","indexed":false}],"type":"event","name":"PreCrimeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SEND_AND_CALL","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"stateMutability":"view","type":"function","name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}]},{"internalType":"uint256","name":"_amountToCreditLD","type":"uint256"}],"stateMutability":"view","type":"function","name":"buildMsgAndOptions","outputs":[{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"options","type":"bytes"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"stateMutability":"view","type":"function","name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amountToCreditLD","type":"uint256"},{"internalType":"uint32","name":"_srcEid","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"credit","outputs":[{"internalType":"uint256","name":"amountReceivedLD","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_amountToSendLD","type":"uint256"},{"internalType":"uint256","name":"_minAmountToCreditLD","type":"uint256"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"debit","outputs":[{"internalType":"uint256","name":"amountDebitedLD","type":"uint256"},{"internalType":"uint256","name":"amountToCreditLD","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_amountToSendLD","type":"uint256"},{"internalType":"uint256","name":"_minAmountToCreditLD","type":"uint256"},{"internalType":"uint32","name":"_dstEid","type":"uint32"}],"stateMutability":"view","type":"function","name":"debitView","outputs":[{"internalType":"uint256","name":"amountDebitedLD","type":"uint256"},{"internalType":"uint256","name":"amountToCreditLD","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimalConversionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"stateMutability":"view","type":"function","name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}]},{"inputs":[{"internalType":"struct Origin","name":"","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"view","type":"function","name":"isComposeMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceive"},{"inputs":[{"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]","components":[{"internalType":"struct Origin","name":"origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"lzReceiveAndRevert"},{"inputs":[{"internalType":"struct Origin","name":"_origin","type":"tuple","components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"lzReceiveSimulate"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"oftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}]}],"stateMutability":"view","type":"function","name":"quoteOFT","outputs":[{"internalType":"struct OFTLimit","name":"oftLimit","type":"tuple","components":[{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"uint256","name":"maxAmountLD","type":"uint256"}]},{"internalType":"struct OFTFeeDetail[]","name":"oftFeeDetails","type":"tuple[]","components":[{"internalType":"int256","name":"feeAmountLD","type":"int256"},{"internalType":"string","name":"description","type":"string"}]},{"internalType":"struct OFTReceipt","name":"oftReceipt","type":"tuple","components":[{"internalType":"uint256","name":"amountSentLD","type":"uint256"},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256"}]}]},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}]},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"stateMutability":"view","type":"function","name":"quoteSend","outputs":[{"internalType":"struct MessagingFee","name":"msgFee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"_amountLD","type":"uint256"}],"stateMutability":"view","type":"function","name":"removeDust","outputs":[{"internalType":"uint256","name":"amountLD","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct SendParam","name":"_sendParam","type":"tuple","components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}]},{"internalType":"struct MessagingFee","name":"_fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]},{"internalType":"address","name":"_refundAddress","type":"address"}],"stateMutability":"payable","type":"function","name":"send","outputs":[{"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple","components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"struct MessagingFee","name":"fee","type":"tuple","components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}]}]},{"internalType":"struct OFTReceipt","name":"oftReceipt","type":"tuple","components":[{"internalType":"uint256","name":"amountSentLD","type":"uint256"},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegate"},{"inputs":[{"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]","components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"setEnforcedOptions"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMsgInspector"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setPeer"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPreCrime"},{"inputs":[],"stateMutability":"view","type":"function","name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint64","name":"_amountSD","type":"uint64"}],"stateMutability":"view","type":"function","name":"toLD","outputs":[{"internalType":"uint256","name":"amountLD","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_amountLD","type":"uint256"}],"stateMutability":"view","type":"function","name":"toSD","outputs":[{"internalType":"uint64","name":"amountSD","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"details":"This indicates to the endpoint that the OApp has enabled msgs for this particular path to be received.This defaults to assuming if a peer has been set, its initialized. Can be overridden by the OApp if there is other logic to determine this.","params":{"origin":"The origin information containing the source endpoint and sender address."},"returns":{"_0":"Whether the path has been initialized."}},"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approvalRequired()":{"details":"In the case of OFT where the contract IS the token, approval is NOT required.","returns":{"_0":"requiresApproval Needs approval of the underlying token implementation."}},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"combineOptions(uint32,uint16,bytes)":{"details":"If there is an enforced lzReceive option: - {gasLimit: 200k, msg.value: 1 ether} AND a caller supplies a lzReceive option: {gasLimit: 100k, msg.value: 0.5 ether} - The resulting options will be {gasLimit: 300k, msg.value: 1.5 ether} when the message is executed on the remote lzReceive() function.This presence of duplicated options is handled off-chain in the verifier/executor.","params":{"_eid":"The endpoint ID.","_extraOptions":"Additional options passed by the caller.","_msgType":"The OAPP message type."},"returns":{"_0":"options The combination of caller specified options AND enforced options."}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"details":"_origin The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message._message The lzReceive payload.Applications can optionally choose to implement separate composeMsg senders that are NOT the bridging layer.The default sender IS the OAppReceiver implementer.","params":{"_sender":"The sender address."},"returns":{"_0":"isSender Is a valid sender."}},"isPeer(uint32,bytes32)":{"details":"Check if the peer is considered 'trusted' by the OApp.Enables OAppPreCrimeSimulator to check whether a potential Inbound Packet is from a trusted source.","params":{"_eid":"The endpoint ID to check.","_peer":"The peer to check."},"returns":{"_0":"Whether the peer passed is considered 'trusted' by the OApp."}},"lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Entry point for receiving messages or packets from the endpoint.Entry point for receiving msg/packet from the LayerZero endpoint.","params":{"_executor":"The address of the executor for the received message.","_extraData":"Additional arbitrary data provided by the corresponding executor.","_guid":"The unique identifier for the received LayerZero message.","_message":"The payload of the received message.","_origin":"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message."}},"lzReceiveAndRevert(((uint32,bytes32,uint64),uint32,address,bytes32,uint256,address,bytes,bytes)[])":{"details":"Interface for pre-crime simulations. Always reverts at the end with the simulation results.WARNING: MUST revert at the end with the simulation results.Gives the preCrime implementation the ability to mock sending packets to the lzReceive function, WITHOUT actually executing them.","params":{"_packets":"An array of InboundPacket objects representing received packets to be delivered."}},"lzReceiveSimulate((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":{"details":"Is effectively an internal function because msg.sender must be address(this). Allows resetting the call stack for 'internal' calls.","params":{"_executor":"The executor address for the packet.","_extraData":"Additional data for the packet.","_guid":"The unique identifier of the packet.","_message":"The message payload of the packet.","_origin":"The origin information containing the source endpoint and sender address.  - srcEid: The source chain endpoint ID.  - sender: The sender address on the src chain.  - nonce: The nonce of the message."}},"name()":{"details":"Returns the name of the token."},"nextNonce(uint32,bytes32)":{"details":"_srcEid The source endpoint ID._sender The sender address.The path nonce starts from 1. If 0 is returned it means that there is NO nonce ordered enforcement.Is required by the off-chain executor to determine the OApp expects msg execution is ordered.This is also enforced by the OApp.By default this is NOT enabled. ie. nextNonce is hardcoded to return 0.","returns":{"nonce":"The next nonce."}},"oApp()":{"details":"Retrieves the address of the OApp contract.The simulator contract is the base contract for the OApp by default.If the simulator is a separate contract, override this function.","returns":{"_0":"The address of the OApp contract."}},"oAppVersion()":{"returns":{"receiverVersion":"The version of the OAppReceiver.sol implementation.","senderVersion":"The version of the OAppSenderAlt.sol implementation."}},"oftVersion()":{"details":"interfaceId: This specific interface ID is '0x02e49c2c'.version: Indicates a cross-chain compatible msg encoding with other OFTs.If a new feature is added to the OFT cross-chain msg encoding, the version will be incremented. ie. localOFT version(x,1) CAN send messages to remoteOFT version(x,1)","returns":{"interfaceId":"The interface ID.","version":"The version."}},"owner()":{"details":"Returns the address of the current owner."},"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))":{"params":{"_sendParam":"The parameters for the send operation."},"returns":{"oftFeeDetails":"The details of OFT fees.","oftLimit":"The OFT limit information.","oftReceipt":"The OFT receipt information."}},"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)":{"details":"MessagingFee: LayerZero msg fee  - nativeFee: The native fee.  - lzTokenFee: The lzToken fee.","params":{"_payInLzToken":"Flag indicating whether the caller is paying in the LZ token.","_sendParam":"The parameters for the send() operation."},"returns":{"msgFee":"The calculated LayerZero messaging fee from the send() operation."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"send((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),(uint256,uint256),address)":{"details":"Executes the send operation.MessagingReceipt: LayerZero msg receipt  - guid: The unique identifier for the sent message.  - nonce: The nonce of the sent message.  - fee: The LayerZero fee incurred for the message.","params":{"_fee":"The calculated fee for the send() operation.      - nativeFee: The native fee.      - lzTokenFee: The lzToken fee.","_refundAddress":"The address to receive any excess funds.","_sendParam":"The parameters for the send operation."},"returns":{"msgReceipt":"The receipt for the send operation.","oftReceipt":"The OFT receipt information."}},"setDelegate(address)":{"details":"Only the owner/admin of the OApp can call this function.Provides the ability for a delegate to set configs, on behalf of the OApp, directly on the Endpoint contract.","params":{"_delegate":"The address of the delegate to be set."}},"setEnforcedOptions((uint32,uint16,bytes)[])":{"details":"Sets the enforced options for specific endpoint and message type combinations.Only the owner/admin of the OApp can call this function.Provides a way for the OApp to enforce things like paying for PreCrime, AND/OR minimum dst lzReceive gas amounts etc.These enforced options can vary as the potential options/execution on the remote may differ as per the msgType. eg. Amount of lzReceive() gas necessary to deliver a lzCompose() message adds overhead you dont want to pay if you are only making a standard LayerZero message ie. lzReceive() WITHOUT sendCompose().","params":{"_enforcedOptions":"An array of EnforcedOptionParam structures specifying enforced options."}},"setMsgInspector(address)":{"details":"Sets the message inspector address for the OFT.This is an optional contract that can be used to inspect both 'message' and 'options'.Set it to address(0) to disable it, or set it to a contract address to enable it.","params":{"_msgInspector":"The address of the message inspector."}},"setPeer(uint32,bytes32)":{"details":"Only the owner/admin of the OApp can call this function.Indicates that the peer is trusted to send LayerZero messages to this OApp.Set this to bytes32(0) to remove the peer address.Peer is a bytes32 to accommodate non-evm chains.","params":{"_eid":"The endpoint ID.","_peer":"The address of the peer to be associated with the corresponding endpoint."}},"setPreCrime(address)":{"details":"Sets the preCrime contract address.","params":{"_preCrime":"The address of the preCrime contract."}},"sharedDecimals()":{"details":"Retrieves the shared decimals of the OFT.Sets an implicit cap on the amount of tokens, over uint64.max() will need some sort of outbound cap / totalSupply cap Lowest common decimal denominator between chains. Defaults to 6 decimal places to provide up to 18,446,744,073,709.551615 units (max uint64). For tokens exceeding this totalSupply(), they will need to override the sharedDecimals function with something smaller. ie. 4 sharedDecimals would be 1,844,674,407,370,955.1615","returns":{"_0":"The shared decimals of the OFT."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"token()":{"details":"Retrieves the address of the underlying ERC20 implementation.In the case of OFT, address(this) and erc20 are the same contract.","returns":{"_0":"The address of the OFT token."}},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allowInitializePath((uint32,bytes32,uint64))":{"notice":"Checks if the path initialization is allowed based on the provided origin."},"approvalRequired()":{"notice":"Indicates whether the OFT contract requires approval of the 'token()' to send."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":{"notice":"Indicates whether an address is an approved composeMsg sender to the Endpoint."},"nextNonce(uint32,bytes32)":{"notice":"Retrieves the next nonce for a given source endpoint and sender address."},"oAppVersion()":{"notice":"Retrieves the OAppAlt version information."},"oftVersion()":{"notice":"Retrieves interfaceID and the version of the OFT."},"peers(uint32)":{"notice":"Retrieves the peer (OApp) associated with a corresponding endpoint."},"quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))":{"notice":"Provides a quote for OFT-related operations."},"quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)":{"notice":"Provides a quote for the send() operation."},"setDelegate(address)":{"notice":"Sets the delegate address for the OApp."},"setPeer(uint32,bytes32)":{"notice":"Sets the peer address (OApp instance) for a corresponding endpoint."}},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/OFTAltMock.sol":"OFTAltMock"},"evmVersion":"shanghai","libraries":{}},"sources":{"contracts/OFTAlt.sol":{"keccak256":"0xa55ede3d22bdb08d68fe5bfdb895f52c79ab6b4b30b9f73cd38b0a1ef6aa87e5","urls":["bzz-raw://8ecba6eed8c2cdf7233da1d5cab72f834bef464c3800e0aac3482d75ddc180ac","dweb:/ipfs/QmXzmy192HRnGzVAMNmq6jALnGGmSi8T5L1a5CwCb6e8NJ"],"license":"MIT"},"contracts/OFTAltCore.sol":{"keccak256":"0x35411d8b7208e05dc20d6c55f07311ad8b3c774449253e09a30aae1c8641e7bb","urls":["bzz-raw://8115bd2d5a02eabf38872b46e59df892c310b2fa5560e5ad4a606c17c6a2e6f4","dweb:/ipfs/QmecqPx8QFxz9ZYLfTUFzxT2sXQmUcyUwRdxYKa6CCwuGK"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/oapp-alt-evm/contracts/oapp/OAppAlt.sol":{"keccak256":"0xbe02609f15066d507c857389271a1bc0935a201a91adc4402eac957a353975f7","urls":["bzz-raw://df92bda5b2954f96f8055a6f2abc5aa08ae4811eea2fd4516d539352230dbcea","dweb:/ipfs/QmdX84h7wvKZ3aN5HPRPZTr8vwXXTVR6RY79KbiDSdModG"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-alt-evm/contracts/oapp/OAppSenderAlt.sol":{"keccak256":"0x484947570c20054c628516bbfe2a7ce7dd7fa01cd8af094aaf6a2efefc11c449","urls":["bzz-raw://6c6f9a7038e88b637f63dd6088e0344ee636985c6c9f3cf12fb3bfec6e8b6deb","dweb:/ipfs/QmXAE2XQn7PH4DsiCMDfyAVacftrTUphfecN3oiVtPtpqy"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol":{"keccak256":"0x7ba6bb62fba7ee83451cfb0e727ddeef0e96b4388bd4e9ff0fc6ce103e1101c8","urls":["bzz-raw://cfbd447f2e8a730bd46a14c3c3e6a0b2bf7446145579603a9793ba5ac1dd38b4","dweb:/ipfs/QmZ4nx4iGrFmBHvYFgki5TXFdCHz4Co38hgdgwpRaM7NLs"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol":{"keccak256":"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5","urls":["bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e","dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol":{"keccak256":"0x5358948017669c03e157f871d8c38e988f9004dbd0801ad3119d2487f0d40b0b","urls":["bzz-raw://c7d0f1bf32a80af9b99cd93fefa373dac5c27463351cc35f62b9c2439d5b9258","dweb:/ipfs/Qmb81qoxzMwV3PkPANRvnXf4fJTsZ5sjJ8r2df9V2vhh6q"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31","urls":["bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09","dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"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/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"test/mocks/OFTAltMock.sol":{"keccak256":"0x71bcb72507cf9a8dd7846f2b7209400181939b110a5d2dae33d53aaef3fd96be","urls":["bzz-raw://23df99efc2af309c440c89094d97e0f4dab9b3413a678b40e0bd2fc1e1e5c12c","dweb:/ipfs/QmXq1Ky9SW7KBszfJGTJ8NXGXsHv9z3iwX4LsCLXe5Wvh3"],"license":"UNLICENSED"}},"version":1},"id":140}