diff --git a/.env.template b/.env.template index f06d8e55..d79c569a 100644 --- a/.env.template +++ b/.env.template @@ -3,7 +3,8 @@ # =========================================== # Set to true in CI environments CI=false - +# Foundry configuration for OpenZeppelin Lib +FOUNDRY_OUT=artifacts # =========================================== # DEPLOYMENT CONFIGURATION # =========================================== @@ -41,4 +42,4 @@ RECIPIENT_ADDRESS= # =========================================== # ADMIN CONFIGURATION # =========================================== -NEW_DEFAULT_ADMIN= \ No newline at end of file +NEW_DEFAULT_ADMIN= diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 40415952..324ef7df 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -30,6 +30,7 @@ jobs: runs-on: ubuntu-latest env: CI: true + FOUNDRY_OUT: artifacts permissions: contents: write # Required to commit deployment files. environment: ${{ inputs.network }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1e3bdcba..e3a06cbb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,6 +17,7 @@ concurrency: env: FOUNDRY_PROFILE: ci + FOUNDRY_OUT: artifacts jobs: build-and-test: @@ -40,7 +41,7 @@ jobs: run: forge fmt --check - name: Run Forge build - run: forge build && forge build './src' --sizes + run: forge clean && forge build && forge build './src' --sizes - name: Run Foundry coverage env: diff --git a/.github/workflows/verify-artifacts.yml b/.github/workflows/verify-artifacts.yml new file mode 100644 index 00000000..f1a4c9c7 --- /dev/null +++ b/.github/workflows/verify-artifacts.yml @@ -0,0 +1,41 @@ +name: Verify Build Artifacts + +on: + pull_request: + paths: + - 'src/**/*.sol' + - '.github/workflows/verify-artifacts.yml' + +env: + FOUNDRY_PROFILE: ci + +jobs: + verify-artifacts: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: stable + cache: true + + - name: Build contracts + run: forge build + + - name: Check artifacts are up to date + run: | + if ! git diff --quiet HEAD -- artifacts/; then + echo "❌ Build artifacts in artifacts/ directory are not up to date!" + echo "" + git diff --name-only HEAD -- artifacts/ + echo "" + echo "Please run 'forge build' locally and commit the updated artifacts." + exit 1 + fi + echo "✅ Build artifacts are up to date!" diff --git a/.gitignore b/.gitignore index fdc69fd4..a5132dd5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ # Compiler files cache/ -out/ # Ignores development broadcast logs !/broadcast @@ -19,3 +18,13 @@ broadcast/*/*/run-*.json /coverage lcov.info lcov.src.info + +# Ignore all artifacts except some files. +!/artifacts/ +/artifacts/** +!/artifacts/*IexecLayerZeroBridge.sol +!/artifacts/*IexecLayerZeroBridge.sol/* +!/artifacts/*RLCCrosschainToken.sol +!/artifacts/*RLCCrosschainToken.sol/* +!/artifacts/*RLCLiquidityUnifier.sol +!/artifacts/*RLCLiquidityUnifier.sol/* diff --git a/artifacts/IIexecLayerZeroBridge.sol/IIexecLayerZeroBridge.json b/artifacts/IIexecLayerZeroBridge.sol/IIexecLayerZeroBridge.json new file mode 100644 index 00000000..272bc6e8 --- /dev/null +++ b/artifacts/IIexecLayerZeroBridge.sol/IIexecLayerZeroBridge.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseOutboundTransfers","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpauseOutboundTransfers","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"OperationNotAllowed","inputs":[{"name":"message","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"pause()":"8456cb59","pauseOutboundTransfers()":"86843aa1","unpause()":"3f4ba83a","unpauseOutboundTransfers()":"1657c3b8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"OperationNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseOutboundTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseOutboundTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"pause()\":{\"details\":\"Should only be callable by authorized accounts: PAUSER_ROLE.\"},\"pauseOutboundTransfers()\":{\"details\":\"Should only be callable by authorized accounts: PAUSER_ROLE.\"},\"unpause()\":{\"details\":\"Should only be callable by authorized accounts: PAUSER_ROLE.\"},\"unpauseOutboundTransfers()\":{\"details\":\"Should only be callable by authorized accounts: PAUSER_ROLE.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"pause()\":{\"notice\":\"Pauses the contract, disabling `_credit` & `_debit` functions.\"},\"pauseOutboundTransfers()\":{\"notice\":\"Pauses only the `_debit` function, allowing `_credit` to still work.\"},\"unpause()\":{\"notice\":\"Unpauses the contract, re-enabling previously disabled functions (`_credit` & `_debit`).\"},\"unpauseOutboundTransfers()\":{\"notice\":\"Unpauses the `_debit` function, allowing outbound transfers again.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IIexecLayerZeroBridge.sol\":\"IIexecLayerZeroBridge\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@createx/contracts/=lib/createx/src/\",\":@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/\",\":@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/\",\":@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/\",\":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/\",\":@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/\",\":@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/\",\":@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":createx/=lib/createx/src/\",\":devtools/=lib/devtools/packages/toolbox-foundry/src/\",\":ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":layerzero-v1/=lib/layerzero-v1/contracts/\",\":layerzero-v2/=lib/layerzero-v2/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/\",\":rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/\",\":solady/=lib/createx/lib/solady/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"src/interfaces/IIexecLayerZeroBridge.sol\":{\"keccak256\":\"0x970b8202b88c17d02f048bdd4d7a48a99dfce8c935df7bc9997dbb4788613a77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8a83809f4a060d53937dc4c066c9d791e8e41ba4f732566382494bd8abafed5e\",\"dweb:/ipfs/QmTGqx1WrJPEbujozYHttaivxSAqFFbbM1PLEFNAVLspTZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"message","type":"string"}],"type":"error","name":"OperationNotAllowed"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseOutboundTransfers"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpauseOutboundTransfers"}],"devdoc":{"kind":"dev","methods":{"pause()":{"details":"Should only be callable by authorized accounts: PAUSER_ROLE."},"pauseOutboundTransfers()":{"details":"Should only be callable by authorized accounts: PAUSER_ROLE."},"unpause()":{"details":"Should only be callable by authorized accounts: PAUSER_ROLE."},"unpauseOutboundTransfers()":{"details":"Should only be callable by authorized accounts: PAUSER_ROLE."}},"version":1},"userdoc":{"kind":"user","methods":{"pause()":{"notice":"Pauses the contract, disabling `_credit` & `_debit` functions."},"pauseOutboundTransfers()":{"notice":"Pauses only the `_debit` function, allowing `_credit` to still work."},"unpause()":{"notice":"Unpauses the contract, re-enabling previously disabled functions (`_credit` & `_debit`)."},"unpauseOutboundTransfers()":{"notice":"Unpauses the `_debit` function, allowing outbound transfers again."}},"version":1}},"settings":{"remappings":["@createx/contracts/=lib/createx/src/","@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/","@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/","@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/","@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/","@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/","@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","createx/=lib/createx/src/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","layerzero-v1/=lib/layerzero-v1/contracts/","layerzero-v2/=lib/layerzero-v2/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/","rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/","solady/=lib/createx/lib/solady/","solidity-bytes-utils/=lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IIexecLayerZeroBridge.sol":"IIexecLayerZeroBridge"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IIexecLayerZeroBridge.sol":{"keccak256":"0x970b8202b88c17d02f048bdd4d7a48a99dfce8c935df7bc9997dbb4788613a77","urls":["bzz-raw://8a83809f4a060d53937dc4c066c9d791e8e41ba4f732566382494bd8abafed5e","dweb:/ipfs/QmTGqx1WrJPEbujozYHttaivxSAqFFbbM1PLEFNAVLspTZ"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/interfaces/IIexecLayerZeroBridge.sol","id":88307,"exportedSymbols":{"IIexecLayerZeroBridge":[88306]},"nodeType":"SourceUnit","src":"39:979:192","nodes":[{"id":88285,"nodeType":"PragmaDirective","src":"39:24:192","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":88306,"nodeType":"ContractDefinition","src":"65:952:192","nodes":[{"id":88289,"nodeType":"ErrorDefinition","src":"103:42:192","nodes":[],"errorSelector":"67f2b6d3","name":"OperationNotAllowed","nameLocation":"109:19:192","parameters":{"id":88288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88287,"mutability":"mutable","name":"message","nameLocation":"136:7:192","nodeType":"VariableDeclaration","scope":88289,"src":"129:14:192","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":88286,"name":"string","nodeType":"ElementaryTypeName","src":"129:6:192","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"128:16:192"}},{"id":88293,"nodeType":"FunctionDefinition","src":"318:26:192","nodes":[],"documentation":{"id":88290,"nodeType":"StructuredDocumentation","src":"151:162:192","text":" @notice Pauses the contract, disabling `_credit` & `_debit` functions.\n @dev Should only be callable by authorized accounts: PAUSER_ROLE."},"functionSelector":"8456cb59","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"327:5:192","parameters":{"id":88291,"nodeType":"ParameterList","parameters":[],"src":"332:2:192"},"returnParameters":{"id":88292,"nodeType":"ParameterList","parameters":[],"src":"343:0:192"},"scope":88306,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":88297,"nodeType":"FunctionDefinition","src":"543:28:192","nodes":[],"documentation":{"id":88294,"nodeType":"StructuredDocumentation","src":"350:188:192","text":" @notice Unpauses the contract, re-enabling previously disabled functions (`_credit` & `_debit`).\n @dev Should only be callable by authorized accounts: PAUSER_ROLE."},"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"552:7:192","parameters":{"id":88295,"nodeType":"ParameterList","parameters":[],"src":"559:2:192"},"returnParameters":{"id":88296,"nodeType":"ParameterList","parameters":[],"src":"570:0:192"},"scope":88306,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":88301,"nodeType":"FunctionDefinition","src":"750:43:192","nodes":[],"documentation":{"id":88298,"nodeType":"StructuredDocumentation","src":"577:168:192","text":" @notice Pauses only the `_debit` function, allowing `_credit` to still work.\n @dev Should only be callable by authorized accounts: PAUSER_ROLE."},"functionSelector":"86843aa1","implemented":false,"kind":"function","modifiers":[],"name":"pauseOutboundTransfers","nameLocation":"759:22:192","parameters":{"id":88299,"nodeType":"ParameterList","parameters":[],"src":"781:2:192"},"returnParameters":{"id":88300,"nodeType":"ParameterList","parameters":[],"src":"792:0:192"},"scope":88306,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":88305,"nodeType":"FunctionDefinition","src":"970:45:192","nodes":[],"documentation":{"id":88302,"nodeType":"StructuredDocumentation","src":"799:166:192","text":" @notice Unpauses the `_debit` function, allowing outbound transfers again.\n @dev Should only be callable by authorized accounts: PAUSER_ROLE."},"functionSelector":"1657c3b8","implemented":false,"kind":"function","modifiers":[],"name":"unpauseOutboundTransfers","nameLocation":"979:24:192","parameters":{"id":88303,"nodeType":"ParameterList","parameters":[],"src":"1003:2:192"},"returnParameters":{"id":88304,"nodeType":"ParameterList","parameters":[],"src":"1014:0:192"},"scope":88306,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IIexecLayerZeroBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[88306],"name":"IIexecLayerZeroBridge","nameLocation":"75:21:192","scope":88307,"usedErrors":[88289],"usedEvents":[]}],"license":"Apache-2.0"},"id":192} \ No newline at end of file diff --git a/artifacts/IRLCLiquidityUnifier.sol/IRLCLiquidityUnifier.json b/artifacts/IRLCLiquidityUnifier.sol/IRLCLiquidityUnifier.json new file mode 100644 index 00000000..c7008e7f --- /dev/null +++ b/artifacts/IRLCLiquidityUnifier.sol/IRLCLiquidityUnifier.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"RLC_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20Metadata"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"error","name":"ERC7802InvalidFromAddress","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"ERC7802InvalidToAddress","inputs":[{"name":"addr","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"RLC_TOKEN()":"b25dd572","decimals()":"313ce567"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"ERC7802InvalidFromAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"ERC7802InvalidToAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RLC_TOKEN\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the RLC Liquidity Unifier contract. This interface defines the contract that is used to centralize the RLC liquidity across different bridges.\",\"errors\":{\"ERC7802InvalidFromAddress(address)\":[{\"details\":\"Error indicating that the provided 'from' address is invalid for ERC-7802 operations.\",\"params\":{\"addr\":\"The invalid address.\"}}],\"ERC7802InvalidToAddress(address)\":[{\"details\":\"Error indicating that the provided 'to' address is invalid for ERC-7802 operations.\",\"params\":{\"addr\":\"The invalid address.\"}}]},\"kind\":\"dev\",\"methods\":{\"RLC_TOKEN()\":{\"details\":\"Returns the address of the RLC token contract\",\"returns\":{\"_0\":\"The contract address of the RLC token\"}},\"decimals()\":{\"details\":\"Returns the number of decimal places used by the token\",\"returns\":{\"_0\":\"The number of decimal places (typically 9 for RLC)\"}}},\"title\":\"IRLCLiquidityUnifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IRLCLiquidityUnifier.sol\":\"IRLCLiquidityUnifier\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@createx/contracts/=lib/createx/src/\",\":@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/\",\":@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/\",\":@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/\",\":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/\",\":@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/\",\":@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/\",\":@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":createx/=lib/createx/src/\",\":devtools/=lib/devtools/packages/toolbox-foundry/src/\",\":ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":layerzero-v1/=lib/layerzero-v1/contracts/\",\":layerzero-v2/=lib/layerzero-v2/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/\",\":rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/\",\":solady/=lib/createx/lib/solady/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xfe37358f223eddd65d61bb62b0b7bdb69d7101b5ec8d484292b8c1583a153b8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28dd43f30af3c12ae0fc08dd031b1250e906ef3c95f63f30fac6fd15aee2a662\",\"dweb:/ipfs/QmUkSyWsSRx36w1ti7U6qnGnQgJq16wpMhjeJrnyn9AXwG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xbaffa0bcc92adf28a53cc3b68551fc3632cb8f849a0028cb8d5c06e4677715e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32e6f8f6b2e883c85e6a602c0882d9962ce2f92406961244e86cd974df815912\",\"dweb:/ipfs/Qmahvx6fPpecicq1aUE1JihCxV5ep1bfuPukzrxa8Ub5PS\"]},\"src/interfaces/IRLCLiquidityUnifier.sol\":{\"keccak256\":\"0x4898c431b37bef3f4792707fcacfb28f8c5ae348fa959495a2e64ff203ce4522\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b859d6efd0a6729a216ed8d6f579982c8098a419183abd6bbef14b738ccdd93a\",\"dweb:/ipfs/QmfPojN6ynQABbYY9RZFDdaMLemZwT6JH1e6EQuQ3DF7uC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"ERC7802InvalidFromAddress"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"ERC7802InvalidToAddress"},{"inputs":[],"stateMutability":"view","type":"function","name":"RLC_TOKEN","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{"RLC_TOKEN()":{"details":"Returns the address of the RLC token contract","returns":{"_0":"The contract address of the RLC token"}},"decimals()":{"details":"Returns the number of decimal places used by the token","returns":{"_0":"The number of decimal places (typically 9 for RLC)"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@createx/contracts/=lib/createx/src/","@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/","@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/","@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/","@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/","@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/","@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","createx/=lib/createx/src/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","layerzero-v1/=lib/layerzero-v1/contracts/","layerzero-v2/=lib/layerzero-v2/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/","rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/","solady/=lib/createx/lib/solady/","solidity-bytes-utils/=lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IRLCLiquidityUnifier.sol":"IRLCLiquidityUnifier"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xfe37358f223eddd65d61bb62b0b7bdb69d7101b5ec8d484292b8c1583a153b8a","urls":["bzz-raw://28dd43f30af3c12ae0fc08dd031b1250e906ef3c95f63f30fac6fd15aee2a662","dweb:/ipfs/QmUkSyWsSRx36w1ti7U6qnGnQgJq16wpMhjeJrnyn9AXwG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xbaffa0bcc92adf28a53cc3b68551fc3632cb8f849a0028cb8d5c06e4677715e9","urls":["bzz-raw://32e6f8f6b2e883c85e6a602c0882d9962ce2f92406961244e86cd974df815912","dweb:/ipfs/Qmahvx6fPpecicq1aUE1JihCxV5ep1bfuPukzrxa8Ub5PS"],"license":"MIT"},"src/interfaces/IRLCLiquidityUnifier.sol":{"keccak256":"0x4898c431b37bef3f4792707fcacfb28f8c5ae348fa959495a2e64ff203ce4522","urls":["bzz-raw://b859d6efd0a6729a216ed8d6f579982c8098a419183abd6bbef14b738ccdd93a","dweb:/ipfs/QmfPojN6ynQABbYY9RZFDdaMLemZwT6JH1e6EQuQ3DF7uC"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/interfaces/IRLCLiquidityUnifier.sol","id":88336,"exportedSymbols":{"IERC20Metadata":[72308],"IRLCLiquidityUnifier":[88335]},"nodeType":"SourceUnit","src":"111:1178:193","nodes":[{"id":88308,"nodeType":"PragmaDirective","src":"111:24:193","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":88310,"nodeType":"ImportDirective","src":"137:97:193","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":88336,"sourceUnit":72309,"symbolAliases":[{"foreign":{"id":88309,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72308,"src":"145:14:193","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88335,"nodeType":"ContractDefinition","src":"449:839:193","nodes":[{"id":88316,"nodeType":"ErrorDefinition","src":"638:44:193","nodes":[],"documentation":{"id":88312,"nodeType":"StructuredDocumentation","src":"486:147:193","text":" @dev Error indicating that the provided 'to' address is invalid for ERC-7802 operations.\n @param addr The invalid address."},"errorSelector":"a5e11257","name":"ERC7802InvalidToAddress","nameLocation":"644:23:193","parameters":{"id":88315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88314,"mutability":"mutable","name":"addr","nameLocation":"676:4:193","nodeType":"VariableDeclaration","scope":88316,"src":"668:12:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88313,"name":"address","nodeType":"ElementaryTypeName","src":"668:7:193","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"667:14:193"}},{"id":88321,"nodeType":"ErrorDefinition","src":"842:46:193","nodes":[],"documentation":{"id":88317,"nodeType":"StructuredDocumentation","src":"688:149:193","text":" @dev Error indicating that the provided 'from' address is invalid for ERC-7802 operations.\n @param addr The invalid address."},"errorSelector":"7d37178d","name":"ERC7802InvalidFromAddress","nameLocation":"848:25:193","parameters":{"id":88320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88319,"mutability":"mutable","name":"addr","nameLocation":"882:4:193","nodeType":"VariableDeclaration","scope":88321,"src":"874:12:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88318,"name":"address","nodeType":"ElementaryTypeName","src":"874:7:193","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"873:14:193"}},{"id":88328,"nodeType":"FunctionDefinition","src":"1021:60:193","nodes":[],"documentation":{"id":88322,"nodeType":"StructuredDocumentation","src":"894:122:193","text":" @dev Returns the address of the RLC token contract\n @return The contract address of the RLC token"},"functionSelector":"b25dd572","implemented":false,"kind":"function","modifiers":[],"name":"RLC_TOKEN","nameLocation":"1030:9:193","parameters":{"id":88323,"nodeType":"ParameterList","parameters":[],"src":"1039:2:193"},"returnParameters":{"id":88327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":88328,"src":"1065:14:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"},"typeName":{"id":88325,"nodeType":"UserDefinedTypeName","pathNode":{"id":88324,"name":"IERC20Metadata","nameLocations":["1065:14:193"],"nodeType":"IdentifierPath","referencedDeclaration":72308,"src":"1065:14:193"},"referencedDeclaration":72308,"src":"1065:14:193","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}},"visibility":"internal"}],"src":"1064:16:193"},"scope":88335,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":88334,"nodeType":"FunctionDefinition","src":"1236:50:193","nodes":[],"documentation":{"id":88329,"nodeType":"StructuredDocumentation","src":"1087:144:193","text":" @dev Returns the number of decimal places used by the token\n @return The number of decimal places (typically 9 for RLC)"},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"1245:8:193","parameters":{"id":88330,"nodeType":"ParameterList","parameters":[],"src":"1253:2:193"},"returnParameters":{"id":88333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":88334,"src":"1279:5:193","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":88331,"name":"uint8","nodeType":"ElementaryTypeName","src":"1279:5:193","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1278:7:193"},"scope":88335,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IRLCLiquidityUnifier","contractDependencies":[],"contractKind":"interface","documentation":{"id":88311,"nodeType":"StructuredDocumentation","src":"236:212:193","text":" @title IRLCLiquidityUnifier\n @dev Interface for the RLC Liquidity Unifier contract.\n This interface defines the contract that is used to centralize the RLC liquidity\n across different bridges."},"fullyImplemented":false,"linearizedBaseContracts":[88335],"name":"IRLCLiquidityUnifier","nameLocation":"459:20:193","scope":88336,"usedErrors":[88316,88321],"usedEvents":[]}],"license":"Apache-2.0"},"id":193} \ No newline at end of file diff --git a/artifacts/IexecLayerZeroBridge.sol/IexecLayerZeroBridge.json b/artifacts/IexecLayerZeroBridge.sol/IexecLayerZeroBridge.json new file mode 100644 index 00000000..493c4f7c --- /dev/null +++ b/artifacts/IexecLayerZeroBridge.sol/IexecLayerZeroBridge.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"approvalRequired_","type":"bool","internalType":"bool"},{"name":"bridgeableToken","type":"address","internalType":"address"},{"name":"lzEndpoint","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGEABLE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PAUSER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"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":"UPGRADER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"acceptDefaultAdminTransfer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"approvalRequired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"beginDefaultAdminTransfer","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelDefaultAdminTransfer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeDefaultAdminDelay","inputs":[{"name":"newDelay","type":"uint48","internalType":"uint48"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"decimalConversionRate","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"defaultAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultAdminDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"defaultAdminDelayIncreaseWait","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"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":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialAdmin","type":"address","internalType":"address"},{"name":"initialUpgrader","type":"address","internalType":"address"},{"name":"initialPauser","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"msgInspector","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"outboundTransfersPaused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseOutboundTransfers","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseStatus","inputs":[],"outputs":[{"name":"fullyPaused","type":"bool","internalType":"bool"},{"name":"onlyOutboundTransfersPaused","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"pendingDefaultAdmin","inputs":[],"outputs":[{"name":"newAdmin","type":"address","internalType":"address"},{"name":"schedule","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"pendingDefaultAdminDelay","inputs":[],"outputs":[{"name":"newDelay","type":"uint48","internalType":"uint48"},{"name":"schedule","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"preCrime","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollbackDefaultAdminDelay","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":"pure"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpauseOutboundTransfers","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"DefaultAdminDelayChangeCanceled","inputs":[],"anonymous":false},{"type":"event","name":"DefaultAdminDelayChangeScheduled","inputs":[{"name":"newDelay","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"effectSchedule","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"DefaultAdminTransferCanceled","inputs":[],"anonymous":false},{"type":"event","name":"DefaultAdminTransferScheduled","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"acceptSchedule","type":"uint48","indexed":false,"internalType":"uint48"}],"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":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"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":"OutboundTransfersPaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OutboundTransfersUnpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"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":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"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":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlEnforcedDefaultAdminDelay","inputs":[{"name":"schedule","type":"uint48","internalType":"uint48"}]},{"type":"error","name":"AccessControlEnforcedDefaultAdminRules","inputs":[]},{"type":"error","name":"AccessControlInvalidDefaultAdmin","inputs":[{"name":"defaultAdmin","type":"address","internalType":"address"}]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnforcedOutboundTransfersPause","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedOutboundTransfersPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"InvalidInitialization","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":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"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":"OperationNotAllowed","inputs":[{"name":"message","type":"string","internalType":"string"}]},{"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":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"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"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6101206040523060805234801562000015575f80fd5b5060405162004c5238038062004c528339810160408190526200003891620001f9565b816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000075573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200009b919062000245565b6001600160a01b03821660a05281600660ff83161015620000cf576040516301e9714b60e41b815260040160405180910390fd5b620000dc60068362000282565b620000e990600a62000397565b60c05250620000f9905062000112565b506001600160a01b031660e052151561010052620003a7565b5f6200011d620001b3565b805490915068010000000000000000900460ff1615620001505760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b80516001600160a01b0381168114620001f4575f80fd5b919050565b5f805f606084860312156200020c575f80fd5b835180151581146200021c575f80fd5b92506200022c60208501620001dd565b91506200023c60408501620001dd565b90509250925092565b5f6020828403121562000256575f80fd5b815160ff8116811462000267575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b60ff8281168282160390811115620001d757620001d76200026e565b600181815b80851115620002de57815f1904821115620002c257620002c26200026e565b80851615620002d057918102915b93841c9390800290620002a3565b509250929050565b5f82620002f657506001620001d7565b816200030457505f620001d7565b81600181146200031d5760028114620003285762000348565b6001915050620001d7565b60ff8411156200033c576200033c6200026e565b50506001821b620001d7565b5060208310610133831016604e8410600b84101617156200036d575081810a620001d7565b6200037983836200029e565b805f19048211156200038f576200038f6200026e565b029392505050565b5f6200026760ff841683620002e6565b60805160a05160c05160e051610100516147e1620004715f395f81816108d501528181611d10015261286001525f818161085301528181611d3601528181611d5a0152818161288a015281816128ac015281816129660152612d0201525f81816108a501528181612c1f01528181612c910152612e5f01525f81816106ec01528181610d3001528181611aef01528181611f640152818161227e015281816129f8015281816132c9015261338001525f81816123aa015281816123d3015261253401526147e15ff3fe6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212200fee03f24fa0ed6bdfb5fe37c908225816911b7fc06c7d740d917b94227547e264736f6c63430008170033","sourceMap":"2992:12760:190:-:0;;;1171:4:114;1128:48;;4522:298:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4645:15;-1:-1:-1;;;;;4630:40:190;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:42:2;;;;;5633:1:21;3326:33:::1;::::0;::::1;;3322:68;;;3368:22;;-1:-1:-1::0;;;3368:22:21::1;;;;;;;;;;;3322:68;3431:33;5633:1:::0;3431:14;:33:::1;:::i;:::-;3424:41;::::0;:2:::1;:41;:::i;:::-;3400:65;::::0;-1:-1:-1;4700:22:190::1;::::0;-1:-1:-1;4700:20:190::1;:22::i;:::-;-1:-1:-1::0;;;;;;4732:34:190::1;;::::0;4776:37:::1;;;::::0;2992:12760;;7709:422:113;7824:30;7857:26;:24;:26::i;:::-;7898:15;;;;-1:-1:-1;7898:15:113;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:113;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:113;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:113;-1:-1:-1;;;;;8033:33:113;;;;;8085:29;;2735:50:212;;;8085:29:113;;2723:2:212;2708:18;8085:29:113;;;;;;;7979:146;7758:373;7709:422::o;9071:205::-;9129:30;;3147:66;9186:27;9171:42;9071:205;-1:-1:-1;;9071:205:113:o;14:177:212:-;93:13;;-1:-1:-1;;;;;135:31:212;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:447::-;281:6;289;297;350:2;338:9;329:7;325:23;321:32;318:52;;;366:1;363;356:12;318:52;398:9;392:16;451:5;444:13;437:21;430:5;427:32;417:60;;473:1;470;463:12;417:60;496:5;-1:-1:-1;520:49:212;565:2;550:18;;520:49;:::i;:::-;510:59;;588:49;633:2;622:9;618:18;588:49;:::i;:::-;578:59;;196:447;;;;;:::o;648:273::-;716:6;769:2;757:9;748:7;744:23;740:32;737:52;;;785:1;782;775:12;737:52;817:9;811:16;867:4;860:5;856:16;849:5;846:27;836:55;;887:1;884;877:12;836:55;910:5;648:273;-1:-1:-1;;;648:273:212:o;926:127::-;987:10;982:3;978:20;975:1;968:31;1018:4;1015:1;1008:15;1042:4;1039:1;1032:15;1058:151;1148:4;1141:12;;;1127;;;1123:31;;1166:14;;1163:40;;;1183:18;;:::i;1214:416::-;1303:1;1340:5;1303:1;1354:270;1375:7;1365:8;1362:21;1354:270;;;1434:4;1430:1;1426:6;1422:17;1416:4;1413:27;1410:53;;;1443:18;;:::i;:::-;1493:7;1483:8;1479:22;1476:55;;;1513:16;;;;1476:55;1592:22;;;;1552:15;;;;1354:270;;;1358:3;1214:416;;;;;:::o;1635:806::-;1684:5;1714:8;1704:80;;-1:-1:-1;1755:1:212;1769:5;;1704:80;1803:4;1793:76;;-1:-1:-1;1840:1:212;1854:5;;1793:76;1885:4;1903:1;1898:59;;;;1971:1;1966:130;;;;1878:218;;1898:59;1928:1;1919:10;;1942:5;;;1966:130;2003:3;1993:8;1990:17;1987:43;;;2010:18;;:::i;:::-;-1:-1:-1;;2066:1:212;2052:16;;2081:5;;1878:218;;2180:2;2170:8;2167:16;2161:3;2155:4;2152:13;2148:36;2142:2;2132:8;2129:16;2124:2;2118:4;2115:12;2111:35;2108:77;2105:159;;;-1:-1:-1;2217:19:212;;;2249:5;;2105:159;2296:34;2321:8;2315:4;2296:34;:::i;:::-;2366:6;2362:1;2358:6;2354:19;2345:7;2342:32;2339:58;;;2377:18;;:::i;:::-;2415:20;;1635:806;-1:-1:-1;;;1635:806:212:o;2446:140::-;2504:5;2533:47;2574:4;2564:8;2560:19;2554:4;2533:47;:::i;2591:200::-;2992:12760:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106103b3575f3560e01c806384ef8ffc116101e9578063bd815db011610108578063d42438851161009d578063f2fde38b1161006d578063f2fde38b14610b6b578063f72c0d8b14610b8a578063fc0c546a14610bbd578063ff7bd03d14610bd1575f80fd5b8063d424388514610af9578063d547741f14610b18578063d602b9fd14610b37578063e63ab1e914610b4b575f80fd5b8063cc8463c8116100d8578063cc8463c814610a84578063cefc142914610a98578063cf6eefb714610aac578063d045a0dc14610ae6575f80fd5b8063bd815db014610a12578063c0c53b8b14610a25578063c7c7f5b314610a44578063ca5eb5e114610a65575f80fd5b8063a1eda53c1161017e578063b731ea0a1161014e578063b731ea0a14610983578063b98bd07014610997578063bb0b6a53146109b6578063bc70b354146109f3575f80fd5b8063a1eda53c146108f9578063a217fddf1461092c578063a8d2dab71461093f578063ad3cb1cc14610953575f80fd5b8063903df521116101b9578063903df5211461084257806391d1485414610875578063963efcaa146108945780639f68b964146108c7575f80fd5b806384ef8ffc146107eb578063857749b0146107ff57806386843aa11461081a5780638da5cb5b1461082e575f80fd5b80633f4ba83a116102d55780635e280f111161026a578063715018a61161023a578063715018a61461076b5780637d25a05e1461077f57806382413eac146107b85780638456cb59146107d7575f80fd5b80635e280f11146106db578063634e93da1461070e578063649a5ec71461072d5780636fc1b31e1461074c575f80fd5b806352d1902d116102a557806352d1902d146106465780635535d4611461065a5780635a0dfe4d146106865780635c975abb146106c7575f80fd5b80633f4ba83a146105e2578063466916ca146105f65780634f1ef2861461062157806352ae287914610634575f80fd5b80631657c3b81161034b5780632f2ff15d1161031b5780632f2ff15d146105595780633400288b1461057857806336568abe146105975780633b6f743b146105b6575f80fd5b80631657c3b8146104e357806317442b70146104f75780631f5e133414610518578063248a9ca31461052c575f80fd5b8063111ecdad11610386578063111ecdad1461045757806313137d6514610483578063134d4f2514610496578063156a0d0f146104bd575f80fd5b806301ffc9a7146103b7578063022d63fb146103eb5780630aa6220b146104135780630d35b41514610429575b5f80fd5b3480156103c2575f80fd5b506103d66103d13660046137a8565b610bf0565b60405190151581526020015b60405180910390f35b3480156103f6575f80fd5b50620697805b60405165ffffffffffff90911681526020016103e2565b34801561041e575f80fd5b50610427610c1a565b005b348015610434575f80fd5b506104486104433660046137e5565b610c2f565b6040516103e293929190613863565b348015610462575f80fd5b5061046b610cfa565b6040516001600160a01b0390911681526020016103e2565b610427610491366004613962565b610d2e565b3480156104a1575f80fd5b506104aa600281565b60405161ffff90911681526020016103e2565b3480156104c8575f80fd5b506040805162b9270b60e21b815260016020820152016103e2565b3480156104ee575f80fd5b50610427610dee565b348015610502575f80fd5b50604080516001815260026020820152016103e2565b348015610523575f80fd5b506104aa600181565b348015610537575f80fd5b5061054b6105463660046139fa565b610e0d565b6040519081526020016103e2565b348015610564575f80fd5b50610427610573366004613a11565b610e2d565b348015610583575f80fd5b50610427610592366004613a57565b610e59565b3480156105a2575f80fd5b506104276105b1366004613a11565b610ec4565b3480156105c1575f80fd5b506105d56105d0366004613a8c565b610f86565b6040516103e29190613acf565b3480156105ed575f80fd5b50610427610fea565b348015610601575f80fd5b5061060a611009565b6040805192151583529015156020830152016103e2565b61042761062f366004613b78565b611023565b34801561063f575f80fd5b503061046b565b348015610651575f80fd5b5061054b61103e565b348015610665575f80fd5b50610679610674366004613c15565b611059565b6040516103e29190613c46565b348015610691575f80fd5b506103d66106a0366004613a57565b63ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b3480156106d2575f80fd5b506103d6611131565b3480156106e6575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610719575f80fd5b50610427610728366004613c58565b61115f565b348015610738575f80fd5b50610427610747366004613c73565b611172565b348015610757575f80fd5b50610427610766366004613c58565b611185565b348015610776575f80fd5b50610427611201565b34801561078a575f80fd5b506107a0610799366004613a57565b5f92915050565b6040516001600160401b0390911681526020016103e2565b3480156107c3575f80fd5b506103d66107d2366004613c98565b611268565b3480156107e2575f80fd5b5061042761127d565b3480156107f6575f80fd5b5061046b61129c565b34801561080a575f80fd5b50604051600681526020016103e2565b348015610825575f80fd5b506104276112b7565b348015610839575f80fd5b5061046b6112d6565b34801561084d575f80fd5b5061046b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610880575f80fd5b506103d661088f366004613a11565b6112e4565b34801561089f575f80fd5b5061054b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d2575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006103d6565b348015610904575f80fd5b5061090d61131a565b6040805165ffffffffffff9384168152929091166020830152016103e2565b348015610937575f80fd5b5061054b5f81565b34801561094a575f80fd5b506103d6611389565b34801561095e575f80fd5b50610679604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561098e575f80fd5b5061046b6113b1565b3480156109a2575f80fd5b506104276109b1366004613d3a565b6113d9565b3480156109c1575f80fd5b5061054b6109d0366004613d78565b63ffffffff165f9081525f805160206146ec833981519152602052604090205490565b3480156109fe575f80fd5b50610679610a0d366004613d91565b611555565b610427610a20366004613d3a565b6116e5565b348015610a30575f80fd5b50610427610a3f366004613ded565b611871565b610a57610a52366004613e35565b6119d0565b6040516103e2929190613e92565b348015610a70575f80fd5b50610427610a7f366004613c58565b611ac8565b348015610a8f575f80fd5b506103fc611b49565b348015610aa3575f80fd5b50610427611bc4565b348015610ab7575f80fd5b50610ac0611c03565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103e2565b610427610af4366004613962565b611c30565b348015610b04575f80fd5b50610427610b13366004613c58565b611c5f565b348015610b23575f80fd5b50610427610b32366004613a11565b611cd3565b348015610b42575f80fd5b50610427611cfb565b348015610b56575f80fd5b5061054b5f8051602061474c83398151915281565b348015610b76575f80fd5b50610427610b85366004613c58565b611201565b348015610b95575f80fd5b5061054b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc8575f80fd5b5061046b611d0d565b348015610bdc575f80fd5b506103d6610beb366004613ee3565b611dd8565b5f6001600160e01b031982166318a4c3c360e11b1480610c145750610c1482611df5565b92915050565b5f610c2481611e29565b610c2c611e33565b50565b604080518082019091525f80825260208201526060610c5f60405180604001604052805f81526020015f81525090565b6040805180820182525f8082526001600160401b03602080840182905284518381529081019094529195509182610cb8565b604080518082019091525f815260606020820152815260200190600190039081610c915790505b5093505f80610cdc604089013560608a0135610cd760208c018c613d78565b611e3f565b60408051808201909152918252602082015296989597505050505050565b5f807f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c005b546001600160a01b031692915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d7e576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b60208701803590610d9890610d93908a613d78565b611e82565b14610dd657610daa6020880188613d78565b60405163309afaf360e21b815263ffffffff909116600482015260208801356024820152604401610d75565b610de587878787878787611ed2565b50505050505050565b5f8051602061474c833981519152610e0581611e29565b610c2c612030565b5f9081525f8051602061476c833981519152602052604090206001015490565b81610e4b57604051631fe1e13d60e11b815260040160405180910390fd5b610e5582826120a2565b5050565b610e616120c4565b63ffffffff82165f8181525f805160206146ec833981519152602081815260409283902085905582519384528301849052917f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b91015b60405180910390a1505050565b5f8051602061472c83398151915282158015610ef85750610ee361129c565b6001600160a01b0316826001600160a01b0316145b15610f77575f80610f07611c03565b90925090506001600160a01b038216151580610f29575065ffffffffffff8116155b80610f3c57504265ffffffffffff821610155b15610f64576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b5050805465ffffffffffff60a01b191681555b610f8183836120f6565b505050565b604080518082019091525f80825260208201525f610fb460408501356060860135610cd76020880188613d78565b9150505f80610fc38684612129565b9092509050610fe0610fd86020880188613d78565b838388612269565b9695505050505050565b5f8051602061474c83398151915261100181611e29565b610c2c612347565b5f80611013611131565b915061101d611389565b90509091565b61102b61239f565b61103482612443565b610e55828261246d565b5f611047612529565b505f8051602061470c83398151915290565b63ffffffff82165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff86168552909152909120805460609291906110ac90613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546110d890613efd565b80156111235780601f106110fa57610100808354040283529160200191611123565b820191905f5260205f20905b81548152906001019060200180831161110657829003601f168201915b505050505091505092915050565b5f807fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005b5460ff1692915050565b5f61116981611e29565b610e5582612572565b5f61117c81611e29565b610e55826125e4565b61118d6120c4565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c0080546001600160a01b0319166001600160a01b03831690811782556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a15050565b6040516367f2b6d360e01b815260206004820152603560248201527f55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c604482015274195cd55c19dc98591958589b19481a5b9cdd195859605a1b6064820152608401610d75565b6001600160a01b03811630145b949350505050565b5f8051602061474c83398151915261129481611e29565b610c2c61264c565b5f8051602061478c833981519152546001600160a01b031690565b5f8051602061474c8339815191526112ce81611e29565b610c2c6126a7565b5f6112df612702565b905090565b5f9182525f8051602061476c833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f8051602061478c833981519152545f90600160d01b900465ffffffffffff165f8051602061472c833981519152811580159061135f57504265ffffffffffff831610155b61136a575f80611380565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f807fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400611155565b5f807fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b600610d1e565b6113e16120c4565b7f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00005f5b828110156115235761144684848381811061142157611421613f2f565b90506020028101906114339190613f43565b611441906040810190613f61565b61270b565b83838281811061145857611458613f2f565b905060200281019061146a9190613f43565b611478906040810190613f61565b835f87878681811061148c5761148c613f2f565b905060200281019061149e9190613f43565b6114ac906020810190613d78565b63ffffffff1663ffffffff1681526020019081526020015f205f8787868181106114d8576114d8613f2f565b90506020028101906114ea9190613f43565b6114fb906040810190602001613fa3565b61ffff16815260208101919091526040015f209161151a919083614000565b50600101611404565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748383604051610eb79291906140e1565b63ffffffff84165f9081527f8d2bda5d9f6ffb5796910376005392955773acee5548d0fcdb10e7c264ea00006020818152604080842061ffff881685529091528220805460609391906115a790613efd565b80601f01602080910402602001604051908101604052809291908181526020018280546115d390613efd565b801561161e5780601f106115f55761010080835404028352916020019161161e565b820191905f5260205f20905b81548152906001019060200180831161160157829003601f168201915b5050505050905080515f0361166d5784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929550611275945050505050565b5f84900361167e5791506112759050565b600284106116c857611690858561270b565b8061169e85600281896141c0565b6040516020016116b0939291906141e7565b60405160208183030381529060405292505050611275565b8484604051639a6d49cd60e01b8152600401610d7592919061420d565b5f5b818110156117f4573683838381811061170257611702613f2f565b90506020028101906117149190614220565b90506117526117266020830183613d78565b602083013563ffffffff919091165f9081525f805160206146ec83398151915260205260409020541490565b61175c57506117ec565b3063d045a0dc60c08301358360a081013561177b610100830183613f61565b61178c610100890160e08a01613c58565b61179a6101208a018a613f61565b6040518963ffffffff1660e01b81526004016117bc9796959493929190614249565b5f604051808303818588803b1580156117d3575f80fd5b505af11580156117e5573d5f803e3d5ffd5b5050505050505b6001016116e7565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611830573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261185791908101906142ce565b604051638351eea760e01b8152600401610d759190613c46565b5f61187a61274c565b805490915060ff600160401b82041615906001600160401b03165f811580156118a05750825b90505f826001600160401b031660011480156118bb5750303b155b9050811580156118c9575080155b156118e75760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561191157845460ff60401b1916600160401b1785555b611919612774565b6119235f8961277c565b61194d7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38861278e565b506119655f8051602061474c8339815191528761278e565b5061196f886127fa565b6119788861280b565b61198061282c565b83156119c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6119d8613765565b604080518082019091525f80825260208201525f80611a0d33604089013560608a0135611a0860208c018c613d78565b61283c565b915091505f80611a1d8984612129565b9092509050611a49611a3260208b018b613d78565b8383611a43368d90038d018d614336565b8b6129c7565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611a97908d018d613d78565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b611ad06120c4565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611b30575f80fd5b505af1158015611b42573d5f803e3d5ffd5b5050505050565b5f8051602061478c833981519152545f905f8051602061472c83398151915290600160d01b900465ffffffffffff168015801590611b8e57504265ffffffffffff8216105b611ba8578154600160d01b900465ffffffffffff16611bbd565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f611bcd611c03565b509050336001600160a01b03821614611bfb57604051636116401160e11b8152336004820152602401610d75565b610c2c612acd565b5f8051602061472c833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b333014611c505760405163029a949d60e31b815260040160405180910390fd5b610de587878787878787610dd6565b611c676120c4565b7fefb041d771d6daaa55702fff6eb740d63ba559a75d2d1d3e151c78ff2480b60080546001600160a01b0319166001600160a01b03831690811782556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c2427760906020016111f5565b81611cf157604051631fe1e13d60e11b815260040160405180910390fd5b610e558282612ae5565b5f611d0581611e29565b610c2c612b01565b5f7f0000000000000000000000000000000000000000000000000000000000000000611d5857507f000000000000000000000000000000000000000000000000000000000000000090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df9190614366565b5f60208201803590611dee906109d09085613d78565b1492915050565b5f6001600160e01b03198216637965db0b60e01b1480610c1457506301ffc9a760e01b6001600160e01b0319831614610c14565b610c2c8133612b0b565b611e3d5f80612b44565b565b5f80611e4a85612c1c565b915081905083811015611e7a576040516371c4efed60e01b81526004810182905260248101859052604401610d75565b935093915050565b63ffffffff81165f9081525f805160206146ec8339815191526020819052604082205480611ecb5760405163f6ff4fb760e01b815263ffffffff85166004820152602401610d75565b9392505050565b5f611ee3611ee08787612c52565b90565b90505f611f0e82611efc611ef78a8a612c69565b612c8b565b611f0960208d018d613d78565b612cbf565b90506028861115611fce575f611f4a611f2d60608c0160408d01614381565b611f3a60208d018d613d78565b84611f458c8c612d61565b612dab565b604051633e5ac80960e11b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f9f9086908d905f90879060040161439c565b5f604051808303815f87803b158015611fb6575f80fd5b505af1158015611fc8573d5f803e3d5ffd5b50505050505b6001600160a01b038216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61200760208d018d613d78565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b612038612ddd565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191681557f9ed48c125995b41003073267e8c8c29d453de042a0d58f41999add01bcf16fc6335b6040516001600160a01b03909116815260200160405180910390a150565b6120ab82610e0d565b6120b481611e29565b6120be838361278e565b50505050565b336120cd6112d6565b6001600160a01b031614611e3d5760405163118cdaa760e01b8152336004820152602401610d75565b6001600160a01b038116331461211f5760405163334bd91960e11b815260040160405180910390fd5b610f818282612e02565b6060805f612184856020013561213e86612e59565b61214b60a0890189613f61565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612e8492505050565b90935090505f81612196576001612199565b60025b90506121b96121ab6020880188613d78565b82610a0d60808a018a613f61565b7f41db8a78b0206aba5c54bcbfc2bda0d84082a84eb88e680379a57b9e9f653c008054919450906001600160a01b0316801561225e5760405163043a78eb60e01b81526001600160a01b0382169063043a78eb9061221d90899089906004016143cc565b602060405180830381865afa158015612238573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061225c91906143f0565b505b505050509250929050565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122cb89611e82565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161230092919061440b565b6040805180830381865afa15801561231a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061233e91906144b1565b95945050505050565b61234f612efe565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612084565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061242557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166124195f8051602061470c833981519152546001600160a01b031690565b6001600160a01b031614155b15611e3d5760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610e5581611e29565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124c7575060408051601f3d908101601f191682019092526124c4918101906144cb565b60015b6124ef57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d75565b5f8051602061470c833981519152811461251f57604051632a87526960e21b815260048101829052602401610d75565b610f818383612f23565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e3d5760405163703e46dd60e11b815260040160405180910390fd5b5f61257b611b49565b61258442612f78565b61258e91906144f6565b905061259a8282612fae565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6125ee82613038565b6125f742612f78565b61260191906144f6565b905061260d8282612b44565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b91016111f5565b61265461307f565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612084565b6126af6130a5565b7fcfbc5ec03206ba5826cf1103520b82c735e9bad14c6d8ed92dff9144ead3f400805460ff191660011781557f4a46a72476e6fa7533f222e0ecb9f666286647790a3d128b4fe6b20fb82dde1933612084565b5f6112df61129c565b5f61271960028284866141c0565b61272291614515565b60f01c905060038114610f81578282604051639a6d49cd60e01b8152600401610d7592919061420d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c14565b611e3d6130cb565b6127846130cb565b610e5582826130f0565b5f5f8051602061472c833981519152836127f0575f6127ab61129c565b6001600160a01b0316146127d257604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6112758484613156565b6128026130cb565b610c2c816131fe565b6128136130cb565b61281c81613238565b612824612774565b610c2c612774565b6128346130cb565b611e3d612774565b5f8061284661307f565b61284e6130a5565b612859858585611e3f565b90925090507f0000000000000000000000000000000000000000000000000000000000000000156129405761293b867f0000000000000000000000000000000000000000000000000000000000000000847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b25dd5726040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061292a9190614366565b6001600160a01b0316929190613249565b6129be565b604051632b8c49e360e01b81526001600160a01b038781166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690632b8c49e3906044015f604051808303815f87803b1580156129a7575f80fd5b505af11580156129b9573d5f803e3d5ffd5b505050505b94509492505050565b6129cf613765565b5f6129dc845f01516132a3565b6020850151909150156129f6576129f684602001516132c6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612a468c611e82565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612a8192919061440b565b60806040518083038185885af1158015612a9d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612ac29190614545565b979650505050505050565b612ad56133a5565b611e3d612ae061129c565b61343e565b612aee82610e0d565b612af781611e29565b6120be8383612e02565b611e3d5f80612fae565b612b1582826112e4565b610e555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d75565b5f8051602061478c833981519152545f8051602061472c83398151915290600160d01b900465ffffffffffff168015612bde574265ffffffffffff82161015612bb557600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255612bde565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f7f0000000000000000000000000000000000000000000000000000000000000000612c4881846145aa565b610c1491906145c9565b5f612c6060208284866141c0565b611ecb916145e0565b5f612c786028602084866141c0565b612c81916145fd565b60c01c9392505050565b5f610c147f00000000000000000000000000000000000000000000000000000000000000006001600160401b0384166145c9565b5f612cc861307f565b6001600160a01b038416612cdc5761dead93505b6040516318bf507760e01b81526001600160a01b038581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906318bf5077906044015f604051808303815f87803b158015612d43575f80fd5b505af1158015612d55573d5f803e3d5ffd5b50949695505050505050565b6060612d7082602881866141c0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001612dc4949392919061462b565b6040516020818303038152906040529050949350505050565b612de5611389565b611e3d576040516387c6bdf960e01b815260040160405180910390fd5b5f5f8051602061472c83398151915283158015612e375750612e2261129c565b6001600160a01b0316836001600160a01b0316145b15612e4f576001810180546001600160a01b03191690555b61127584846134ae565b5f610c147f0000000000000000000000000000000000000000000000000000000000000000836145aa565b8051606090151580612ecd578484604051602001612eb992919091825260c01b6001600160c01b031916602082015260280190565b604051602081830303815290604052612ef4565b84843385604051602001612ee49493929190614679565b6040516020818303038152906040525b9150935093915050565b612f06611131565b611e3d57604051638dfc202b60e01b815260040160405180910390fd5b612f2c82613527565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f7057610f81828261358a565b610e556135f3565b5f65ffffffffffff821115612faa576040516306dfcc6560e41b81526030600482015260248101839052604401610d75565b5090565b5f8051602061472c8339815191525f612fc5611c03565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061300590508165ffffffffffff16151590565b156120be576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80613042611b49565b90508065ffffffffffff168365ffffffffffff161161306a5761306583826146bb565b611ecb565b611ecb65ffffffffffff841662069780613612565b613087611131565b15611e3d5760405163d93c066560e01b815260040160405180910390fd5b6130ad611389565b15611e3d57604051638eb1387b60e01b815260040160405180910390fd5b6130d3613621565b611e3d57604051631afcd79f60e31b815260040160405180910390fd5b6130f86130cb565b5f8051602061472c8339815191526001600160a01b03821661312f57604051636116401160e11b81525f6004820152602401610d75565b80546001600160d01b0316600160d01b65ffffffffffff8516021781556120be5f8361278e565b5f5f8051602061476c83398151915261316f84846112e4565b6131ee575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556131a43390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610c14565b5f915050610c14565b5092915050565b6132066130cb565b6001600160a01b03811661322f57604051631e4fbdf760e01b81525f6004820152602401610d75565b610c2c8161343e565b6132406130cb565b61281c8161363a565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526120be90859061364b565b5f813414612faa576040516304fb820960e51b8152346004820152602401610d75565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015613323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133479190614366565b90506001600160a01b038116613370576040516329b99a9560e11b815260040160405180910390fd5b610e556001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000085613249565b5f8051602061472c8339815191525f806133bd611c03565b915091506133d28165ffffffffffff16151590565b15806133e657504265ffffffffffff821610155b1561340e576040516319ca5ebb60e01b815265ffffffffffff82166004820152602401610d75565b61341f5f61341a61129c565b612e02565b5061342a5f8361278e565b505081546001600160d01b03191690915550565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5f8051602061476c8339815191526134c784846112e4565b156131ee575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610c14565b806001600160a01b03163b5f0361355c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d75565b5f8051602061470c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516135a691906146da565b5f60405180830381855af49150503d805f81146135de576040519150601f19603f3d011682016040523d82523d5f602084013e6135e3565b606091505b509150915061233e8583836136b7565b3415611e3d5760405163b398979f60e01b815260040160405180910390fd5b5f828218828410028218611ecb565b5f61362a61274c565b54600160401b900460ff16919050565b6136426130cb565b610c2c8161370e565b5f8060205f8451602086015f885af18061366a576040513d5f823e3d81fd5b50505f513d9150811561368157806001141561368e565b6001600160a01b0384163b155b156120be57604051635274afe760e01b81526001600160a01b0385166004820152602401610d75565b6060826136c7576130658261373d565b81511580156136de57506001600160a01b0384163b155b1561370757604051639996b31560e01b81526001600160a01b0385166004820152602401610d75565b5080611ecb565b6137166130cb565b6001600160a01b038116611ad057604051632d618d8160e21b815260040160405180910390fd5b80511561374c57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b60405180606001604052805f80191681526020015f6001600160401b031681526020016137a360405180604001604052805f81526020015f81525090565b905290565b5f602082840312156137b8575f80fd5b81356001600160e01b031981168114611ecb575f80fd5b5f60e082840312156137df575f80fd5b50919050565b5f602082840312156137f5575f80fd5b81356001600160401b0381111561380a575f80fd5b611275848285016137cf565b5f5b83811015613830578181015183820152602001613818565b50505f910152565b5f815180845261384f816020860160208601613816565b601f01601f19169290920160200192915050565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156138dc5788870360bf190185528151805188528301518388018790526138c987890182613838565b975050938201939082019060010161389d565b50508751606088015250505060208501516080850152509050611275565b5f606082840312156137df575f80fd5b5f8083601f84011261391a575f80fd5b5081356001600160401b03811115613930575f80fd5b602083019150836020828501011115613947575f80fd5b9250929050565b6001600160a01b0381168114610c2c575f80fd5b5f805f805f805f60e0888a031215613978575f80fd5b61398289896138fa565b96506060880135955060808801356001600160401b03808211156139a4575f80fd5b6139b08b838c0161390a565b909750955060a08a013591506139c58261394e565b90935060c089013590808211156139da575f80fd5b506139e78a828b0161390a565b989b979a50959850939692959293505050565b5f60208284031215613a0a575f80fd5b5035919050565b5f8060408385031215613a22575f80fd5b823591506020830135613a348161394e565b809150509250929050565b803563ffffffff81168114613a52575f80fd5b919050565b5f8060408385031215613a68575f80fd5b613a7183613a3f565b946020939093013593505050565b8015158114610c2c575f80fd5b5f8060408385031215613a9d575f80fd5b82356001600160401b03811115613ab2575f80fd5b613abe858286016137cf565b9250506020830135613a3481613a7f565b815181526020808301519082015260408101610c14565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715613b1c57613b1c613ae6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4a57613b4a613ae6565b604052919050565b5f6001600160401b03821115613b6a57613b6a613ae6565b50601f01601f191660200190565b5f8060408385031215613b89575f80fd5b8235613b948161394e565b915060208301356001600160401b03811115613bae575f80fd5b8301601f81018513613bbe575f80fd5b8035613bd1613bcc82613b52565b613b22565b818152866020838501011115613be5575f80fd5b816020840160208301375f602083830101528093505050509250929050565b803561ffff81168114613a52575f80fd5b5f8060408385031215613c26575f80fd5b613c2f83613a3f565b9150613c3d60208401613c04565b90509250929050565b602081525f611ecb6020830184613838565b5f60208284031215613c68575f80fd5b8135611ecb8161394e565b5f60208284031215613c83575f80fd5b813565ffffffffffff81168114611ecb575f80fd5b5f805f8060a08587031215613cab575f80fd5b613cb586866138fa565b935060608501356001600160401b03811115613ccf575f80fd5b613cdb8782880161390a565b9094509250506080850135613cef8161394e565b939692955090935050565b5f8083601f840112613d0a575f80fd5b5081356001600160401b03811115613d20575f80fd5b6020830191508360208260051b8501011115613947575f80fd5b5f8060208385031215613d4b575f80fd5b82356001600160401b03811115613d60575f80fd5b613d6c85828601613cfa565b90969095509350505050565b5f60208284031215613d88575f80fd5b611ecb82613a3f565b5f805f8060608587031215613da4575f80fd5b613dad85613a3f565b9350613dbb60208601613c04565b925060408501356001600160401b03811115613dd5575f80fd5b613de18782880161390a565b95989497509550505050565b5f805f60608486031215613dff575f80fd5b8335613e0a8161394e565b92506020840135613e1a8161394e565b91506040840135613e2a8161394e565b809150509250925092565b5f805f8385036080811215613e48575f80fd5b84356001600160401b03811115613e5d575f80fd5b613e69878288016137cf565b9450506040601f1982011215613e7d575f80fd5b506020840191506060840135613e2a8161394e565b5f60c082019050835182526001600160401b0360208501511660208301526040840151613ecc604084018280518252602090810151910152565b5082516080830152602083015160a0830152611ecb565b5f60608284031215613ef3575f80fd5b611ecb83836138fa565b600181811c90821680613f1157607f821691505b6020821081036137df57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613f57575f80fd5b9190910192915050565b5f808335601e19843603018112613f76575f80fd5b8301803591506001600160401b03821115613f8f575f80fd5b602001915036819003821315613947575f80fd5b5f60208284031215613fb3575f80fd5b611ecb82613c04565b601f821115610f8157805f5260205f20601f840160051c81016020851015613fe15750805b601f840160051c820191505b81811015611b42575f8155600101613fed565b6001600160401b0383111561401757614017613ae6565b61402b836140258354613efd565b83613fbc565b5f601f84116001811461405c575f85156140455750838201355b5f19600387901b1c1916600186901b178355611b42565b5f83815260208120601f198716915b8281101561408b578685013582556020948501946001909201910161406b565b50868210156140a7575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208082528181018390525f906040808401600586901b8501820187855b888110156141b257878303603f190184528135368b9003605e19018112614124575f80fd5b8a01606063ffffffff61413683613a3f565b16855261ffff614147898401613c04565b168886015286820135601e19833603018112614161575f80fd5b9091018781019190356001600160401b0381111561417d575f80fd5b80360383131561418b575f80fd5b818887015261419d82870182856140b9565b968901969550505091860191506001016140ff565b509098975050505050505050565b5f80858511156141ce575f80fd5b838611156141da575f80fd5b5050820193919092039150565b5f84516141f8818460208901613816565b8201838582375f930192835250909392505050565b602081525f6112756020830184866140b9565b5f823561013e19833603018112613f57575f80fd5b6001600160401b0381168114610c2c575f80fd5b63ffffffff61425789613a3f565b168152602088013560208201525f604089013561427381614235565b6001600160401b03811660408401525087606083015260e0608083015261429e60e0830187896140b9565b6001600160a01b03861660a084015282810360c08401526142c08185876140b9565b9a9950505050505050505050565b5f602082840312156142de575f80fd5b81516001600160401b038111156142f3575f80fd5b8201601f81018413614303575f80fd5b8051614311613bcc82613b52565b818152856020838501011115614325575f80fd5b61233e826020830160208601613816565b5f60408284031215614346575f80fd5b61434e613afa565b82358152602083013560208201528091505092915050565b5f60208284031215614376575f80fd5b8151611ecb8161394e565b5f60208284031215614391575f80fd5b8135611ecb81614235565b60018060a01b038516815283602082015261ffff83166040820152608060608201525f610fe06080830184613838565b604081525f6143de6040830185613838565b828103602084015261233e8185613838565b5f60208284031215614400575f80fd5b8151611ecb81613a7f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261444060e0840182613838565b90506060850151603f198483030160a085015261445d8282613838565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215614493575f80fd5b61449b613afa565b9050815181526020820151602082015292915050565b5f604082840312156144c1575f80fd5b611ecb8383614483565b5f602082840312156144db575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff8181168382160190808211156131f7576131f76144e2565b6001600160f01b0319813581811691600285101561453d5780818660020360031b1b83161692505b505092915050565b5f60808284031215614555575f80fd5b604051606081018181106001600160401b038211171561457757614577613ae6565b60405282518152602083015161458c81614235565b602082015261459e8460408501614483565b60408201529392505050565b5f826145c457634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610c1457610c146144e2565b80356020831015610c14575f19602084900360031b1b1692915050565b6001600160c01b0319813581811691600885101561453d5760089490940360031b84901b1690921692915050565b6001600160401b0360c01b8560c01b16815263ffffffff60e01b8460e01b16600882015282600c8201525f825161466981602c850160208701613816565b91909101602c0195945050505050565b8481526001600160401b0360c01b8460c01b1660208201528260288201525f82516146ab816048850160208701613816565b9190910160480195945050505050565b65ffffffffffff8281168282160390808211156131f7576131f76144e2565b5f8251613f5781846020870161381656fe72ab1bc1039b79dc4724ffca13de82c96834302d3c7e0d4252232d4b2dd8f900360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840065d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a26469706673582212200fee03f24fa0ed6bdfb5fe37c908225816911b7fc06c7d740d917b94227547e264736f6c63430008170033","sourceMap":"2992:12760:190:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4146:219:112;;;;;;;;;;-1:-1:-1;4146:219:112;;;;;:::i;:::-;;:::i;:::-;;;470:14:212;;463:22;445:41;;433:2;418:18;4146:219:112;;;;;;;;9909:108;;;;;;;;;;-1:-1:-1;10004:6:112;9909:108;;;671:14:212;659:27;;;641:46;;629:2;614:18;9909:108:112;497:196:212;13102:126:112;;;;;;;;;;;;;:::i;:::-;;6517:1258:21;;;;;;;;;;-1:-1:-1;6517:1258:21;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;4798:149::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3416:32:212;;;3398:51;;3386:2;3371:18;4798:149:21;3252:203:212;4921:708:3;;;;;;:::i;:::-;;:::i;2777:40:21:-;;;;;;;;;;;;2816:1;2777:40;;;;;5335:6:212;5323:19;;;5305:38;;5293:2;5278:18;2777:40:21;5161:188:212;3987:140:21;;;;;;;;;;-1:-1:-1;3987:140:21;;;-1:-1:-1;;;5524:52:212;;4118:1:21;5607:2:212;5592:18;;5585:59;5497:18;3987:140:21;5354:296:212;7292:111:190;;;;;;;;;;;;;:::i;1951:257:5:-;;;;;;;;;;-1:-1:-1;1951:257:5;;;887:1:4;5862:34:212;;759:1:3;5927:2:212;5912:18;;5905:43;5798:18;1951:257:5;5655:299:212;2740:31:21;;;;;;;;;;;;2770:1;2740:31;;4807:191:110;;;;;;;;;;-1:-1:-1;4807:191:110;;;;;:::i;:::-;;:::i;:::-;;;6290:25:212;;;6278:2;6263:18;4807:191:110;6144:177:212;4656:276:112;;;;;;;;;;-1:-1:-1;4656:276:112;;;;;:::i;:::-;;:::i;3028:202:2:-;;;;;;;;;;-1:-1:-1;3028:202:2;;;;;:::i;:::-;;:::i;5995:682:112:-;;;;;;;;;;-1:-1:-1;5995:682:112;;;;;:::i;:::-;;:::i;8226:774:21:-;;;;;;;;;;-1:-1:-1;8226:774:21;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6355:77:190:-;;;;;;;;;;;;;:::i;4115:208:191:-;;;;;;;;;;;;;:::i;:::-;;;;8139:14:212;;8132:22;8114:41;;8198:14;;8191:22;8186:2;8171:18;;8164:50;8087:18;4115:208:191;7952:268:212;4161:214:114;;;;;;:::i;:::-;;:::i;2068:93:7:-;;;;;;;;;;-1:-1:-1;2149:4:7;2068:93;;3708:134:114;;;;;;;;;;;;;:::i;1532:222:6:-;;;;;;;;;;-1:-1:-1;1532:222:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;16543:132:21:-;;;;;;;;;;-1:-1:-1;16543:132:21;;;;;:::i;:::-;2485:13:2;;;;;16625:4:21;2485:13:2;;;-1:-1:-1;;;;;;;;;;;2485:13:2;;;;;;16648:20:21;;16543:132;2496:145:120;;;;;;;;;;;;;:::i;1035:46:2:-;;;;;;;;;;;;;;;10196:150:112;;;;;;;;;;-1:-1:-1;10196:150:112;;;;;:::i;:::-;;:::i;12486:145::-;;;;;;;;;;-1:-1:-1;12486:145:112;;;;;:::i;:::-;;:::i;5989:222:21:-;;;;;;;;;;-1:-1:-1;5989:222:21;;;;;:::i;:::-;;:::i;8444:150:190:-;;;;;;;;;;;;;:::i;4060:128:3:-;;;;;;;;;;-1:-1:-1;4060:128:3;;;;;:::i;:::-;4149:12;4060:128;;;;;;;;-1:-1:-1;;;;;11480:31:212;;;11462:50;;11450:2;11435:18;4060:128:3;11318:200:212;2566:216:3;;;;;;;;;;-1:-1:-1;2566:216:3;;;;;:::i;:::-;;:::i;6141:73:190:-;;;;;;;;;;;;;:::i;8482:211:112:-;;;;;;;;;;;;;:::i;5554:87:21:-;;;;;;;;;;-1:-1:-1;5554:87:21;;5633:1;12341:36:212;;12329:2;12314:18;5554:87:21;12199:184:212;7021:107:190;;;;;;;;;;;;;:::i;9113:228::-;;;;;;;;;;;;;:::i;3653:41::-;;;;;;;;;;;;;;;3780:207:110;;;;;;;;;;-1:-1:-1;3780:207:110;;;;;:::i;:::-;;:::i;2434:46:21:-;;;;;;;;;;;;;;;7756:106:190;;;;;;;;;;-1:-1:-1;7838:17:190;7756:106;;9483:368:112;;;;;;;;;;;;;:::i;:::-;;;;12750:14:212;12791:15;;;12773:34;;12843:15;;;;12838:2;12823:18;;12816:43;12713:18;9483:368:112;12570:295:212;2398:49:110;;;;;;;;;;-1:-1:-1;2398:49:110;2443:4;2398:49;;3641:187:191;;;;;;;;;;;;;:::i;1819:58:114:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:114;;;;;1596:180:7;;;;;;;;;;;;;:::i;2513:600:6:-;;;;;;;;;;-1:-1:-1;2513:600:6;;;;;:::i;:::-;;:::i;2342:163:2:-;;;;;;;;;;-1:-1:-1;2342:163:2;;;;;:::i;:::-;2485:13;;2400:7;2485:13;;;-1:-1:-1;;;;;;;;;;;2485:13:2;;;;;;;2342:163;3872:1058:6;;;;;;;;;;-1:-1:-1;3872:1058:6;;;;;:::i;:::-;;:::i;2978:1333:7:-;;;;;;:::i;:::-;;:::i;5181:423:190:-;;;;;;;;;;-1:-1:-1;5181:423:190;;;;;:::i;:::-;;:::i;9688:1340:21:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;4123:105:2:-;;;;;;;;;;-1:-1:-1;4123:105:2;;;;;:::i;:::-;;:::i;9087:338:112:-;;;;;;;;;;;;;:::i;11244:344::-;;;;;;;;;;;;;:::i;8751:278::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;17261:32:212;;;17243:51;;17342:14;17330:27;;;17325:2;17310:18;;17303:55;17216:18;8751:278:112;17071:293:212;4959:409:7;;;;;;:::i;:::-;;:::i;2293:226::-;;;;;;;;;;-1:-1:-1;2293:226:7;;;;;:::i;:::-;;:::i;5032:278:112:-;;;;;;;;;;-1:-1:-1;5032:278:112;;;;;:::i;:::-;;:::i;10819:128::-;;;;;;;;;;;;;:::i;3452:62:190:-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3452:62:190;;8794:157;;;;;;;;;;-1:-1:-1;8794:157:190;;;;;:::i;:::-;;:::i;3296:66::-;;;;;;;;;;;;3336:26;3296:66;;8010:171;;;;;;;;;;;;;:::i;3324:149:3:-;;;;;;;;;;-1:-1:-1;3324:149:3;;;;;:::i;:::-;;:::i;4146:219:112:-;4231:4;-1:-1:-1;;;;;;4254:64:112;;-1:-1:-1;;;4254:64:112;;:104;;;4322:36;4346:11;4322:23;:36::i;:::-;4247:111;4146:219;-1:-1:-1;;4146:219:112:o;13102:126::-;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;13193:28:112::1;:26;:28::i;:::-;13102:126:::0;:::o;6517:1258:21:-;-1:-1:-1;;;;;;;;;;;;;;;;;6669:35:21;6706:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;6706:28:21;6924:34;;;;;;;;-1:-1:-1;6924:34:21;;;-1:-1:-1;;;;;6924:34:21;;;;;;;7075:21;;;;;;;;;;;6924:34;;-1:-1:-1;;;7075:21:21;;;-1:-1:-1;;;;;;;;;;;;;;;;;7075:21:21;;;;;;;;;;;;;;;-1:-1:-1;7059:37:21;-1:-1:-1;7533:20:21;;7583:120;7607:19;;;;7640:22;;;;7676:17;;;;7607:10;7676:17;:::i;:::-;7583:10;:120::i;:::-;7726:42;;;;;;;;;;;;;;;;6517:1258;;;;-1:-1:-1;;;;;;6517:1258:21:o;4798:149::-;4843:7;;2993:25;4889:20;4926:14;-1:-1:-1;;;;;4926:14:21;;4798:149;-1:-1:-1;;4798:149:21:o;4921:708:3:-;5234:8;-1:-1:-1;;;;;5226:31:3;5247:10;5226:31;5222:68;;5266:24;;-1:-1:-1;;;5266:24:3;;5279:10;5266:24;;;3398:51:212;3371:18;;5266:24:3;;;;;;;;5222:68;5426:14;;;;;;5390:32;;5407:14;;5426:7;5407:14;:::i;:::-;5390:16;:32::i;:::-;:50;5386:103;;5458:14;;;;:7;:14;:::i;:::-;5449:40;;-1:-1:-1;;;5449:40:3;;17813:10:212;17801:23;;;5449:40:3;;;17783:42:212;5474:14:3;;;;17841:18:212;;;17834:34;17756:18;;5449:40:3;17611:263:212;5386:103:3;5563:59;5574:7;5583:5;5590:8;;5600:9;5611:10;;5563;:59::i;:::-;4921:708;;;;;;;:::o;7292:111:190:-;-1:-1:-1;;;;;;;;;;;3272:16:110;3283:4;3272:10;:16::i;:::-;7369:27:190::1;:25;:27::i;4807:191:110:-:0;4872:7;4967:14;;;-1:-1:-1;;;;;;;;;;;4967:14:110;;;;;:24;;;;4807:191::o;4656:276:112:-;4786:4;4782:104;;4835:40;;-1:-1:-1;;;4835:40:112;;;;;;;;;;;4782:104;4895:30;4911:4;4917:7;4895:15;:30::i;:::-;4656:276;;:::o;3028:202:2:-;2334:13:111;:11;:13::i;:::-;3167::2::1;::::0;::::1;3108:25;3167:13:::0;;;-1:-1:-1;;;;;;;;;;;3167:13:2::1;::::0;;;;;;;;:21;;;3203:20;;17783:42:212;;;17841:18;;17834:34;;;926:26:2;3203:20:::1;::::0;17756:18:212;3203:20:2::1;;;;;;;;3098:132;3028:202:::0;;:::o;5995:682:112:-;-1:-1:-1;;;;;;;;;;;6231:26:112;;:55;;;;;6272:14;:12;:14::i;:::-;-1:-1:-1;;;;;6261:25:112;:7;-1:-1:-1;;;;;6261:25:112;;6231:55;6227:401;;;6303:23;6328:15;6347:21;:19;:21::i;:::-;6302:66;;-1:-1:-1;6302:66:112;-1:-1:-1;;;;;;6386:29:112;;;;;:58;;-1:-1:-1;16952:13:112;;;;6386:58;:91;;;-1:-1:-1;17180:15:112;17169:26;;;;6448:29;6386:91;6382:185;;;6504:48;;-1:-1:-1;;;6504:48:112;;671:14:212;659:27;;6504:48:112;;;641:46:212;614:18;;6504:48:112;497:196:212;6382:185:112;-1:-1:-1;;6580:37:112;;-1:-1:-1;;;;6580:37:112;;;6227:401;6637:33;6656:4;6662:7;6637:18;:33::i;:::-;6114:563;5995:682;;:::o;8226:774:21:-;-1:-1:-1;;;;;;;;;;;;;;;;;8560:24:21;8588:74;8599:19;;;;8620:22;;;;8644:17;;;;8599:10;8644:17;:::i;8588:74::-;8557:105;;;8751:20;8773;8797:49;8817:10;8829:16;8797:19;:49::i;:::-;8750:96;;-1:-1:-1;8750:96:21;-1:-1:-1;8935:58:21;8942:17;;;;:10;:17;:::i;:::-;8961:7;8970;8979:13;8935:6;:58::i;:::-;8928:65;8226:774;-1:-1:-1;;;;;;8226:774:21:o;6355:77:190:-;-1:-1:-1;;;;;;;;;;;3272:16:110;3283:4;3272:10;:16::i;:::-;6415:10:190::1;:8;:10::i;4115:208:191:-:0;4167:16;4185:32;4243:8;:6;:8::i;:::-;4229:22;;4291:25;:23;:25::i;:::-;4261:55;;4115:208;;:::o;4161:214:114:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;3708:134::-:0;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:114;:::o;1532:222:6:-;1714:23;;;1632:33;1714:23;;;1151:36;1714:23;;;;;;;;:33;;;;;;;;;;;1707:40;;1608:12;;1151:36;1714:33;1707:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1532:222;;;;:::o;2496:145:120:-;2543:4;;1270:23;2587:21;2625:9;;;;2496:145;-1:-1:-1;;2496:145:120:o;10196:150:112:-;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;10303:36:112::1;10330:8;10303:26;:36::i;12486:145::-:0;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;12590:34:112::1;12615:8;12590:24;:34::i;5989:222:21:-:0;2334:13:111;:11;:13::i;:::-;2993:25:21;6129:30;;-1:-1:-1;;;;;;6129:30:21::1;-1:-1:-1::0;;;;;6129:30:21;::::1;::::0;;::::1;::::0;;6174::::1;::::0;3398:51:212;;;6174:30:21::1;::::0;3386:2:212;3371:18;6174:30:21::1;;;;;;;;6062:149;5989:222:::0;:::o;8444:150:190:-;8511:76;;-1:-1:-1;;;8511:76:190;;18466:2:212;8511:76:190;;;18448:21:212;18505:2;18485:18;;;18478:30;18544:34;18524:18;;;18517:62;-1:-1:-1;;;18595:18:212;;;18588:51;18656:19;;8511:76:190;18264:417:212;2566:216:3;-1:-1:-1;;;;;2751:24:3;;2770:4;2751:24;2566:216;;;;;;;:::o;6141:73:190:-;-1:-1:-1;;;;;;;;;;;3272:16:110;3283:4;3272:10;:16::i;:::-;6199:8:190::1;:6;:8::i;8482:211:112:-:0;-1:-1:-1;;;;;;;;;;;8664:22:112;-1:-1:-1;;;;;8664:22:112;;8482:211::o;7021:107:190:-;-1:-1:-1;;;;;;;;;;;3272:16:110;3283:4;3272:10;:16::i;:::-;7096:25:190::1;:23;:25::i;9113:228::-:0;9255:7;9285:49;:47;:49::i;:::-;9278:56;;9113:228;:::o;3780:207:110:-;3857:4;3949:14;;;-1:-1:-1;;;;;;;;;;;3949:14:110;;;;;;;;-1:-1:-1;;;;;3949:31:110;;;;;;;;;;;;;;;3780:207::o;9483:368:112:-;-1:-1:-1;;;;;;;;;;;9706:23:112;9548:15;;-1:-1:-1;;;9706:23:112;;;;-1:-1:-1;;;;;;;;;;;16952:13:112;;;;;9747:57;;-1:-1:-1;17180:15:112;17169:26;;;;9775:29;9747:57;9746:98;;9839:1;9842;9746:98;;;9809:15;;;;-1:-1:-1;;;9809:15:112;;;;9826:8;9746:98;9739:105;;;;;9483:368;;:::o;3641:187:191:-;3705:4;;1707:30;3753:25;1531:222;1596:180:7;1648:7;;1200:41;1708:34;1050:207;2513:600:6;2334:13:111;:11;:13::i;:::-;1151:36:6;2625:33:::1;2700:356;2720:27:::0;;::::1;2700:356;;;2882:48;2902:16;;2919:1;2902:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;2882:19;:48::i;:::-;3018:16;;3035:1;3018:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;2944:1:::0;:17:::1;2962:16:::0;;2979:1;2962:19;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:23;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;2944:42;;;;;;;;;;;;;;;:71;2987:16;;3004:1;2987:19;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:27;::::0;;;;;::::1;;;:::i;:::-;2944:71;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2944:71:6;;:101:::1;::::0;;:71;:101:::1;:::i;:::-;-1:-1:-1::0;2749:3:6::1;;2700:356;;;;3071:35;3089:16;;3071:35;;;;;;;:::i;3872:1058::-:0;4138:23;;;4039:33;4138:23;;;1151:36;4138:23;;;;;;;;:33;;;;;;;;;;4114:57;;4015:12;;4039:33;4138;4114:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4300:8;:15;4319:1;4300:20;4296:46;;4329:13;;4322:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4322:20:6;;-1:-1:-1;4322:20:6;;-1:-1:-1;;;;;4322:20:6;4296:46;4427:1;4403:25;;;4399:46;;4437:8;-1:-1:-1;4430:15:6;;-1:-1:-1;4430:15:6;4399:46;4592:1;4568:25;;4564:267;;4609:34;4629:13;;4609:19;:34::i;:::-;4792:8;4802:17;:13;4816:1;4802:13;;:17;:::i;:::-;4779:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4772:48;;;;;;4564:267;4909:13;;4894:29;;-1:-1:-1;;;4894:29:6;;;;;;;;;:::i;2978:1333:7:-;3079:9;3074:1037;3094:19;;;3074:1037;;;3134:29;3166:8;;3175:1;3166:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3134:43;-1:-1:-1;3260:50:7;3267:20;;;;3134:43;3267:20;:::i;:::-;3289;;;;2485:13:2;;;;;16625:4:21;2485:13:2;;;-1:-1:-1;;;;;;;;;;;2485:13:2;;;;;;16648:20:21;;16543:132;3260:50:7;3255:65;;3312:8;;;3255:65;3882:4;:22;3913:12;;;;:6;3976:11;;;;4005:14;;;;3913:6;4005:14;:::i;:::-;4037:15;;;;;;;;:::i;:::-;4070:16;;;;:6;:16;:::i;:::-;3882:218;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3120:991;3074:1037;3115:3;;3074:1037;;;;4268:10;-1:-1:-1;;;;;4258:43:7;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4258:45:7;;;;;;;;;;;;:::i;:::-;4241:63;;-1:-1:-1;;;4241:63:7;;;;;;;;:::i;5181:423:190:-;4158:30:113;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:113;-1:-1:-1;;;4302:15:113;;;4301:16;;-1:-1:-1;;;;;4348:14:113;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:113;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:113;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:113;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:113;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:113;-1:-1:-1;;;5011:22:113;;;4977:67;5302:24:190::1;:22;:24::i;:::-;5336:54;5374:1;5377:12;5336:37;:54::i;:::-;5400:42;3336:26;5426:15;5400:10;:42::i;:::-;;5452:38;-1:-1:-1::0;;;;;;;;;;;5476:13:190::1;5452:10;:38::i;:::-;;5500:28;5515:12;5500:14;:28::i;:::-;5538;5553:12;5538:14;:28::i;:::-;5576:21;:19;:21::i;:::-;5068:14:113::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:113;;;5140:14;;-1:-1:-1;11462:50:212;;5140:14:113;;11450:2:212;11435:18;5140:14:113;;;;;;;5064:101;4092:1079;;;;;5181:423:190;;;:::o;9688:1340:21:-;9849:34;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;10247:20:21;;10297:140;10317:10;10341:19;;;;10374:22;;;;10410:17;;;;10341:10;10410:17;:::i;:::-;10297:6;:140::i;:::-;10246:191;;;;10526:20;10548;10572:49;10592:10;10604:16;10572:19;:49::i;:::-;10525:96;;-1:-1:-1;10525:96:21;-1:-1:-1;10744:66:21;10752:17;;;;:10;:17;:::i;:::-;10771:7;10780;10744:66;;;;;;;10789:4;10744:66;:::i;:::-;10795:14;10744:7;:66::i;:::-;10876:42;;;;;;;;;;;;;;;;;;;10942:15;;10731:79;;-1:-1:-1;10876:42:21;;-1:-1:-1;10978:10:21;;10942:15;10934:87;;10959:17;;;;:10;:17;:::i;:::-;10934:87;;;27926:10:212;27914:23;;;27896:42;;27969:2;27954:18;;27947:34;;;27997:18;;27990:34;;;27884:2;27869:18;10934:87:21;;;;;;;9915:1113;;;;9688:1340;;;;;;:::o;4123:105:2:-;2334:13:111;:11;:13::i;:::-;4190:31:2::1;::::0;-1:-1:-1;;;4190:31:2;;-1:-1:-1;;;;;3416:32:212;;;4190:31:2::1;::::0;::::1;3398:51:212::0;4190:8:2::1;:20;::::0;::::1;::::0;3371:18:212;;4190:31:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4123:105:::0;:::o;9087:338:112:-;-1:-1:-1;;;;;;;;;;;9284:23:112;9145:6;;-1:-1:-1;;;;;;;;;;;3245:45:112;-1:-1:-1;;;9284:23:112;;;;16952:13;;;;;9325:56;;-1:-1:-1;17180:15:112;17169:26;;;;9353:28;9324:94;;9403:15;;-1:-1:-1;;;9403:15:112;;;;9324:94;;;9385:15;;;;-1:-1:-1;;;9385:15:112;;;;9324:94;9317:101;;;;9087:338;:::o;11244:344::-;11308:23;11337:21;:19;:21::i;:::-;-1:-1:-1;11307:51:112;-1:-1:-1;966:10:118;-1:-1:-1;;;;;11372:31:112;;;11368:175;;11486:46;;-1:-1:-1;;;11486:46:112;;966:10:118;11486:46:112;;;3398:51:212;3371:18;;11486:46:112;3252:203:212;11368:175:112;11552:29;:27;:29::i;8751:278::-;-1:-1:-1;;;;;;;;;;;8967:22:112;-1:-1:-1;;;;;8967:22:112;;;-1:-1:-1;;;8991:30:112;;;;;;8751:278::o;4959:409:7:-;5238:10;5260:4;5238:27;5234:50;;5274:10;;-1:-1:-1;;;5274:10:7;;;;;;;;;;;5234:50;5294:67;5313:7;5322:5;5329:8;;5339:9;5350:10;;5294:18;:67::i;2293:226::-;2334:13:111;:11;:13::i;:::-;1200:41:7;2453:22;;-1:-1:-1;;;;;;2453:22:7::1;-1:-1:-1::0;;;;;2453:22:7;::::1;::::0;;::::1;::::0;;2490::::1;::::0;3398:51:212;;;2490:22:7::1;::::0;3386:2:212;3371:18;2490:22:7::1;3252:203:212::0;5032:278:112;5163:4;5159:104;;5212:40;;-1:-1:-1;;;5212:40:112;;;;;;;;;;;5159:104;5272:31;5289:4;5295:7;5272:16;:31::i;10819:128::-;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;10911:29:112::1;:27;:29::i;8010:171:190:-:0;8050:7;8076:17;:98;;-1:-1:-1;8158:16:190;;9113:228::o;8076:98::-;8125:16;-1:-1:-1;;;;;8104:48:190;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3324:149:3:-;3406:4;3453:13;;;;;;3429:20;;3435:13;;3453:6;3435:13;:::i;3429:20::-;:37;;3324:149;-1:-1:-1;;3324:149:3:o;3491:202:110:-;3576:4;-1:-1:-1;;;;;;3599:47:110;;-1:-1:-1;;;3599:47:110;;:87;;-1:-1:-1;;;;;;;;;;1101:40:122;;;3650:36:110;1002:146:122;4196:103:110;4262:30;4273:4;966:10:118;4262::110;:30::i;13355:94:112:-;13420:22;13437:1;13440;13420:16;:22::i;:::-;13355:94::o;18560:668:21:-;18702:20;18724:24;18898:22;18910:9;18898:11;:22::i;:::-;18883:37;;19046:12;19027:31;;19128:12;19109:16;:31;19105:117;;;19163:48;;-1:-1:-1;;;19163:48:21;;;;;28489:25:212;;;28530:18;;;28523:34;;;28462:18;;19163:48:21;28315:248:212;19105:117:21;18560:668;;;;;;:::o;3528:257:2:-;3691:13;;;3598:7;3691:13;;;-1:-1:-1;;;;;;;;;;;3691:13:2;;;;;;;;;3714:43;;3745:12;;-1:-1:-1;;;3745:12:2;;28742:10:212;28730:23;;3745:12:2;;;28712:42:212;28685:18;;3745:12:2;28568:192:212;3714:43:2;3774:4;3528:257;-1:-1:-1;;;3528:257:2:o;13336:1806:21:-;13813:17;13833:36;:17;:8;;:15;:17::i;:::-;2891:2:24;2780:123;13833:36:21;13813:56;;14002:24;14029:62;14037:9;14048:26;14054:19;:8;;:17;:19::i;:::-;14048:5;:26::i;:::-;14076:14;;;;:7;:14;:::i;:::-;14029:7;:62::i;:::-;14002:89;-1:-1:-1;243:2:24;-1:-1:-1;;14102:955:21;;;14206:23;14232:175;14275:13;;;;;;;;:::i;:::-;14306:14;;;;:7;:14;:::i;:::-;14338:16;14372:21;:8;;:19;:21::i;:::-;14232:25;:175::i;:::-;14954:92;;-1:-1:-1;;;14954:92:21;;14206:201;;-1:-1:-1;;;;;;14954:8:21;:20;;;;:92;;14975:9;;14986:5;;14993:1;;14206:201;;14954:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14129:928;14102:955;-1:-1:-1;;;;;15072:63:21;;15084:5;15072:63;15091:14;;;;:7;:14;:::i;:::-;15072:63;;;17813:10:212;17801:23;;;17783:42;;17856:2;17841:18;;17834:34;;;17756:18;15072:63:21;;;;;;;13639:1503;;13336:1806;;;;;;;:::o;5404:254:191:-;3012:33;:31;:33::i;:::-;1707:30;5563:34;;-1:-1:-1;;5563:34:191::1;::::0;;5612:39:::1;966:10:118::0;5638:12:191::1;5612:39;::::0;-1:-1:-1;;;;;3416:32:212;;;3398:51;;3386:2;3371:18;5612:39:191::1;;;;;;;5486:172;5404:254::o:0;5294:136:110:-;5368:18;5381:4;5368:12;:18::i;:::-;3272:16;3283:4;3272:10;:16::i;:::-;5398:25:::1;5409:4;5415:7;5398:10;:25::i;:::-;;5294:136:::0;;;:::o;2658:162:111:-;966:10:118;2717:7:111;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:111;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:111;;966:10:118;2763:40:111;;;3398:51:212;3371:18;;2763:40:111;3252:203:212;6396:245:110;-1:-1:-1;;;;;6489:34:110;;966:10:118;6489:34:110;6485:102;;6546:30;;-1:-1:-1;;;6546:30:110;;;;;;;;;;;6485:102;6597:37;6609:4;6615:18;6597:11;:37::i;11322:1496:21:-;11454:20;11476;11508:15;11679:324;11711:10;:13;;;11738:16;11744:9;11738:5;:16::i;:::-;11972:21;;;;:10;:21;:::i;:::-;11679:324;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11679:18:21;;-1:-1:-1;;;11679:324:21:i;:::-;11655:348;;-1:-1:-1;11655:348:21;-1:-1:-1;12083:14:21;11655:348;12100:33;;2770:1;12100:33;;;2816:1;12100:33;12083:50;-1:-1:-1;12255:67:21;12270:17;;;;:10;:17;:::i;:::-;12289:7;12298:23;;;;:10;:23;:::i;12255:67::-;2993:25;12638:14;;12245:77;;-1:-1:-1;2993:25:21;-1:-1:-1;;;;;12638:14:21;12732:23;;12728:83;;12757:54;;-1:-1:-1;;;12757:54:21;;-1:-1:-1;;;;;12757:36:21;;;;;:54;;12794:7;;12803;;12757:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12728:83;11498:1320;;;;11322:1496;;;;;:::o;2550:391:4:-;-1:-1:-1;;;;;;;;;;;;;;;;;2771:8:4;-1:-1:-1;;;;;2771:14:4;;2803:86;;;;;;;;2819:7;2803:86;;;;;;2828:25;2845:7;2828:16;:25::i;:::-;2803:86;;;;2855:8;2803:86;;;;2865:8;2803:86;;;;2875:13;2803:86;;;;;2915:4;2771:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2752:182;2550:391;-1:-1:-1;;;;;2550:391:4:o;3478:178:120:-;2226:16;:14;:16::i;:::-;1270:23;3595:17;;-1:-1:-1;;3595:17:120::1;::::0;;3627:22:::1;966:10:118::0;3636:12:120::1;887:96:118::0;4578:312:114;4658:4;-1:-1:-1;;;;;4667:6:114;4650:23;;;:120;;;4764:6;-1:-1:-1;;;;;4728:42:114;:32;-1:-1:-1;;;;;;;;;;;1519:53:137;-1:-1:-1;;;;;1519:53:137;;1441:138;4728:32:114;-1:-1:-1;;;;;4728:42:114;;;4650:120;4633:251;;;4844:29;;-1:-1:-1;;;4844:29:114;;;;;;;;;;;15652:98:190;3336:26;3272:16:110;3283:4;3272:10;:16::i;6032:538:114:-;6149:17;-1:-1:-1;;;;;6131:50:114;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6131:52:114;;;;;;;;-1:-1:-1;;6131:52:114;;;;;;;;;;;;:::i;:::-;;;6127:437;;6493:60;;-1:-1:-1;;;6493:60:114;;-1:-1:-1;;;;;3416:32:212;;6493:60:114;;;3398:51:212;3371:18;;6493:60:114;3252:203:212;6127:437:114;-1:-1:-1;;;;;;;;;;;6225:40:114;;6221:120;;6292:34;;-1:-1:-1;;;6292:34:114;;;;;6290:25:212;;;6263:18;;6292:34:114;6144:177:212;6221:120:114;6354:54;6384:17;6403:4;6354:29;:54::i;5007:213::-;5081:4;-1:-1:-1;;;;;5090:6:114;5073:23;;5069:145;;5174:29;;-1:-1:-1;;;5174:29:114;;;;;;;;;;;10473:288:112;10554:18;10612:19;:17;:19::i;:::-;10575:34;10593:15;10575:17;:34::i;:::-;:56;;;;:::i;:::-;10554:77;;10641:46;10665:8;10675:11;10641:23;:46::i;:::-;10702:52;;671:14:212;659:27;;641:46;;-1:-1:-1;;;;;10702:52:112;;;;;629:2:212;614:18;10702:52:112;;;;;;;10544:217;10473:288;:::o;12756:::-;12834:18;12892:26;12909:8;12892:16;:26::i;:::-;12855:34;12873:15;12855:17;:34::i;:::-;:63;;;;:::i;:::-;12834:84;;12928:39;12945:8;12955:11;12928:16;:39::i;:::-;12982:55;;;12750:14:212;12791:15;;;12773:34;;12843:15;;12838:2;12823:18;;12816:43;12982:55:112;;12713:18:212;12982:55:112;12570:295:212;3170:176:120;1979:19;:17;:19::i;:::-;1270:23;3288:16;;-1:-1:-1;;3288:16:120::1;3300:4;3288:16;::::0;;3319:20:::1;966:10:118::0;3326:12:120::1;887:96:118::0;5020:252:191;2686:36;:34;:36::i;:::-;1707:30;5180:33;;-1:-1:-1;;5180:33:191::1;5209:4;5180:33;::::0;;5228:37:::1;966:10:118::0;5252:12:191::1;887:96:118::0;4400:93:112;4446:7;4472:14;:12;:14::i;5070:218:6:-;5156:18;5191:13;5202:1;5156:18;5191:8;;:13;:::i;:::-;5184:21;;;:::i;:::-;5177:29;;;-1:-1:-1;1003:1:6;5220:28;;5216:65;;5272:8;;5257:24;;-1:-1:-1;;;5257:24:6;;;;;;;;;:::i;9071:205:113:-;9129:30;;3147:66;9186:27;8819:122;2970:67:114;6929:20:113;:18;:20::i;3416:222:112:-;6929:20:113;:18;:20::i;:::-;3549:82:112::1;3597:12;3611:19;3549:47;:82::i;7105:475::-:0;7191:4;-1:-1:-1;;;;;;;;;;;7314:4:112;7310:216;;7386:1;7360:14;:12;:14::i;:::-;-1:-1:-1;;;;;7360:28:112;;7356:114;;7415:40;;-1:-1:-1;;;7415:40:112;;;;;;;;;;;7356:114;7483:22;;;:32;;-1:-1:-1;;;;;;7483:32:112;-1:-1:-1;;;;;7483:32:112;;;;;7310:216;7542:31;7559:4;7565:7;7542:16;:31::i;1847:127:111:-;6929:20:113;:18;:20::i;:::-;1929:38:111::1;1954:12;1929:24;:38::i;4539:183:21:-:0;6929:20:113;:18;:20::i;:::-;4618:22:21::1;4630:9;4618:11;:22::i;:::-;4650:30;:28;:30::i;:::-;4690:25;:23;:25::i;3168:91:191:-:0;6929:20:113;:18;:20::i;:::-;3235:17:191::1;:15;:17::i;11759:1101:190:-:0;11955:20;11977:24;1979:19:120;:17;:19::i;:::-;2686:36:191::1;:34;:36::i;:::-;12140:41:190::2;12151:8;12161:11;12174:6;12140:10;:41::i;:::-;12105:76:::0;;-1:-1:-1;12105:76:190;-1:-1:-1;12196:17:190::2;12192:662;;;12646:105;12714:4;12720:16;12738:12;12667:16;-1:-1:-1::0;;;;;12646:48:190::2;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12646:67:190::2;::::0;:105;;:67:::2;:105::i;:::-;12192:662;;;12782:61;::::0;-1:-1:-1;;;12782:61:190;;-1:-1:-1;;;;;32870:32:212;;;12782:61:190::2;::::0;::::2;32852:51:212::0;32919:18;;;32912:34;;;12791:16:190::2;12782:41;::::0;::::2;::::0;32825:18:212;;12782:61:190::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;12192:662;11759:1101:::0;;;;;;;:::o;3700:766:4:-;3901:31;;:::i;:::-;4066:20;4089:26;4100:4;:14;;;4089:10;:26::i;:::-;4129:15;;;;4066:49;;-1:-1:-1;4129:19:4;4125:53;;4150:28;4162:4;:15;;;4150:11;:28::i;:::-;4267:8;-1:-1:-1;;;;;4267:13:4;;4289:12;4321:92;;;;;;;;4337:7;4321:92;;;;;;4346:25;4363:7;4346:16;:25::i;:::-;4321:92;;;;4373:8;4321:92;;;;4383:8;4321:92;;;;4411:1;4393:4;:15;;;:19;4321:92;;;;;4431:14;4267:192;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4189:270;3700:766;-1:-1:-1;;;;;;;3700:766:4:o;9702:153:190:-;9769:35;:33;:35::i;:::-;9814:34;9833:14;:12;:14::i;:::-;9814:18;:34::i;5710:138:110:-;5785:18;5798:4;5785:12;:18::i;:::-;3272:16;3283:4;3272:10;:16::i;:::-;5815:26:::1;5827:4;5833:7;5815:11;:26::i;11075:111:112:-:0;11141:38;11173:1;11177;11141:23;:38::i;4429:197:110:-;4517:22;4525:4;4531:7;4517;:22::i;:::-;4512:108;;4562:47;;-1:-1:-1;;;4562:47:110;;-1:-1:-1;;;;;32870:32:212;;4562:47:110;;;32852:51:212;32919:18;;;32912:34;;;32825:18;;4562:47:110;32678:274:212;16023:698:112;-1:-1:-1;;;;;;;;;;;16228:23:112;-1:-1:-1;;;;;;;;;;;3245:45:112;-1:-1:-1;;;16228:23:112;;;;16952:13;;16262:369;;17180:15;17169:26;;;;16309:312;;;16429:15;;;;16411:33;;-1:-1:-1;;;;;16411:33:112;-1:-1:-1;;;16429:15:112;;;;;-1:-1:-1;;;16411:33:112;;;;16309:312;;;16573:33;;;;;;;16309:312;-1:-1:-1;16641:15:112;;:26;;-1:-1:-1;;;;;16677:37:112;-1:-1:-1;;;16641:26:112;;;;;-1:-1:-1;;;;;16677:37:112;;-1:-1:-1;;;16677:37:112;;;;;;;;;;;;;;16023:698::o;17069:172:21:-;17140:16;17213:21;17176:33;17213:21;17176:9;:33;:::i;:::-;17175:59;;;;:::i;1573:123:24:-;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:24:o;17465:139:21:-;17529:16;17564:33;17576:21;-1:-1:-1;;;;;17564:33:21;;;:::i;14534:613:190:-;14675:24;1979:19:120;:17;:19::i;:::-;-1:-1:-1;;;;;14847:18:190;::::1;14843:44;;14880:6;14867:20;;14843:44;15004:55;::::0;-1:-1:-1;;;15004:55:190;;-1:-1:-1;;;;;32870:32:212;;;15004:55:190::1;::::0;::::1;32852:51:212::0;32919:18;;;32912:34;;;15013:16:190::1;15004:41;::::0;::::1;::::0;32825:18:212;;15004:55:190::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15132:8:190;;14534:613;-1:-1:-1;;;;;;14534:613:190:o;2186:130:24:-;2250:12;2281:28;:4;243:2;2281:4;;:28;:::i;:::-;2274:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2274:35:24;;2186:130;-1:-1:-1;;;;;;2186:130:24:o;640:284:23:-;824:17;877:6;885:7;894:9;905:11;860:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;853:64;;640:284;;;;;;:::o;4701:177:191:-;4781:25;:23;:25::i;:::-;4776:96;;4829:32;;-1:-1:-1;;;4829:32:191;;;;;;;;;;;7631:376:112;7718:4;-1:-1:-1;;;;;;;;;;;7841:26:112;;:55;;;;;7882:14;:12;:14::i;:::-;-1:-1:-1;;;;;7871:25:112;:7;-1:-1:-1;;;;;7871:25:112;;7841:55;7837:115;;;7919:22;;;7912:29;;-1:-1:-1;;;;;;7912:29:112;;;7837:115;7968:32;7986:4;7992:7;7968:17;:32::i;17828:147:21:-;17893:15;17934:33;17946:21;17934:9;:33;:::i;598:506:24:-;791:18;;732:17;;791:22;;;934:163;;1074:7;1083:13;1057:40;;;;;;;;35644:19:212;;;35719:3;35697:16;-1:-1:-1;;;;;;35693:51:212;35688:2;35679:12;;35672:73;35770:2;35761:12;;35489:290;1057:40:24;;;;;;;;;;;;;934:163;;;976:7;985:13;1017:10;1030:11;959:83;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;934:163;927:170;;598:506;;;;;;:::o;2909:126:120:-;2972:8;:6;:8::i;:::-;2967:62;;3003:15;;-1:-1:-1;;;3003:15:120;;;;;;;;;;;2264:344:137;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:137;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;14296:213:161:-;14352:6;14382:16;14374:24;;14370:103;;;14421:41;;-1:-1:-1;;;14421:41:161;;14452:2;14421:41;;;36502:36:212;36554:18;;;36547:34;;;36475:18;;14421:41:161;36321:266:212;14370:103:161;-1:-1:-1;14496:5:161;14296:213::o;15237:632:112:-;-1:-1:-1;;;;;;;;;;;15326:47:112;15454:21;:19;:21::i;:::-;15486:33;;15529:44;;;-1:-1:-1;;;15529:44:112;-1:-1:-1;;;;;;15529:44:112;;;-1:-1:-1;;;;;15486:33:112;;15529:44;;;;15429:46;-1:-1:-1;15685:27:112;;-1:-1:-1;15429:46:112;16952:13;;;;;16866:106;15685:27;15681:182;;;15822:30;;;;;;;15316:553;;15237:632;;:::o;13796:1249::-;13870:6;13888:19;13910;:17;:19::i;:::-;13888:41;;14859:12;14848:23;;:8;:23;;;:190;;15015:23;15030:8;15015:12;:23;:::i;:::-;14848:190;;;14897:51;;;;10004:6;14897:8;:51::i;2709:128:120:-;2774:8;:6;:8::i;:::-;2770:61;;;2805:15;;-1:-1:-1;;;2805:15:120;;;;;;;;;;;4447:179:191;4529:25;:23;:25::i;:::-;4525:95;;;4577:32;;-1:-1:-1;;;4577:32:191;;;;;;;;;;;7082:141:113;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:113;;;;;;;;;;;3644:468:112;6929:20:113;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;3894:33:112;::::1;3890:115;;3950:44;::::0;-1:-1:-1;;;3950:44:112;;3991:1:::1;3950:44;::::0;::::1;3398:51:212::0;3371:18;;3950:44:112::1;3252:203:212::0;3890:115:112::1;4014:30:::0;;-1:-1:-1;;;;;4014:30:112::1;-1:-1:-1::0;;;4014:30:112::1;::::0;::::1;;;::::0;;4054:51:::1;-1:-1:-1::0;4085:19:112;4054:10:::1;:51::i;7318:387:110:-:0;7395:4;-1:-1:-1;;;;;;;;;;;7485:22:110;7493:4;7499:7;7485;:22::i;:::-;7480:219;;7523:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7523:31:110;;;;;;;;;:38;;-1:-1:-1;;7523:38:110;7557:4;7523:38;;;7607:12;966:10:118;;887:96;7607:12:110;-1:-1:-1;;;;;7580:40:110;7598:7;-1:-1:-1;;;;;7580:40:110;7592:4;7580:40;;;;;;;;;;7641:4;7634:11;;;;;7480:219;7683:5;7676:12;;;;;7480:219;7401:304;7318:387;;;;:::o;1980:235:111:-;6929:20:113;:18;:20::i;:::-;-1:-1:-1;;;;;2076:26:111;::::1;2072:95;;2125:31;::::0;-1:-1:-1;;;2125:31:111;;2153:1:::1;2125:31;::::0;::::1;3398:51:212::0;3371:18;;2125:31:111::1;3252:203:212::0;2072:95:111::1;2176:32;2195:12;2176:18;:32::i;1456:189:5:-:0;6929:20:113;:18;:20::i;:::-;1532:26:5::1;1548:9;1532:15;:26::i;1618:188:147:-:0;1745:53;;;-1:-1:-1;;;;;37034:15:212;;;1745:53:147;;;37016:34:212;37086:15;;37066:18;;;37059:43;37118:18;;;;37111:34;;;1745:53:147;;;;;;;;;;36951:18:212;;;;1745:53:147;;;;;;;;-1:-1:-1;;;;;1745:53:147;-1:-1:-1;;;1745:53:147;;;1718:81;;1738:5;;1718:19;:81::i;5162:191:4:-;5228:17;5274:10;5261:9;:23;5257:62;;5293:26;;-1:-1:-1;;;5293:26:4;;5309:9;5293:26;;;6290:25:212;6263:18;;5293:26:4;6144:177:212;5730:410:4;5883:15;5901:8;-1:-1:-1;;;;;5901:16:4;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5883:36;-1:-1:-1;;;;;;5933:21:4;;5929:54;;5963:20;;-1:-1:-1;;;5963:20:4;;;;;;;;;;;5929:54;6057:76;-1:-1:-1;;;;;6057:32:4;;6090:10;6110:8;6121:11;6057:32;:76::i;11716:581:112:-;-1:-1:-1;;;;;;;;;;;11782:47:112;;11923:21;:19;:21::i;:::-;11885:59;;;;11959:24;11974:8;16952:13;;;;;16866:106;11959:24;11958:25;:58;;;-1:-1:-1;17180:15:112;17169:26;;;;11987:29;11958:58;11954:144;;;12039:48;;-1:-1:-1;;;12039:48:112;;671:14:212;659:27;;12039:48:112;;;641:46:212;614:18;;12039:48:112;497:196:212;11954:144:112;12107:47;2443:4:110;12139:14:112;:12;:14::i;:::-;12107:11;:47::i;:::-;-1:-1:-1;12164:40:112;2443:4:110;12195:8:112;12164:10;:40::i;:::-;-1:-1:-1;;12214:29:112;;-1:-1:-1;;;;;;12253:37:112;;;;-1:-1:-1;11716:581:112:o;3774:248:111:-;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:111;;-1:-1:-1;;;;;3941:19:111;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;7942:388:110:-;8020:4;-1:-1:-1;;;;;;;;;;;8109:22:110;8117:4;8123:7;8109;:22::i;:::-;8105:219;;;8181:5;8147:14;;;;;;;;;;;-1:-1:-1;;;;;8147:31:110;;;;;;;;;;:39;;-1:-1:-1;;8147:39:110;;;8205:40;966:10:118;;8147:14:110;;8205:40;;8181:5;8205:40;8266:4;8259:11;;;;;1671:281:137;1748:17;-1:-1:-1;;;;;1748:29:137;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:137;;-1:-1:-1;;;;;3416:32:212;;1805:47:137;;;3398:51:212;3371:18;;1805:47:137;3252:203:212;1744:119:137;-1:-1:-1;;;;;;;;;;;1872:73:137;;-1:-1:-1;;;;;;1872:73:137;-1:-1:-1;;;;;1872:73:137;;;;;;;;;;1671:281::o;3916:253:148:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:148;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;6113:122:137:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:137;;;;;;;;;;;5617:111:160;5675:7;5312:5;;;5709;;;5311:36;5306:42;;5701:20;5071:294;8485:120:113;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:113;;;;;;-1:-1:-1;8485:120:113:o;1787:123:2:-;6929:20:113;:18;:20::i;:::-;1867:36:2::1;1893:9;1867:25;:36::i;8370:720:147:-:0;8450:18;8478:19;8616:4;8613:1;8606:4;8600:11;8593:4;8587;8583:15;8580:1;8573:5;8566;8561:60;8673:7;8663:176;;8717:4;8711:11;8762:16;8759:1;8754:3;8739:40;8808:16;8803:3;8796:29;8663:176;-1:-1:-1;;8916:1:147;8910:8;8866:16;;-1:-1:-1;8942:15:147;;:68;;8994:11;9009:1;8994:16;;8942:68;;;-1:-1:-1;;;;;8960:26:147;;;:31;8942:68;8938:146;;;9033:40;;-1:-1:-1;;;9033:40:147;;-1:-1:-1;;;;;3416:32:212;;9033:40:147;;;3398:51:212;3371:18;;9033:40:147;3252:203:212;4437:582:148;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;4605:408::-;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:148;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:148;;-1:-1:-1;;;;;3416:32:212;;4933:24:148;;;3398:51:212;3371:18;;4933:24:148;3252:203:212;4853:119:148;-1:-1:-1;4992:10:148;4985:17;;1916:191:2;6929:20:113;:18;:20::i;:::-;-1:-1:-1;;;;;2010:23:2;::::1;2006:53;;2042:17;;-1:-1:-1::0;;;2042:17:2::1;;;;;;;;;;;5559:434:148::0;5690:17;;:21;5686:301;;5894:10;5888:17;5881:4;5869:10;5865:21;5858:48;5686:301;5957:19;;-1:-1:-1;;;5957:19:148;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:286:212:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:212;;209:43;;199:71;;266:1;263;256:12;698:158;760:5;805:3;796:6;791:3;787:16;783:26;780:46;;;822:1;819;812:12;780:46;-1:-1:-1;844:6:212;698:158;-1:-1:-1;698:158:212:o;861:360::-;949:6;1002:2;990:9;981:7;977:23;973:32;970:52;;;1018:1;1015;1008:12;970:52;1058:9;1045:23;-1:-1:-1;;;;;1083:6:212;1080:30;1077:50;;;1123:1;1120;1113:12;1077:50;1146:69;1207:7;1198:6;1187:9;1183:22;1146:69;:::i;1380:250::-;1465:1;1475:113;1489:6;1486:1;1483:13;1475:113;;;1565:11;;;1559:18;1546:11;;;1539:39;1511:2;1504:10;1475:113;;;-1:-1:-1;;1622:1:212;1604:16;;1597:27;1380:250::o;1635:271::-;1677:3;1715:5;1709:12;1742:6;1737:3;1730:19;1758:76;1827:6;1820:4;1815:3;1811:14;1804:4;1797:5;1793:16;1758:76;:::i;:::-;1888:2;1867:15;-1:-1:-1;;1863:29:212;1854:39;;;;1895:4;1850:50;;1635:271;-1:-1:-1;;1635:271:212:o;1911:1336::-;1300:12;;1288:25;;1362:4;1351:16;;;1345:23;1329:14;;;1322:47;2277:4;2325:3;2310:19;;2402:2;2440:3;2435:2;2424:9;2420:18;2413:31;2464:6;2499;2493:13;2530:6;2522;2515:22;2568:3;2557:9;2553:19;2546:26;;2631:3;2621:6;2618:1;2614:14;2603:9;2599:30;2595:40;2581:54;;2654:4;2693;2685:6;2681:17;2716:1;2726:429;2740:6;2737:1;2734:13;2726:429;;;2805:22;;;-1:-1:-1;;2801:37:212;2789:50;;2862:13;;2903:9;;2888:25;;2952:11;;2946:18;2984:15;;;2977:27;;;3027:48;3059:15;;;2946:18;3027:48;:::i;:::-;3017:58;-1:-1:-1;;3133:12:212;;;;3098:15;;;;2762:1;2755:9;2726:429;;;-1:-1:-1;;1300:12:212;;3237:2;3222:18;;1288:25;-1:-1:-1;;;1362:4:212;1351:16;;1345:23;1329:14;;;1322:47;-1:-1:-1;3172:6:212;-1:-1:-1;3187:54:212;1226:149;3460:154;3519:5;3564:2;3555:6;3550:3;3546:16;3542:25;3539:45;;;3580:1;3577;3570:12;3619:347;3670:8;3680:6;3734:3;3727:4;3719:6;3715:17;3711:27;3701:55;;3752:1;3749;3742:12;3701:55;-1:-1:-1;3775:20:212;;-1:-1:-1;;;;;3807:30:212;;3804:50;;;3850:1;3847;3840:12;3804:50;3887:4;3879:6;3875:17;3863:29;;3939:3;3932:4;3923:6;3915;3911:19;3907:30;3904:39;3901:59;;;3956:1;3953;3946:12;3901:59;3619:347;;;;;:::o;3971:131::-;-1:-1:-1;;;;;4046:31:212;;4036:42;;4026:70;;4092:1;4089;4082:12;4107:1049;4251:6;4259;4267;4275;4283;4291;4299;4352:3;4340:9;4331:7;4327:23;4323:33;4320:53;;;4369:1;4366;4359:12;4320:53;4392;4437:7;4426:9;4392:53;:::i;:::-;4382:63;;4492:2;4481:9;4477:18;4464:32;4454:42;;4547:3;4536:9;4532:19;4519:33;-1:-1:-1;;;;;4612:2:212;4604:6;4601:14;4598:34;;;4628:1;4625;4618:12;4598:34;4667:58;4717:7;4708:6;4697:9;4693:22;4667:58;:::i;:::-;4744:8;;-1:-1:-1;4641:84:212;-1:-1:-1;4829:3:212;4814:19;;4801:33;;-1:-1:-1;4843:31:212;4801:33;4843:31;:::i;:::-;4893:5;;-1:-1:-1;4951:3:212;4936:19;;4923:33;;4968:16;;;4965:36;;;4997:1;4994;4987:12;4965:36;;5036:60;5088:7;5077:8;5066:9;5062:24;5036:60;:::i;:::-;4107:1049;;;;-1:-1:-1;4107:1049:212;;-1:-1:-1;4107:1049:212;;;;5010:86;;-1:-1:-1;;;4107:1049:212:o;5959:180::-;6018:6;6071:2;6059:9;6050:7;6046:23;6042:32;6039:52;;;6087:1;6084;6077:12;6039:52;-1:-1:-1;6110:23:212;;5959:180;-1:-1:-1;5959:180:212:o;6326:315::-;6394:6;6402;6455:2;6443:9;6434:7;6430:23;6426:32;6423:52;;;6471:1;6468;6461:12;6423:52;6507:9;6494:23;6484:33;;6567:2;6556:9;6552:18;6539:32;6580:31;6605:5;6580:31;:::i;:::-;6630:5;6620:15;;;6326:315;;;;;:::o;6646:163::-;6713:20;;6773:10;6762:22;;6752:33;;6742:61;;6799:1;6796;6789:12;6742:61;6646:163;;;:::o;6814:252::-;6881:6;6889;6942:2;6930:9;6921:7;6917:23;6913:32;6910:52;;;6958:1;6955;6948:12;6910:52;6981:28;6999:9;6981:28;:::i;:::-;6971:38;7056:2;7041:18;;;;7028:32;;-1:-1:-1;;;6814:252:212:o;7071:118::-;7157:5;7150:13;7143:21;7136:5;7133:32;7123:60;;7179:1;7176;7169:12;7194:489;7288:6;7296;7349:2;7337:9;7328:7;7324:23;7320:32;7317:52;;;7365:1;7362;7355:12;7317:52;7405:9;7392:23;-1:-1:-1;;;;;7430:6:212;7427:30;7424:50;;;7470:1;7467;7460:12;7424:50;7493:69;7554:7;7545:6;7534:9;7530:22;7493:69;:::i;:::-;7483:79;;;7612:2;7601:9;7597:18;7584:32;7625:28;7647:5;7625:28;:::i;7688:259::-;1300:12;;1288:25;;1362:4;1351:16;;;1345:23;1329:14;;;1322:47;7884:2;7869:18;;7896:45;1226:149;8225:127;8286:10;8281:3;8277:20;8274:1;8267:31;8317:4;8314:1;8307:15;8341:4;8338:1;8331:15;8357:251;8429:2;8423:9;;;8459:15;;-1:-1:-1;;;;;8489:34:212;;8525:22;;;8486:62;8483:88;;;8551:18;;:::i;:::-;8587:2;8580:22;8357:251;:::o;8613:275::-;8684:2;8678:9;8749:2;8730:13;;-1:-1:-1;;8726:27:212;8714:40;;-1:-1:-1;;;;;8769:34:212;;8805:22;;;8766:62;8763:88;;;8831:18;;:::i;:::-;8867:2;8860:22;8613:275;;-1:-1:-1;8613:275:212:o;8893:186::-;8941:4;-1:-1:-1;;;;;8966:6:212;8963:30;8960:56;;;8996:18;;:::i;:::-;-1:-1:-1;9062:2:212;9041:15;-1:-1:-1;;9037:29:212;9068:4;9033:40;;8893:186::o;9084:806::-;9161:6;9169;9222:2;9210:9;9201:7;9197:23;9193:32;9190:52;;;9238:1;9235;9228:12;9190:52;9277:9;9264:23;9296:31;9321:5;9296:31;:::i;:::-;9346:5;-1:-1:-1;9402:2:212;9387:18;;9374:32;-1:-1:-1;;;;;9418:30:212;;9415:50;;;9461:1;9458;9451:12;9415:50;9484:22;;9537:4;9529:13;;9525:27;-1:-1:-1;9515:55:212;;9566:1;9563;9556:12;9515:55;9602:2;9589:16;9627:48;9643:31;9671:2;9643:31;:::i;:::-;9627:48;:::i;:::-;9698:2;9691:5;9684:17;9738:7;9733:2;9728;9724;9720:11;9716:20;9713:33;9710:53;;;9759:1;9756;9749:12;9710:53;9814:2;9809;9805;9801:11;9796:2;9789:5;9785:14;9772:45;9858:1;9853:2;9848;9841:5;9837:14;9833:23;9826:34;9879:5;9869:15;;;;;9084:806;;;;;:::o;9895:159::-;9962:20;;10022:6;10011:18;;10001:29;;9991:57;;10044:1;10041;10034:12;10059:256;10125:6;10133;10186:2;10174:9;10165:7;10161:23;10157:32;10154:52;;;10202:1;10199;10192:12;10154:52;10225:28;10243:9;10225:28;:::i;:::-;10215:38;;10272:37;10305:2;10294:9;10290:18;10272:37;:::i;:::-;10262:47;;10059:256;;;;;:::o;10320:218::-;10467:2;10456:9;10449:21;10430:4;10487:45;10528:2;10517:9;10513:18;10505:6;10487:45;:::i;10781:247::-;10840:6;10893:2;10881:9;10872:7;10868:23;10864:32;10861:52;;;10909:1;10906;10899:12;10861:52;10948:9;10935:23;10967:31;10992:5;10967:31;:::i;11033:280::-;11091:6;11144:2;11132:9;11123:7;11119:23;11115:32;11112:52;;;11160:1;11157;11150:12;11112:52;11199:9;11186:23;11249:14;11242:5;11238:26;11231:5;11228:37;11218:65;;11279:1;11276;11269:12;11523:671;11638:6;11646;11654;11662;11715:3;11703:9;11694:7;11690:23;11686:33;11683:53;;;11732:1;11729;11722:12;11683:53;11755;11800:7;11789:9;11755:53;:::i;:::-;11745:63;;11859:2;11848:9;11844:18;11831:32;-1:-1:-1;;;;;11878:6:212;11875:30;11872:50;;;11918:1;11915;11908:12;11872:50;11957:58;12007:7;11998:6;11987:9;11983:22;11957:58;:::i;:::-;12034:8;;-1:-1:-1;11931:84:212;-1:-1:-1;;12119:3:212;12104:19;;12091:33;12133:31;12091:33;12133:31;:::i;:::-;11523:671;;;;-1:-1:-1;11523:671:212;;-1:-1:-1;;11523:671:212:o;13095:395::-;13186:8;13196:6;13250:3;13243:4;13235:6;13231:17;13227:27;13217:55;;13268:1;13265;13258:12;13217:55;-1:-1:-1;13291:20:212;;-1:-1:-1;;;;;13323:30:212;;13320:50;;;13366:1;13363;13356:12;13320:50;13403:4;13395:6;13391:17;13379:29;;13463:3;13456:4;13446:6;13443:1;13439:14;13431:6;13427:27;13423:38;13420:47;13417:67;;;13480:1;13477;13470:12;13495:504;13620:6;13628;13681:2;13669:9;13660:7;13656:23;13652:32;13649:52;;;13697:1;13694;13687:12;13649:52;13737:9;13724:23;-1:-1:-1;;;;;13762:6:212;13759:30;13756:50;;;13802:1;13799;13792:12;13756:50;13841:98;13931:7;13922:6;13911:9;13907:22;13841:98;:::i;:::-;13958:8;;13815:124;;-1:-1:-1;13495:504:212;-1:-1:-1;;;;13495:504:212:o;14004:184::-;14062:6;14115:2;14103:9;14094:7;14090:23;14086:32;14083:52;;;14131:1;14128;14121:12;14083:52;14154:28;14172:9;14154:28;:::i;14193:553::-;14279:6;14287;14295;14303;14356:2;14344:9;14335:7;14331:23;14327:32;14324:52;;;14372:1;14369;14362:12;14324:52;14395:28;14413:9;14395:28;:::i;:::-;14385:38;;14442:37;14475:2;14464:9;14460:18;14442:37;:::i;:::-;14432:47;;14530:2;14519:9;14515:18;14502:32;-1:-1:-1;;;;;14549:6:212;14546:30;14543:50;;;14589:1;14586;14579:12;14543:50;14628:58;14678:7;14669:6;14658:9;14654:22;14628:58;:::i;:::-;14193:553;;;;-1:-1:-1;14705:8:212;-1:-1:-1;;;;14193:553:212:o;15254:529::-;15331:6;15339;15347;15400:2;15388:9;15379:7;15375:23;15371:32;15368:52;;;15416:1;15413;15406:12;15368:52;15455:9;15442:23;15474:31;15499:5;15474:31;:::i;:::-;15524:5;-1:-1:-1;15581:2:212;15566:18;;15553:32;15594:33;15553:32;15594:33;:::i;:::-;15646:7;-1:-1:-1;15705:2:212;15690:18;;15677:32;15718:33;15677:32;15718:33;:::i;:::-;15770:7;15760:17;;;15254:529;;;;;:::o;15788:658::-;15927:6;15935;15943;15987:9;15978:7;15974:23;16017:3;16013:2;16009:12;16006:32;;;16034:1;16031;16024:12;16006:32;16074:9;16061:23;-1:-1:-1;;;;;16099:6:212;16096:30;16093:50;;;16139:1;16136;16129:12;16093:50;16162:69;16223:7;16214:6;16203:9;16199:22;16162:69;:::i;:::-;16152:79;-1:-1:-1;;16265:2:212;-1:-1:-1;;16247:16:212;;16243:25;16240:45;;;16281:1;16278;16271:12;16240:45;;16319:2;16308:9;16304:18;16294:28;;16372:2;16361:9;16357:18;16344:32;16385:31;16410:5;16385:31;:::i;16451:615::-;16697:4;16739:3;16728:9;16724:19;16716:27;;16776:6;16770:13;16759:9;16752:32;-1:-1:-1;;;;;16844:4:212;16836:6;16832:17;16826:24;16822:49;16815:4;16804:9;16800:20;16793:79;16919:4;16911:6;16907:17;16901:24;16934:62;16990:4;16979:9;16975:20;16961:12;1300;;1288:25;;1362:4;1351:16;;;1345:23;1329:14;;1322:47;1226:149;16934:62;-1:-1:-1;1300:12:212;;17055:3;17040:19;;1288:25;1362:4;1351:16;;1345:23;1329:14;;;1322:47;17005:55;1226:149;17369:237;17455:6;17508:2;17496:9;17487:7;17483:23;17479:32;17476:52;;;17524:1;17521;17514:12;17476:52;17547:53;17592:7;17581:9;17547:53;:::i;17879:380::-;17958:1;17954:12;;;;18001;;;18022:61;;18076:4;18068:6;18064:17;18054:27;;18022:61;18129:2;18121:6;18118:14;18098:18;18095:38;18092:161;;18175:10;18170:3;18166:20;18163:1;18156:31;18210:4;18207:1;18200:15;18238:4;18235:1;18228:15;18686:127;18747:10;18742:3;18738:20;18735:1;18728:31;18778:4;18775:1;18768:15;18802:4;18799:1;18792:15;18818:336;18923:4;18981:11;18968:25;19075:2;19071:7;19060:8;19044:14;19040:29;19036:43;19016:18;19012:68;19002:96;;19094:1;19091;19084:12;19002:96;19115:33;;;;;18818:336;-1:-1:-1;;18818:336:212:o;19159:521::-;19236:4;19242:6;19302:11;19289:25;19396:2;19392:7;19381:8;19365:14;19361:29;19357:43;19337:18;19333:68;19323:96;;19415:1;19412;19405:12;19323:96;19442:33;;19494:20;;;-1:-1:-1;;;;;;19526:30:212;;19523:50;;;19569:1;19566;19559:12;19523:50;19602:4;19590:17;;-1:-1:-1;19633:14:212;19629:27;;;19619:38;;19616:58;;;19670:1;19667;19660:12;19685:184;19743:6;19796:2;19784:9;19775:7;19771:23;19767:32;19764:52;;;19812:1;19809;19802:12;19764:52;19835:28;19853:9;19835:28;:::i;19999:517::-;20100:2;20095:3;20092:11;20089:421;;;20136:5;20133:1;20126:16;20180:4;20177:1;20167:18;20250:2;20238:10;20234:19;20231:1;20227:27;20221:4;20217:38;20286:4;20274:10;20271:20;20268:47;;;-1:-1:-1;20309:4:212;20268:47;20364:2;20359:3;20355:12;20352:1;20348:20;20342:4;20338:31;20328:41;;20419:81;20437:2;20430:5;20427:13;20419:81;;;20496:1;20482:16;;20463:1;20452:13;20419:81;;20692:1194;-1:-1:-1;;;;;20809:3:212;20806:27;20803:53;;;20836:18;;:::i;:::-;20865:93;20954:3;20914:38;20946:4;20940:11;20914:38;:::i;:::-;20908:4;20865:93;:::i;:::-;20984:1;21009:2;21004:3;21001:11;21026:1;21021:607;;;;21672:1;21689:3;21686:93;;;-1:-1:-1;21745:19:212;;;21732:33;21686:93;-1:-1:-1;;20649:1:212;20645:11;;;20641:24;20637:29;20627:40;20673:1;20669:11;;;20624:57;21792:78;;20994:886;;21021:607;19946:1;19939:14;;;19983:4;19970:18;;-1:-1:-1;;21057:17:212;;;21171:229;21185:7;21182:1;21179:14;21171:229;;;21274:19;;;21261:33;21246:49;;21381:4;21366:20;;;;21334:1;21322:14;;;;21201:12;21171:229;;;21175:3;21428;21419:7;21416:16;21413:159;;;21552:1;21548:6;21542:3;21536;21533:1;21529:11;21525:21;21521:34;21517:39;21504:9;21499:3;21495:19;21482:33;21478:79;21470:6;21463:95;21413:159;;;21615:1;21609:3;21606:1;21602:11;21598:19;21592:4;21585:33;20994:886;;20692:1194;;;:::o;21891:266::-;21979:6;21974:3;21967:19;22031:6;22024:5;22017:4;22012:3;22008:14;21995:43;-1:-1:-1;22083:1:212;22058:16;;;22076:4;22054:27;;;22047:38;;;;22139:2;22118:15;;;-1:-1:-1;;22114:29:212;22105:39;;;22101:50;;21891:266::o;22162:1774::-;22419:2;22471:21;;;22444:18;;;22527:22;;;22390:4;;22568:2;22586:18;;;22650:1;22646:14;;;22631:30;;22627:39;;22689:6;22390:4;22723:1184;22737:6;22734:1;22731:13;22723:1184;;;22802:22;;;-1:-1:-1;;22798:36:212;22786:49;;22874:20;;22949:14;22945:27;;;-1:-1:-1;;22941:41:212;22917:66;;22907:94;;22997:1;22994;22987:12;22907:94;23027:31;;23081:4;23143:10;23117:24;23027:31;23117:24;:::i;:::-;23113:41;23105:6;23098:57;23231:6;23196:33;23225:2;23218:5;23214:14;23196:33;:::i;:::-;23192:46;23187:2;23179:6;23175:15;23168:71;23304:2;23297:5;23293:14;23280:28;23393:2;23389:7;23381:5;23365:14;23361:26;23357:40;23335:20;23331:67;23321:95;;23412:1;23409;23402:12;23321:95;23444:32;;;23552:16;;;;-1:-1:-1;23503:21:212;-1:-1:-1;;;;;23584:30:212;;23581:50;;;23627:1;23624;23617:12;23581:50;23680:6;23664:14;23660:27;23651:7;23647:41;23644:61;;;23701:1;23698;23691:12;23644:61;23742:2;23737;23729:6;23725:15;23718:27;23768:59;23823:2;23815:6;23811:15;23803:6;23794:7;23768:59;:::i;:::-;23885:12;;;;23758:69;-1:-1:-1;;;23850:15:212;;;;-1:-1:-1;22759:1:212;22752:9;22723:1184;;;-1:-1:-1;23924:6:212;;22162:1774;-1:-1:-1;;;;;;;;22162:1774:212:o;23941:331::-;24046:9;24057;24099:8;24087:10;24084:24;24081:44;;;24121:1;24118;24111:12;24081:44;24150:6;24140:8;24137:20;24134:40;;;24170:1;24167;24160:12;24134:40;-1:-1:-1;;24196:23:212;;;24241:25;;;;;-1:-1:-1;23941:331:212:o;24277:476::-;24468:3;24506:6;24500:13;24522:66;24581:6;24576:3;24569:4;24561:6;24557:17;24522:66;:::i;:::-;24610:16;;24663:6;24655;24610:16;24635:35;24727:1;24689:18;;24716:13;;;-1:-1:-1;24689:18:212;;24277:476;-1:-1:-1;;;24277:476:212:o;24758:244::-;24915:2;24904:9;24897:21;24878:4;24935:61;24992:2;24981:9;24977:18;24969:6;24961;24935:61;:::i;25007:331::-;25106:4;25164:11;25151:25;25258:3;25254:8;25243;25227:14;25223:29;25219:44;25199:18;25195:69;25185:97;;25278:1;25275;25268:12;25343:129;-1:-1:-1;;;;;25421:5:212;25417:30;25410:5;25407:41;25397:69;;25462:1;25459;25452:12;25477:994;25857:10;25830:25;25848:6;25830:25;:::i;:::-;25826:42;25815:9;25808:61;25932:4;25924:6;25920:17;25907:31;25900:4;25889:9;25885:20;25878:61;25789:4;25986;25978:6;25974:17;25961:31;26001:30;26025:5;26001:30;:::i;:::-;-1:-1:-1;;;;;26073:5:212;26069:30;26062:4;26051:9;26047:20;26040:60;;26136:6;26131:2;26120:9;26116:18;26109:34;26180:3;26174;26163:9;26159:19;26152:32;26207:62;26264:3;26253:9;26249:19;26241:6;26233;26207:62;:::i;:::-;-1:-1:-1;;;;;26306:32:212;;26326:3;26285:19;;26278:61;26376:22;;;26370:3;26355:19;;26348:51;26416:49;26380:6;26450;26442;26416:49;:::i;:::-;26408:57;25477:994;-1:-1:-1;;;;;;;;;;25477:994:212:o;26476:647::-;26555:6;26608:2;26596:9;26587:7;26583:23;26579:32;26576:52;;;26624:1;26621;26614:12;26576:52;26657:9;26651:16;-1:-1:-1;;;;;26682:6:212;26679:30;26676:50;;;26722:1;26719;26712:12;26676:50;26745:22;;26798:4;26790:13;;26786:27;-1:-1:-1;26776:55:212;;26827:1;26824;26817:12;26776:55;26856:2;26850:9;26881:48;26897:31;26925:2;26897:31;:::i;26881:48::-;26952:2;26945:5;26938:17;26992:7;26987:2;26982;26978;26974:11;26970:20;26967:33;26964:53;;;27013:1;27010;27003:12;26964:53;27026:67;27090:2;27085;27078:5;27074:14;27069:2;27065;27061:11;27026:67;:::i;27342:349::-;27432:6;27485:2;27473:9;27464:7;27460:23;27456:32;27453:52;;;27501:1;27498;27491:12;27453:52;27527:22;;:::i;:::-;27585:9;27572:23;27565:5;27558:38;27656:2;27645:9;27641:18;27628:32;27623:2;27616:5;27612:14;27605:56;27680:5;27670:15;;;27342:349;;;;:::o;28035:275::-;28129:6;28182:2;28170:9;28161:7;28157:23;28153:32;28150:52;;;28198:1;28195;28188:12;28150:52;28230:9;28224:16;28249:31;28274:5;28249:31;:::i;28765:245::-;28823:6;28876:2;28864:9;28855:7;28851:23;28847:32;28844:52;;;28892:1;28889;28882:12;28844:52;28931:9;28918:23;28950:30;28974:5;28950:30;:::i;29015:479::-;29282:1;29278;29273:3;29269:11;29265:19;29257:6;29253:32;29242:9;29235:51;29322:6;29317:2;29306:9;29302:18;29295:34;29377:6;29369;29365:19;29360:2;29349:9;29345:18;29338:47;29421:3;29416:2;29405:9;29401:18;29394:31;29216:4;29442:46;29483:3;29472:9;29468:19;29460:6;29442:46;:::i;29767:379::-;29960:2;29949:9;29942:21;29923:4;29986:45;30027:2;30016:9;30012:18;30004:6;29986:45;:::i;:::-;30079:9;30071:6;30067:22;30062:2;30051:9;30047:18;30040:50;30107:33;30133:6;30125;30107:33;:::i;30151:245::-;30218:6;30271:2;30259:9;30250:7;30246:23;30242:32;30239:52;;;30287:1;30284;30277:12;30239:52;30319:9;30313:16;30338:28;30360:5;30338:28;:::i;30401:893::-;30626:2;30615:9;30608:21;30684:10;30675:6;30669:13;30665:30;30660:2;30649:9;30645:18;30638:58;30750:4;30742:6;30738:17;30732:24;30727:2;30716:9;30712:18;30705:52;30589:4;30804:2;30796:6;30792:15;30786:22;30845:4;30839:3;30828:9;30824:19;30817:33;30873:52;30920:3;30909:9;30905:19;30891:12;30873:52;:::i;:::-;30859:66;;30974:2;30966:6;30962:15;30956:22;31048:2;31044:7;31032:9;31024:6;31020:22;31016:36;31009:4;30998:9;30994:20;30987:66;31076:41;31110:6;31094:14;31076:41;:::i;:::-;31186:3;31174:16;;;;31168:23;31161:31;31154:39;31148:3;31133:19;;31126:68;-1:-1:-1;;;;;;;;31255:32:212;;;;31248:4;31233:20;;;31226:62;31062:55;30401:893::o;31299:284::-;31369:5;31417:4;31405:9;31400:3;31396:19;31392:30;31389:50;;;31435:1;31432;31425:12;31389:50;31457:22;;:::i;:::-;31448:31;;31508:9;31502:16;31495:5;31488:31;31572:2;31561:9;31557:18;31551:25;31546:2;31539:5;31535:14;31528:49;31299:284;;;;:::o;31588:260::-;31689:6;31742:2;31730:9;31721:7;31717:23;31713:32;31710:52;;;31758:1;31755;31748:12;31710:52;31781:61;31834:7;31823:9;31781:61;:::i;31853:184::-;31923:6;31976:2;31964:9;31955:7;31951:23;31947:32;31944:52;;;31992:1;31989;31982:12;31944:52;-1:-1:-1;32015:16:212;;31853:184;-1:-1:-1;31853:184:212:o;32042:127::-;32103:10;32098:3;32094:20;32091:1;32084:31;32134:4;32131:1;32124:15;32158:4;32155:1;32148:15;32174:176;32241:14;32275:10;;;32287;;;32271:27;;32310:11;;;32307:37;;;32324:18;;:::i;32355:318::-;-1:-1:-1;;;;;;32475:19:212;;32546:11;;;;32577:1;32569:10;;32566:101;;;32654:2;32648;32641:3;32638:1;32634:11;32631:1;32627:19;32623:28;32619:2;32615:37;32611:46;32602:55;;32566:101;;;32355:318;;;;:::o;32957:684::-;33062:6;33115:3;33103:9;33094:7;33090:23;33086:33;33083:53;;;33132:1;33129;33122:12;33083:53;33165:2;33159:9;33207:4;33199:6;33195:17;33278:6;33266:10;33263:22;-1:-1:-1;;;;;33230:10:212;33227:34;33224:62;33221:88;;;33289:18;;:::i;:::-;33325:2;33318:22;33364:16;;33349:32;;33424:2;33409:18;;33403:25;33437:30;33403:25;33437:30;:::i;:::-;33495:2;33483:15;;33476:30;33539:70;33601:7;33596:2;33581:18;;33539:70;:::i;:::-;33534:2;33522:15;;33515:95;33526:6;32957:684;-1:-1:-1;;;32957:684:212:o;33925:217::-;33965:1;33991;33981:132;;34035:10;34030:3;34026:20;34023:1;34016:31;34070:4;34067:1;34060:15;34098:4;34095:1;34088:15;33981:132;-1:-1:-1;34127:9:212;;33925:217::o;34147:168::-;34220:9;;;34251;;34268:15;;;34262:22;;34248:37;34238:71;;34289:18;;:::i;34320:255::-;34440:19;;34479:2;34471:11;;34468:101;;;-1:-1:-1;;34540:2:212;34536:12;;;34533:1;34529:20;34525:33;34514:45;34320:255;;;;:::o;34580:331::-;-1:-1:-1;;;;;;34700:19:212;;34784:11;;;;34815:1;34807:10;;34804:101;;;34876:1;34872:11;;;;34869:1;34865:19;34861:28;;;34853:37;34849:46;;;;34580:331;-1:-1:-1;;34580:331:212:o;34916:568::-;-1:-1:-1;;;;;35181:3:212;35177:28;35168:6;35163:3;35159:16;35155:51;35150:3;35143:64;35267:10;35262:3;35258:20;35249:6;35244:3;35240:16;35236:43;35232:1;35227:3;35223:11;35216:64;35310:6;35305:2;35300:3;35296:12;35289:28;35125:3;35346:6;35340:13;35362:75;35430:6;35425:2;35420:3;35416:12;35409:4;35401:6;35397:17;35362:75;:::i;:::-;35457:16;;;;35475:2;35453:25;;34916:568;-1:-1:-1;;;;;34916:568:212:o;35784:532::-;36025:6;36020:3;36013:19;-1:-1:-1;;;;;36088:3:212;36084:28;36075:6;36070:3;36066:16;36062:51;36057:2;36052:3;36048:12;36041:73;36144:6;36139:2;36134:3;36130:12;36123:28;35995:3;36180:6;36174:13;36196:73;36262:6;36257:2;36252:3;36248:12;36243:2;36235:6;36231:15;36196:73;:::i;:::-;36289:16;;;;36307:2;36285:25;;35784:532;-1:-1:-1;;;;;35784:532:212:o;36592:179::-;36660:14;36707:10;;;36695;;;36691:27;;36730:12;;;36727:38;;;36745:18;;:::i;37412:287::-;37541:3;37579:6;37573:13;37595:66;37654:6;37649:3;37642:4;37634:6;37630:17;37595:66;:::i","linkReferences":{},"immutableReferences":{"2051":[{"start":1772,"length":32},{"start":3376,"length":32},{"start":6895,"length":32},{"start":8036,"length":32},{"start":8830,"length":32},{"start":10744,"length":32},{"start":13001,"length":32},{"start":13184,"length":32}],"4659":[{"start":2213,"length":32},{"start":11295,"length":32},{"start":11409,"length":32},{"start":11871,"length":32}],"68763":[{"start":9130,"length":32},{"start":9171,"length":32},{"start":9524,"length":32}],"87797":[{"start":2131,"length":32},{"start":7478,"length":32},{"start":7514,"length":32},{"start":10378,"length":32},{"start":10412,"length":32},{"start":10598,"length":32},{"start":11522,"length":32}],"87800":[{"start":2261,"length":32},{"start":7440,"length":32},{"start":10336,"length":32}]}},"methodIdentifiers":{"BRIDGEABLE_TOKEN()":"903df521","DEFAULT_ADMIN_ROLE()":"a217fddf","PAUSER_ROLE()":"e63ab1e9","SEND()":"1f5e1334","SEND_AND_CALL()":"134d4f25","UPGRADER_ROLE()":"f72c0d8b","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","acceptDefaultAdminTransfer()":"cefc1429","allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","approvalRequired()":"9f68b964","beginDefaultAdminTransfer(address)":"634e93da","cancelDefaultAdminTransfer()":"d602b9fd","changeDefaultAdminDelay(uint48)":"649a5ec7","combineOptions(uint32,uint16,bytes)":"bc70b354","decimalConversionRate()":"963efcaa","defaultAdmin()":"84ef8ffc","defaultAdminDelay()":"cc8463c8","defaultAdminDelayIncreaseWait()":"022d63fb","endpoint()":"5e280f11","enforcedOptions(uint32,uint16)":"5535d461","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,address,address)":"c0c53b8b","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","msgInspector()":"111ecdad","nextNonce(uint32,bytes32)":"7d25a05e","oApp()":"52ae2879","oAppVersion()":"17442b70","oftVersion()":"156a0d0f","outboundTransfersPaused()":"a8d2dab7","owner()":"8da5cb5b","pause()":"8456cb59","pauseOutboundTransfers()":"86843aa1","pauseStatus()":"466916ca","paused()":"5c975abb","peers(uint32)":"bb0b6a53","pendingDefaultAdmin()":"cf6eefb7","pendingDefaultAdminDelay()":"a1eda53c","preCrime()":"b731ea0a","proxiableUUID()":"52d1902d","quoteOFT((uint32,bytes32,uint256,uint256,bytes,bytes,bytes))":"0d35b415","quoteSend((uint32,bytes32,uint256,uint256,bytes,bytes,bytes),bool)":"3b6f743b","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rollbackDefaultAdminDelay()":"0aa6220b","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","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","unpauseOutboundTransfers()":"1657c3b8","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"approvalRequired_\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"bridgeableToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"lzEndpoint\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedOutboundTransfersPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedOutboundTransfersPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLocalDecimals\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"options\",\"type\":\"bytes\"}],\"name\":\"InvalidOptions\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"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\":[],\"name\":\"NotInitializing\",\"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\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"OperationNotAllowed\",\"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\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"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\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"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\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"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\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OutboundTransfersPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OutboundTransfersUnpaused\",\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BRIDGEABLE_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":[],\"name\":\"UPGRADER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"approvalRequired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"decimalConversionRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"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\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialUpgrader\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialPauser\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"msgInspector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"outboundTransfersPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseOutboundTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"fullyPaused\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"onlyOutboundTransfersPaused\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_eid\",\"type\":\"uint32\"}],\"name\":\"peers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preCrime\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollbackDefaultAdminDelay\",\"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\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseOutboundTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A LayerZero OFT (Omnichain Fungible Token) bridge implementation for RLC tokens This contract enables cross-chain transfer of RLC tokens using LayerZero's OFT standard. It overrides the `_debit` and `_credit` functions to use external mint and burn functions on the CrosschainRLC token contract. Cross-chain Transfer Mechanism: 1. When sending tokens FROM this chain: RLC tokens are permanently burned from the sender's balance 2. When receiving tokens TO this chain: New RLC tokens are minted to the recipient's balance This ensures the total supply across all chains remains constant - tokens destroyed on one chain are minted on another, maintaining a 1:1 peg across the entire ecosystem. Dual-Pause Emergency System: 1. Complete pause: Blocks all bridge operations (inbound and outbound transfers) 2. Only outbout transfers pause: Blocks only outbound transfers, allows users to receive/withdraw funds Architecture Overview: This bridge supports two distinct deployment scenarios: 1. Non-Mainnet Chains (L2s, sidechains, etc.): - BRIDGEABLE_TOKEN: Points to RLCCrosschain contract (mintable/burnable tokens) - APPROVAL_REQUIRED: false (bridge can mint/burn directly) - Mechanism: Mint tokens on transfer-in, burn tokens on transfer-out 2. Ethereum Mainnet: - BRIDGEABLE_TOKEN: Points to LiquidityUnifier contract (manages original RLC tokens) - APPROVAL_REQUIRED: true (requires user approval for token transfers) - Mechanism: Lock tokens on transfer-out, unlock tokens on transfer-in The LiquidityUnifier contract acts as a relayer, implementing ERC-7802 interface to provide consistent lock/unlock operations for the original RLC token contract that may not natively support the crosschain standard.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedOutboundTransfersPause()\":[{\"details\":\"The operation failed because send operations are paused\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedOutboundTransfersPause()\":[{\"details\":\"The operation failed because send operations are not paused\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"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.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OutboundTransfersPaused(address)\":{\"details\":\"Emitted when outbound transfer pause is triggered by `account`\"},\"OutboundTransfersUnpaused(address)\":{\"details\":\"Emitted when outbound transfer pause is lifted by `account`\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"PreCrimeSet(address)\":{\"details\":\"Emitted when the preCrime contract address is set.\",\"params\":{\"preCrimeAddress\":\"The address of the preCrime contract.\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"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.\"}},\"approvalRequired()\":{\"returns\":{\"_0\":\"requiresApproval Returns true if deployed on Ethereum Mainnet, false otherwise\"}},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"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.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"details\":\"Constructor for the LayerZero bridge contract\",\"params\":{\"bridgeableToken\":\"The RLC token contract address that implements IERC7802 interface\",\"lzEndpoint\":\"The LayerZero endpoint address for this chain\"}},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address,address,address)\":{\"params\":{\"initialAdmin\":\"Address that will receive owner and default admin roles\",\"initialPauser\":\"Address that will receive the pauser role\",\"initialUpgrader\":\"Address that will receive the upgrader role\"}},\"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.\"}},\"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 OAppSender.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.\"}},\"outboundTransfersPaused()\":{\"details\":\"Returns true if send operations are paused, false otherwise\"},\"owner()\":{\"returns\":{\"_0\":\"The address of the current owner and default admin\"}},\"pause()\":{\"custom:security\":\"Critical emergency function for complete bridge shutdown\",\"details\":\"Can only be called by accounts with PAUSER_ROLE When fully paused: - All _debit operations (outbound transfers) are blocked - All _credit operations (inbound transfers) are blocked - Use this for critical security incidents (e.g., LayerZero exploit)\"},\"pauseOutboundTransfers()\":{\"custom:security\":\"Moderate emergency function allowing inbound messages while blocking outbound transfers.\",\"details\":\"Can only be called by accounts with PAUSER_ROLE When outbound transfers are paused: - All _debit operations (outbound transfers) are blocked - All _credit operations (inbound transfers) still work - Users can still receive funds and \\\"exit\\\" their positions - Use this for less critical issues or when you want to allow withdrawals\"},\"pauseStatus()\":{\"details\":\"Returns the overall operational state of the contract\",\"returns\":{\"fullyPaused\":\"True if complete pause is active (blocks all operations)\",\"onlyOutboundTransfersPaused\":\"True if outbound transfer pause is active (blocks only send operations)\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"peers(uint32)\":{\"params\":{\"_eid\":\"The endpoint ID.\"},\"returns\":{\"_0\":\"peer The address of the peer associated with the specified endpoint.\"}},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"preCrime()\":{\"details\":\"Retrieves the address of the preCrime contract implementation.\",\"returns\":{\"_0\":\"The address of the preCrime contract.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"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\":\"Overridden to prevent ownership renouncement. AccessControlDefaultAdminRulesUpgradeable is used to manage ownership.\"},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"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.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"token()\":{\"returns\":{\"_0\":\"The address of the RLC token contract\"}},\"transferOwnership(address)\":{\"details\":\"Overridden to prevent ownership transfer. AccessControlDefaultAdminRulesUpgradeable is used to manage ownership.\"},\"unpause()\":{\"details\":\"Can only be called by accounts with PAUSER_ROLE\"},\"unpauseOutboundTransfers()\":{\"details\":\"Can only be called by accounts with PAUSER_ROLE\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"APPROVAL_REQUIRED\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\",\"details\":\"Indicates the token transfer mechanism required for this deployment. - true: Ethereum Mainnet deployment requiring user approval (lock/unlock mechanism) - false: Non Ethereum Mainnet deployment with direct mint/burn capabilities This flag indicates on which chain the bridge is deployed.\"},\"BRIDGEABLE_TOKEN\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"PAUSER_ROLE\":{\"details\":\"Role identifier for accounts authorized to pause/unpause the contract\"},\"UPGRADER_ROLE\":{\"details\":\"Role identifier for accounts authorized to upgrade the contract\"}},\"title\":\"IexecLayerZeroBridge\",\"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 to send tokens Approval is only required on the Ethereum Mainnet where the original RLC contract is deployed.\"},\"combineOptions(uint32,uint16,bytes)\":{\"notice\":\"Combines options for a given endpoint and message type.\"},\"endpoint()\":{\"notice\":\"Retrieves the LayerZero endpoint associated with the OApp.\"},\"initialize(address,address,address)\":{\"notice\":\"Initializes the contract after proxy deployment\"},\"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 OApp version information.\"},\"oftVersion()\":{\"notice\":\"Retrieves interfaceID and the version of the OFT.\"},\"owner()\":{\"notice\":\"Returns the owner of the contract which is also the default admin.\"},\"pause()\":{\"notice\":\"LEVEL 1: Pauses all cross-chain transfers (complete shutdown)\"},\"pauseOutboundTransfers()\":{\"notice\":\"LEVEL 2: Pauses only outbound transfers.\"},\"peers(uint32)\":{\"notice\":\"Returns the peer address (OApp instance) associated with a specific 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.\"},\"token()\":{\"notice\":\"Returns the address of the underlying token being bridged\"},\"unpause()\":{\"notice\":\"LEVEL 1: Unpauses all cross-chain transfers\"},\"unpauseOutboundTransfers()\":{\"notice\":\"LEVEL 2: Unpauses outbound transfers (restores send functionality)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/bridges/layerZero/IexecLayerZeroBridge.sol\":\"IexecLayerZeroBridge\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@createx/contracts/=lib/createx/src/\",\":@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/\",\":@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/\",\":@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/\",\":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/\",\":@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/\",\":@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/\",\":@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":createx/=lib/createx/src/\",\":devtools/=lib/devtools/packages/toolbox-foundry/src/\",\":ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":layerzero-v1/=lib/layerzero-v1/contracts/\",\":layerzero-v2/=lib/layerzero-v2/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/\",\":rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/\",\":solady/=lib/createx/lib/solady/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol\":{\"keccak256\":\"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5cec12ab6677830bf2daefa94c402d848c223a2a081e4892985c1f4b06d30e4\",\"dweb:/ipfs/QmSV6NwuXCfWMZVFDRmeBgeWGBApwxqQxRbForCC2NTtgd\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol\":{\"keccak256\":\"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a70adbbf5e9299a71811663b98bf62cce797ba9029d0572fa2fa7aa8c5e85d\",\"dweb:/ipfs/QmaTx7dN5XAKXy6bY7r4QCLWRuoP3kcWfLd7VnHf38ysgH\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol\":{\"keccak256\":\"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c455f606d0d1e3390a8d2189c50110ac4b5a85ce1be47b4a2e36de92122728a\",\"dweb:/ipfs/QmfH7dQKjCZ4THCRZaPEzaTtv5r69k5F1LbmWQGrYHV76y\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol\":{\"keccak256\":\"0xc298cebb8133eed14fcc29865cb8bc5dbeba7b49a3127eea05653b738ceeb71c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9287b693b56b09524bc35411da88b32cf3b7cad7dabebe7d5208bc124550ad35\",\"dweb:/ipfs/QmadrXttz2wimqVYkRNvoMRAm6XBtSbU9sVjULHswgEURu\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/libs/OAppOptionsType3Upgradeable.sol\":{\"keccak256\":\"0x86290701e499aa0b3c95a544001b0a52b6246e134856f135080f3f6e39f6329a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7c33dfe24a72828f4905bd7a217650e3ce4a849ed85b92b17defa4bbc8da6d7\",\"dweb:/ipfs/Qmcf4qagMpdbf6pgHsxLDdA4NcPLnNVz2PVFaD2engESka\"]},\"lib/devtools/packages/oapp-evm-upgradeable/contracts/precrime/OAppPreCrimeSimulatorUpgradeable.sol\":{\"keccak256\":\"0x4db480709caa7ab95f964a0ef2998072ba4e9398a6dc9d8d2d2bba51002d070e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4298491d55c299fd392cdf4e4fa21c8b76823dba00fa1b5fe470724b9d89b59\",\"dweb:/ipfs/QmPBzbeMeA6k52CjFGQ7sBWAiLr5ioK7qaKBcSqVbrBnJ9\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"lib/devtools/packages/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"lib/devtools/packages/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"lib/devtools/packages/oapp-evm/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"lib/devtools/packages/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol\":{\"keccak256\":\"0x5eb7554c82fc0d19bb8bbbf296f0a04e9bcb43457cfe8c99a9489cfe7aa1a480\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99096efa80fa4238348769c4a0e4c0e3d2f888645481ce1054da8f03c8ab54e9\",\"dweb:/ipfs/QmeHVFns3YNztVvmLWdfUHbiDgD6uUCYhjr9PJZbp3FoLN\"]},\"lib/devtools/packages/oft-evm/contracts/interfaces/IOFT.sol\":{\"keccak256\":\"0x7ba6bb62fba7ee83451cfb0e727ddeef0e96b4388bd4e9ff0fc6ce103e1101c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfbd447f2e8a730bd46a14c3c3e6a0b2bf7446145579603a9793ba5ac1dd38b4\",\"dweb:/ipfs/QmZ4nx4iGrFmBHvYFgki5TXFdCHz4Co38hgdgwpRaM7NLs\"]},\"lib/devtools/packages/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":{\"keccak256\":\"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e\",\"dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK\"]},\"lib/devtools/packages/oft-evm/contracts/libs/OFTMsgCodec.sol\":{\"keccak256\":\"0x5358948017669c03e157f871d8c38e988f9004dbd0801ad3119d2487f0d40b0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d0f1bf32a80af9b99cd93fefa373dac5c27463351cc35f62b9c2439d5b9258\",\"dweb:/ipfs/Qmb81qoxzMwV3PkPANRvnXf4fJTsZ5sjJ8r2df9V2vhh6q\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0xd710f9efe703982e8eabe15d19d6114af753ef42f2796551da782a0fb6633e4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5c9c874871469c871004d49a1cb5304e63ea3faaf366bfed9d718abbb9cc20a\",\"dweb:/ipfs/QmarXxE4dezAa5gBe82KCrcvWcMwa3BYqkfXbDQ3rRjfEB\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xca0f8798297e39106cad374524780916b7ea20033641df3a9102aae253099aeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77d5c809873db24e02fc288ad506087853911f5daf0fb27e499333b4e75e3af1\",\"dweb:/ipfs/QmWNqoEj7NH3neSNNfoHwXfynrGqJu5JsvMfHe8fZB7isR\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol\":{\"keccak256\":\"0x583c53a3869e33f3a315d4160e45f29b339411af57e7648d27a9669cfd231e71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9102a3358b3b6c79fdabc6ab8eb7357bc959a25d62d47102e3886e9dc5222859\",\"dweb:/ipfs/QmUbJ22o7QHbWK7fyywxssPghJ8qa6MSCX8tmySusPGAp2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x2f0ea26703f46fc430ad9202a63f07521d234b9a94a1a7b019f4973bed7a35a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccf228512ceb777b145d339b50b8b6a72393140cdd61bcb7bf842a89230e4fe7\",\"dweb:/ipfs/QmeWaUw193GDphNkPhJnpHQpfJBrv4v2QRbfGTdfYNTiEE\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x5643a5cadd1278581308b20becb48a50946c159fc31c29fc407ea9a61fc865d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d79f305a239207a24fa2174897c8ea8ff1e81cb790d440fd54c89a0e85f63e\",\"dweb:/ipfs/QmT847eeAMnRN3DaG1zsKNMn7qipNAidqv1REnKexPkrfA\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x6bcb2fcfabb3cac0f5fdae3d2ed6e385465940fd47f8e8e6a1f8ff6f0cfb2f49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f6bb73761e518e4a9f91051a52baf711fa2d051694c24a2568df6f12ea5c032\",\"dweb:/ipfs/QmWjvqi5f8MFoLVSSrtVgKGNrRTR9VwQf4yBjEPrZFbh5y\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xc15298eb2b9ba5e18a8c9d12f93ad17a3e162a5c1d9b85f54c8adb5827b0d4da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f3c3d8f81d2daf1231890a6a2f897be365d6a479b53dcd52ec2527b5d3faf41\",\"dweb:/ipfs/QmeNdkd6u4at9pd2GAyyqxzrVGGvxfLpGmAKnFoYM5ya2e\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x81b022028c39007cce9920c394b9cddd1cb9f3a1c0398f254b4a6492df92ad2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0b61b8a5c69b4df993c3d6f94c174ab293aa8698d149bce7be2d88f82929beb\",\"dweb:/ipfs/QmbtacmB1k8ginfrHvAJpjVeqnjYGfXYrkXmMPYEb83z4t\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x4baab1fac32bbb35f8fff58bfa766d5cdf46d2b3f9e0a9c019669516375b2e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5086df4eb774143759240d88b0a27398cb5287ad20cc3dd0b7efffd9392490d8\",\"dweb:/ipfs/QmXjnRum2SUpPWDYCGRJ19unmF59L9LZaCY8aL3KTNYLLu\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xb5d81383d40f4006d1ce4bbad0064e7a930e17302cbe2a745e09cb403f042733\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fc4a5681c2f00f41f49260a36ae6bbe1121dd93d470ea24d51d556eff2980be\",\"dweb:/ipfs/QmUBW6TwVWtGP96ka9TfuGivd27kH8CtkXD8RQAAecSFiR\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0xcd7427e60cd143d0b9f819f4a23912e4029fe83b6548a194e70f4007a86ecc2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98b14ac384b4a47c276d22dd8d99c85c87280f41fd36b10e87489187a8d55c66\",\"dweb:/ipfs/QmTa3JrEi4ASMZ5gHN8XfQPFHubJNx6j3re7qYWmUMKDqi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xe5295ec6d987e3b73b7078e787dac664a50f5965d6d65c16c2399cc3a1aaaabf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e282e632c6bf23a0862e3e6558356ce7142971f00a401c29de279df9029f2973\",\"dweb:/ipfs/QmbPEWi9yA35ZD13ZxL81JfAiqDwTk7xM7NPvUQCbkhmbY\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol\":{\"keccak256\":\"0x6b124f06f18f780a257d7bc622fb5678ffc380bc4d6c0b4e1d096223a2668096\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27c82df9020aa9839c80a98f565edb3408a9d1d988b26bc4cbeb547735f3ecdf\",\"dweb:/ipfs/QmY6xS6CzS5vTtx82V7Kfk3tqwgSdpx6LXyPCFFRtWiTwZ\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x03f5d1fcbf36a510aa90080cda37805aa22bc3525bf038742683c8b6ea1b8566\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43fbc77da90094d6dd9660248d60bf8c486ba4f86c717048c70d80891ecdf50f\",\"dweb:/ipfs/QmaWXadWeFuWs1QrAzJqzTdmUaXpM7YD1tQXLGx4mW3vUo\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x77ec7f971392aad4657542c952ccb88d8bd05090645bb282c3d8bfa9b1662781\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58c5b2f3961e6ee017a68cc94c8c2949b6bade20c3b2170cc25cafe66fc5924b\",\"dweb:/ipfs/QmacAUjdb1RtFjwVVzsJX5wvQTMsPsY9mKeaB93VRu3TSX\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xfe37358f223eddd65d61bb62b0b7bdb69d7101b5ec8d484292b8c1583a153b8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28dd43f30af3c12ae0fc08dd031b1250e906ef3c95f63f30fac6fd15aee2a662\",\"dweb:/ipfs/QmUkSyWsSRx36w1ti7U6qnGnQgJq16wpMhjeJrnyn9AXwG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xbaffa0bcc92adf28a53cc3b68551fc3632cb8f849a0028cb8d5c06e4677715e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32e6f8f6b2e883c85e6a602c0882d9962ce2f92406961244e86cd974df815912\",\"dweb:/ipfs/Qmahvx6fPpecicq1aUE1JihCxV5ep1bfuPukzrxa8Ub5PS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x06871a0948d0fed9316ae59ee4368527e144911f5e284755312b5bfcde8b27ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c30e46d061d8a450c561935a1236b1885aa76ffab93a19b26dcb8868c839843\",\"dweb:/ipfs/QmZbWbeDyixTyYkVtJvuiQYfkQz12pS7zxWZF3Ju9PYwGH\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4ee0e04cc52827588793a141d5efb9830f179a17e80867cc332b3a30ceb30fd9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17d8f47fce493b34099ed9005c5aee3012488f063cfe1c34ed8f9e6fc3d576e5\",\"dweb:/ipfs/QmZco2GbZZhEMvG3BovyoGMAFKvfi2LhfNGQLn283LPrXf\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"src/bridges/layerZero/IexecLayerZeroBridge.sol\":{\"keccak256\":\"0xa7651e5da4c24f9beb72d47fa717051e12bbbf3df545292fc4cf4834694fd561\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://38b52a1df97e865e6d4d7dabe6c2d2b7ab079447b15fad03daaa79b16334cf1c\",\"dweb:/ipfs/QmZvGXTcDx91hnC4m9AYxurj9vVcbqmWhw5k8FjkjC151S\"]},\"src/bridges/utils/DualPausableUpgradeable.sol\":{\"keccak256\":\"0x99870d5df41a5c3c0abedc629fea1b12660013f1a5a7fb36913f37cc160ec3b5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://da06fcca07381cd9d4995d989a48d31dfca995fc1c901ebd18deb3bf20ba13f5\",\"dweb:/ipfs/QmWvnHy1Bax2KPRbobshitygQV3WHw32YPDqvfXq4ahL7K\"]},\"src/interfaces/IIexecLayerZeroBridge.sol\":{\"keccak256\":\"0x970b8202b88c17d02f048bdd4d7a48a99dfce8c935df7bc9997dbb4788613a77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8a83809f4a060d53937dc4c066c9d791e8e41ba4f732566382494bd8abafed5e\",\"dweb:/ipfs/QmTGqx1WrJPEbujozYHttaivxSAqFFbbM1PLEFNAVLspTZ\"]},\"src/interfaces/IRLCLiquidityUnifier.sol\":{\"keccak256\":\"0x4898c431b37bef3f4792707fcacfb28f8c5ae348fa959495a2e64ff203ce4522\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b859d6efd0a6729a216ed8d6f579982c8098a419183abd6bbef14b738ccdd93a\",\"dweb:/ipfs/QmfPojN6ynQABbYY9RZFDdaMLemZwT6JH1e6EQuQ3DF7uC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"approvalRequired_","type":"bool"},{"internalType":"address","name":"bridgeableToken","type":"address"},{"internalType":"address","name":"lzEndpoint","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"type":"error","name":"AccessControlEnforcedDefaultAdminDelay"},{"inputs":[],"type":"error","name":"AccessControlEnforcedDefaultAdminRules"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"type":"error","name":"AccessControlInvalidDefaultAdmin"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EnforcedOutboundTransfersPause"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedOutboundTransfersPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidDelegate"},{"inputs":[],"type":"error","name":"InvalidEndpointCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLocalDecimals"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"type":"error","name":"InvalidOptions"},{"inputs":[],"type":"error","name":"LzTokenUnavailable"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"type":"error","name":"NoPeer"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"type":"error","name":"NotEnoughNative"},{"inputs":[],"type":"error","name":"NotInitializing"},{"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":"string","name":"message","type":"string"}],"type":"error","name":"OperationNotAllowed"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"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":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"event","name":"DefaultAdminDelayChangeCanceled","anonymous":false},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48","indexed":false},{"internalType":"uint48","name":"effectSchedule","type":"uint48","indexed":false}],"type":"event","name":"DefaultAdminDelayChangeScheduled","anonymous":false},{"inputs":[],"type":"event","name":"DefaultAdminTransferCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address","indexed":true},{"internalType":"uint48","name":"acceptSchedule","type":"uint48","indexed":false}],"type":"event","name":"DefaultAdminTransferScheduled","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":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","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":"account","type":"address","indexed":false}],"type":"event","name":"OutboundTransfersPaused","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"OutboundTransfersUnpaused","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":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","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":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGEABLE_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":[],"stateMutability":"view","type":"function","name":"UPGRADER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptDefaultAdminTransfer"},{"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":[],"stateMutability":"view","type":"function","name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"beginDefaultAdminTransfer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelDefaultAdminTransfer"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"changeDefaultAdminDelay"},{"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":[],"stateMutability":"view","type":"function","name":"decimalConversionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"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":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"initialAdmin","type":"address"},{"internalType":"address","name":"initialUpgrader","type":"address"},{"internalType":"address","name":"initialPauser","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"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":[],"stateMutability":"view","type":"function","name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":"outboundTransfersPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseOutboundTransfers"},{"inputs":[],"stateMutability":"view","type":"function","name":"pauseStatus","outputs":[{"internalType":"bool","name":"fullyPaused","type":"bool"},{"internalType":"bool","name":"onlyOutboundTransfersPaused","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"}],"stateMutability":"view","type":"function","name":"peers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"schedule","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"schedule","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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":[],"stateMutability":"pure","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"rollbackDefaultAdminDelay"},{"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":"pure","type":"function","name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpauseOutboundTransfers"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"acceptDefaultAdminTransfer()":{"details":"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed."},"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."}},"approvalRequired()":{"returns":{"_0":"requiresApproval Returns true if deployed on Ethereum Mainnet, false otherwise"}},"beginDefaultAdminTransfer(address)":{"details":"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event."},"cancelDefaultAdminTransfer()":{"details":"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event."},"changeDefaultAdminDelay(uint48)":{"details":"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event."},"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."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor","details":"Constructor for the LayerZero bridge contract","params":{"bridgeableToken":"The RLC token contract address that implements IERC7802 interface","lzEndpoint":"The LayerZero endpoint address for this chain"}},"defaultAdmin()":{"details":"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder."},"defaultAdminDelay()":{"details":"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}."},"defaultAdminDelayIncreaseWait()":{"details":"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds)."},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address,address,address)":{"params":{"initialAdmin":"Address that will receive owner and default admin roles","initialPauser":"Address that will receive the pauser role","initialUpgrader":"Address that will receive the upgrader role"}},"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."}},"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 OAppSender.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."}},"outboundTransfersPaused()":{"details":"Returns true if send operations are paused, false otherwise"},"owner()":{"returns":{"_0":"The address of the current owner and default admin"}},"pause()":{"custom:security":"Critical emergency function for complete bridge shutdown","details":"Can only be called by accounts with PAUSER_ROLE When fully paused: - All _debit operations (outbound transfers) are blocked - All _credit operations (inbound transfers) are blocked - Use this for critical security incidents (e.g., LayerZero exploit)"},"pauseOutboundTransfers()":{"custom:security":"Moderate emergency function allowing inbound messages while blocking outbound transfers.","details":"Can only be called by accounts with PAUSER_ROLE When outbound transfers are paused: - All _debit operations (outbound transfers) are blocked - All _credit operations (inbound transfers) still work - Users can still receive funds and \"exit\" their positions - Use this for less critical issues or when you want to allow withdrawals"},"pauseStatus()":{"details":"Returns the overall operational state of the contract","returns":{"fullyPaused":"True if complete pause is active (blocks all operations)","onlyOutboundTransfersPaused":"True if outbound transfer pause is active (blocks only send operations)"}},"paused()":{"details":"Returns true if the contract is paused, and false otherwise."},"peers(uint32)":{"params":{"_eid":"The endpoint ID."},"returns":{"_0":"peer The address of the peer associated with the specified endpoint."}},"pendingDefaultAdmin()":{"details":"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced."},"pendingDefaultAdminDelay()":{"details":"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule."},"preCrime()":{"details":"Retrieves the address of the preCrime contract implementation.","returns":{"_0":"The address of the preCrime contract."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"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":"Overridden to prevent ownership renouncement. AccessControlDefaultAdminRulesUpgradeable is used to manage ownership."},"renounceRole(bytes32,address)":{"details":"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role."},"revokeRole(bytes32,address)":{"details":"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`."},"rollbackDefaultAdminDelay()":{"details":"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event."},"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."}},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"token()":{"returns":{"_0":"The address of the RLC token contract"}},"transferOwnership(address)":{"details":"Overridden to prevent ownership transfer. AccessControlDefaultAdminRulesUpgradeable is used to manage ownership."},"unpause()":{"details":"Can only be called by accounts with PAUSER_ROLE"},"unpauseOutboundTransfers()":{"details":"Can only be called by accounts with PAUSER_ROLE"},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"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 to send tokens Approval is only required on the Ethereum Mainnet where the original RLC contract is deployed."},"combineOptions(uint32,uint16,bytes)":{"notice":"Combines options for a given endpoint and message type."},"endpoint()":{"notice":"Retrieves the LayerZero endpoint associated with the OApp."},"initialize(address,address,address)":{"notice":"Initializes the contract after proxy deployment"},"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 OApp version information."},"oftVersion()":{"notice":"Retrieves interfaceID and the version of the OFT."},"owner()":{"notice":"Returns the owner of the contract which is also the default admin."},"pause()":{"notice":"LEVEL 1: Pauses all cross-chain transfers (complete shutdown)"},"pauseOutboundTransfers()":{"notice":"LEVEL 2: Pauses only outbound transfers."},"peers(uint32)":{"notice":"Returns the peer address (OApp instance) associated with a specific 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."},"token()":{"notice":"Returns the address of the underlying token being bridged"},"unpause()":{"notice":"LEVEL 1: Unpauses all cross-chain transfers"},"unpauseOutboundTransfers()":{"notice":"LEVEL 2: Unpauses outbound transfers (restores send functionality)"}},"version":1}},"settings":{"remappings":["@createx/contracts/=lib/createx/src/","@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/","@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/","@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/","@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/","@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/","@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","createx/=lib/createx/src/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","layerzero-v1/=lib/layerzero-v1/contracts/","layerzero-v2/=lib/layerzero-v2/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/","rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/","solady/=lib/createx/lib/solady/","solidity-bytes-utils/=lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/bridges/layerZero/IexecLayerZeroBridge.sol":"IexecLayerZeroBridge"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppCoreUpgradeable.sol":{"keccak256":"0xbe135fd35bf12c97aeb701caeb6c5d0c1c28c1ac2ab1d4219d15f8384951c140","urls":["bzz-raw://a5cec12ab6677830bf2daefa94c402d848c223a2a081e4892985c1f4b06d30e4","dweb:/ipfs/QmSV6NwuXCfWMZVFDRmeBgeWGBApwxqQxRbForCC2NTtgd"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppReceiverUpgradeable.sol":{"keccak256":"0xa38e5d26d044331212af7fc69dbbdebf25f527811bbd0492a4cee9ecdd3bd671","urls":["bzz-raw://13a70adbbf5e9299a71811663b98bf62cce797ba9029d0572fa2fa7aa8c5e85d","dweb:/ipfs/QmaTx7dN5XAKXy6bY7r4QCLWRuoP3kcWfLd7VnHf38ysgH"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppSenderUpgradeable.sol":{"keccak256":"0x4e13557c5dc7c983f69d32911572efdbddea071a03bf2fc50e1cad92ddf0ef49","urls":["bzz-raw://0c455f606d0d1e3390a8d2189c50110ac4b5a85ce1be47b4a2e36de92122728a","dweb:/ipfs/QmfH7dQKjCZ4THCRZaPEzaTtv5r69k5F1LbmWQGrYHV76y"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/OAppUpgradeable.sol":{"keccak256":"0xc298cebb8133eed14fcc29865cb8bc5dbeba7b49a3127eea05653b738ceeb71c","urls":["bzz-raw://9287b693b56b09524bc35411da88b32cf3b7cad7dabebe7d5208bc124550ad35","dweb:/ipfs/QmadrXttz2wimqVYkRNvoMRAm6XBtSbU9sVjULHswgEURu"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/oapp/libs/OAppOptionsType3Upgradeable.sol":{"keccak256":"0x86290701e499aa0b3c95a544001b0a52b6246e134856f135080f3f6e39f6329a","urls":["bzz-raw://d7c33dfe24a72828f4905bd7a217650e3ce4a849ed85b92b17defa4bbc8da6d7","dweb:/ipfs/Qmcf4qagMpdbf6pgHsxLDdA4NcPLnNVz2PVFaD2engESka"],"license":"MIT"},"lib/devtools/packages/oapp-evm-upgradeable/contracts/precrime/OAppPreCrimeSimulatorUpgradeable.sol":{"keccak256":"0x4db480709caa7ab95f964a0ef2998072ba4e9398a6dc9d8d2d2bba51002d070e","urls":["bzz-raw://c4298491d55c299fd392cdf4e4fa21c8b76823dba00fa1b5fe470724b9d89b59","dweb:/ipfs/QmPBzbeMeA6k52CjFGQ7sBWAiLr5ioK7qaKBcSqVbrBnJ9"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"lib/devtools/packages/oapp-evm/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"lib/devtools/packages/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol":{"keccak256":"0x5eb7554c82fc0d19bb8bbbf296f0a04e9bcb43457cfe8c99a9489cfe7aa1a480","urls":["bzz-raw://99096efa80fa4238348769c4a0e4c0e3d2f888645481ce1054da8f03c8ab54e9","dweb:/ipfs/QmeHVFns3YNztVvmLWdfUHbiDgD6uUCYhjr9PJZbp3FoLN"],"license":"MIT"},"lib/devtools/packages/oft-evm/contracts/interfaces/IOFT.sol":{"keccak256":"0x7ba6bb62fba7ee83451cfb0e727ddeef0e96b4388bd4e9ff0fc6ce103e1101c8","urls":["bzz-raw://cfbd447f2e8a730bd46a14c3c3e6a0b2bf7446145579603a9793ba5ac1dd38b4","dweb:/ipfs/QmZ4nx4iGrFmBHvYFgki5TXFdCHz4Co38hgdgwpRaM7NLs"],"license":"MIT"},"lib/devtools/packages/oft-evm/contracts/libs/OFTComposeMsgCodec.sol":{"keccak256":"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5","urls":["bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e","dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK"],"license":"MIT"},"lib/devtools/packages/oft-evm/contracts/libs/OFTMsgCodec.sol":{"keccak256":"0x5358948017669c03e157f871d8c38e988f9004dbd0801ad3119d2487f0d40b0b","urls":["bzz-raw://c7d0f1bf32a80af9b99cd93fefa373dac5c27463351cc35f62b9c2439d5b9258","dweb:/ipfs/Qmb81qoxzMwV3PkPANRvnXf4fJTsZ5sjJ8r2df9V2vhh6q"],"license":"MIT"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0xd710f9efe703982e8eabe15d19d6114af753ef42f2796551da782a0fb6633e4b","urls":["bzz-raw://b5c9c874871469c871004d49a1cb5304e63ea3faaf366bfed9d718abbb9cc20a","dweb:/ipfs/QmarXxE4dezAa5gBe82KCrcvWcMwa3BYqkfXbDQ3rRjfEB"],"license":"MIT"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"lib/layerzero-v2/packages/layerzero-v2/evm/protocol/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xca0f8798297e39106cad374524780916b7ea20033641df3a9102aae253099aeb","urls":["bzz-raw://77d5c809873db24e02fc288ad506087853911f5daf0fb27e499333b4e75e3af1","dweb:/ipfs/QmWNqoEj7NH3neSNNfoHwXfynrGqJu5JsvMfHe8fZB7isR"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol":{"keccak256":"0x583c53a3869e33f3a315d4160e45f29b339411af57e7648d27a9669cfd231e71","urls":["bzz-raw://9102a3358b3b6c79fdabc6ab8eb7357bc959a25d62d47102e3886e9dc5222859","dweb:/ipfs/QmUbJ22o7QHbWK7fyywxssPghJ8qa6MSCX8tmySusPGAp2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63","urls":["bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec","dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol":{"keccak256":"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5","urls":["bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb","dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x2f0ea26703f46fc430ad9202a63f07521d234b9a94a1a7b019f4973bed7a35a0","urls":["bzz-raw://ccf228512ceb777b145d339b50b8b6a72393140cdd61bcb7bf842a89230e4fe7","dweb:/ipfs/QmeWaUw193GDphNkPhJnpHQpfJBrv4v2QRbfGTdfYNTiEE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x5643a5cadd1278581308b20becb48a50946c159fc31c29fc407ea9a61fc865d1","urls":["bzz-raw://c7d79f305a239207a24fa2174897c8ea8ff1e81cb790d440fd54c89a0e85f63e","dweb:/ipfs/QmT847eeAMnRN3DaG1zsKNMn7qipNAidqv1REnKexPkrfA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol":{"keccak256":"0x6bcb2fcfabb3cac0f5fdae3d2ed6e385465940fd47f8e8e6a1f8ff6f0cfb2f49","urls":["bzz-raw://1f6bb73761e518e4a9f91051a52baf711fa2d051694c24a2568df6f12ea5c032","dweb:/ipfs/QmWjvqi5f8MFoLVSSrtVgKGNrRTR9VwQf4yBjEPrZFbh5y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0xc15298eb2b9ba5e18a8c9d12f93ad17a3e162a5c1d9b85f54c8adb5827b0d4da","urls":["bzz-raw://1f3c3d8f81d2daf1231890a6a2f897be365d6a479b53dcd52ec2527b5d3faf41","dweb:/ipfs/QmeNdkd6u4at9pd2GAyyqxzrVGGvxfLpGmAKnFoYM5ya2e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x81b022028c39007cce9920c394b9cddd1cb9f3a1c0398f254b4a6492df92ad2b","urls":["bzz-raw://e0b61b8a5c69b4df993c3d6f94c174ab293aa8698d149bce7be2d88f82929beb","dweb:/ipfs/QmbtacmB1k8ginfrHvAJpjVeqnjYGfXYrkXmMPYEb83z4t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x4baab1fac32bbb35f8fff58bfa766d5cdf46d2b3f9e0a9c019669516375b2e11","urls":["bzz-raw://5086df4eb774143759240d88b0a27398cb5287ad20cc3dd0b7efffd9392490d8","dweb:/ipfs/QmXjnRum2SUpPWDYCGRJ19unmF59L9LZaCY8aL3KTNYLLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xb5d81383d40f4006d1ce4bbad0064e7a930e17302cbe2a745e09cb403f042733","urls":["bzz-raw://3fc4a5681c2f00f41f49260a36ae6bbe1121dd93d470ea24d51d556eff2980be","dweb:/ipfs/QmUBW6TwVWtGP96ka9TfuGivd27kH8CtkXD8RQAAecSFiR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol":{"keccak256":"0xcd7427e60cd143d0b9f819f4a23912e4029fe83b6548a194e70f4007a86ecc2c","urls":["bzz-raw://98b14ac384b4a47c276d22dd8d99c85c87280f41fd36b10e87489187a8d55c66","dweb:/ipfs/QmTa3JrEi4ASMZ5gHN8XfQPFHubJNx6j3re7qYWmUMKDqi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xe5295ec6d987e3b73b7078e787dac664a50f5965d6d65c16c2399cc3a1aaaabf","urls":["bzz-raw://e282e632c6bf23a0862e3e6558356ce7142971f00a401c29de279df9029f2973","dweb:/ipfs/QmbPEWi9yA35ZD13ZxL81JfAiqDwTk7xM7NPvUQCbkhmbY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol":{"keccak256":"0x6b124f06f18f780a257d7bc622fb5678ffc380bc4d6c0b4e1d096223a2668096","urls":["bzz-raw://27c82df9020aa9839c80a98f565edb3408a9d1d988b26bc4cbeb547735f3ecdf","dweb:/ipfs/QmY6xS6CzS5vTtx82V7Kfk3tqwgSdpx6LXyPCFFRtWiTwZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x03f5d1fcbf36a510aa90080cda37805aa22bc3525bf038742683c8b6ea1b8566","urls":["bzz-raw://43fbc77da90094d6dd9660248d60bf8c486ba4f86c717048c70d80891ecdf50f","dweb:/ipfs/QmaWXadWeFuWs1QrAzJqzTdmUaXpM7YD1tQXLGx4mW3vUo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x77ec7f971392aad4657542c952ccb88d8bd05090645bb282c3d8bfa9b1662781","urls":["bzz-raw://58c5b2f3961e6ee017a68cc94c8c2949b6bade20c3b2170cc25cafe66fc5924b","dweb:/ipfs/QmacAUjdb1RtFjwVVzsJX5wvQTMsPsY9mKeaB93VRu3TSX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xfe37358f223eddd65d61bb62b0b7bdb69d7101b5ec8d484292b8c1583a153b8a","urls":["bzz-raw://28dd43f30af3c12ae0fc08dd031b1250e906ef3c95f63f30fac6fd15aee2a662","dweb:/ipfs/QmUkSyWsSRx36w1ti7U6qnGnQgJq16wpMhjeJrnyn9AXwG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xbaffa0bcc92adf28a53cc3b68551fc3632cb8f849a0028cb8d5c06e4677715e9","urls":["bzz-raw://32e6f8f6b2e883c85e6a602c0882d9962ce2f92406961244e86cd974df815912","dweb:/ipfs/Qmahvx6fPpecicq1aUE1JihCxV5ep1bfuPukzrxa8Ub5PS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x06871a0948d0fed9316ae59ee4368527e144911f5e284755312b5bfcde8b27ea","urls":["bzz-raw://3c30e46d061d8a450c561935a1236b1885aa76ffab93a19b26dcb8868c839843","dweb:/ipfs/QmZbWbeDyixTyYkVtJvuiQYfkQz12pS7zxWZF3Ju9PYwGH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4ee0e04cc52827588793a141d5efb9830f179a17e80867cc332b3a30ceb30fd9","urls":["bzz-raw://17d8f47fce493b34099ed9005c5aee3012488f063cfe1c34ed8f9e6fc3d576e5","dweb:/ipfs/QmZco2GbZZhEMvG3BovyoGMAFKvfi2LhfNGQLn283LPrXf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"src/bridges/layerZero/IexecLayerZeroBridge.sol":{"keccak256":"0xa7651e5da4c24f9beb72d47fa717051e12bbbf3df545292fc4cf4834694fd561","urls":["bzz-raw://38b52a1df97e865e6d4d7dabe6c2d2b7ab079447b15fad03daaa79b16334cf1c","dweb:/ipfs/QmZvGXTcDx91hnC4m9AYxurj9vVcbqmWhw5k8FjkjC151S"],"license":"Apache-2.0"},"src/bridges/utils/DualPausableUpgradeable.sol":{"keccak256":"0x99870d5df41a5c3c0abedc629fea1b12660013f1a5a7fb36913f37cc160ec3b5","urls":["bzz-raw://da06fcca07381cd9d4995d989a48d31dfca995fc1c901ebd18deb3bf20ba13f5","dweb:/ipfs/QmWvnHy1Bax2KPRbobshitygQV3WHw32YPDqvfXq4ahL7K"],"license":"Apache-2.0"},"src/interfaces/IIexecLayerZeroBridge.sol":{"keccak256":"0x970b8202b88c17d02f048bdd4d7a48a99dfce8c935df7bc9997dbb4788613a77","urls":["bzz-raw://8a83809f4a060d53937dc4c066c9d791e8e41ba4f732566382494bd8abafed5e","dweb:/ipfs/QmTGqx1WrJPEbujozYHttaivxSAqFFbbM1PLEFNAVLspTZ"],"license":"Apache-2.0"},"src/interfaces/IRLCLiquidityUnifier.sol":{"keccak256":"0x4898c431b37bef3f4792707fcacfb28f8c5ae348fa959495a2e64ff203ce4522","urls":["bzz-raw://b859d6efd0a6729a216ed8d6f579982c8098a419183abd6bbef14b738ccdd93a","dweb:/ipfs/QmfPojN6ynQABbYY9RZFDdaMLemZwT6JH1e6EQuQ3DF7uC"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/bridges/layerZero/IexecLayerZeroBridge.sol","id":88104,"exportedSymbols":{"AccessControlDefaultAdminRulesUpgradeable":[68475],"DualPausableUpgradeable":[88283],"IERC20Metadata":[72308],"IERC7802":[71496],"IIexecLayerZeroBridge":[88306],"IRLCLiquidityUnifier":[88335],"IexecLayerZeroBridge":[88103],"OFTCoreUpgradeable":[5277],"OwnableUpgradeable":[67627],"SafeERC20":[72808],"UUPSUpgradeable":[68925]},"nodeType":"SourceUnit","src":"111:15642:190","nodes":[{"id":87747,"nodeType":"PragmaDirective","src":"111:24:190","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":87749,"nodeType":"ImportDirective","src":"137:107:190","nodes":[],"absolutePath":"lib/devtools/packages/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol","file":"@layerzerolabs/oft-evm-upgradeable/contracts/oft/OFTCoreUpgradeable.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":5278,"symbolAliases":[{"foreign":{"id":87748,"name":"OFTCoreUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5277,"src":"145:18:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87751,"nodeType":"ImportDirective","src":"245:97:190","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":72309,"symbolAliases":[{"foreign":{"id":87750,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72308,"src":"253:14:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87753,"nodeType":"ImportDirective","src":"343:101:190","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":67628,"symbolAliases":[{"foreign":{"id":87752,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67627,"src":"351:18:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87755,"nodeType":"ImportDirective","src":"445:100:190","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":68926,"symbolAliases":[{"foreign":{"id":87754,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68925,"src":"453:15:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87757,"nodeType":"ImportDirective","src":"546:162:190","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":68476,"symbolAliases":[{"foreign":{"id":87756,"name":"AccessControlDefaultAdminRulesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68475,"src":"554:41:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87759,"nodeType":"ImportDirective","src":"709:82:190","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":72809,"symbolAliases":[{"foreign":{"id":87758,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72808,"src":"717:9:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87761,"nodeType":"ImportDirective","src":"792:77:190","nodes":[],"absolutePath":"src/bridges/utils/DualPausableUpgradeable.sol","file":"../utils/DualPausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":88284,"symbolAliases":[{"foreign":{"id":87760,"name":"DualPausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88283,"src":"800:23:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87763,"nodeType":"ImportDirective","src":"870:81:190","nodes":[],"absolutePath":"src/interfaces/IIexecLayerZeroBridge.sol","file":"../../interfaces/IIexecLayerZeroBridge.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":88307,"symbolAliases":[{"foreign":{"id":87762,"name":"IIexecLayerZeroBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88306,"src":"878:21:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87765,"nodeType":"ImportDirective","src":"952:79:190","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol","file":"@openzeppelin/contracts/interfaces/draft-IERC7802.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":71497,"symbolAliases":[{"foreign":{"id":87764,"name":"IERC7802","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71496,"src":"960:8:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87767,"nodeType":"ImportDirective","src":"1032:79:190","nodes":[],"absolutePath":"src/interfaces/IRLCLiquidityUnifier.sol","file":"../../interfaces/IRLCLiquidityUnifier.sol","nameLocation":"-1:-1:-1","scope":88104,"sourceUnit":88336,"symbolAliases":[{"foreign":{"id":87766,"name":"IRLCLiquidityUnifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88335,"src":"1040:20:190","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":88103,"nodeType":"ContractDefinition","src":"2992:12760:190","nodes":[{"id":87782,"nodeType":"UsingForDirective","src":"3178:35:190","nodes":[],"global":false,"libraryName":{"id":87779,"name":"SafeERC20","nameLocations":["3184:9:190"],"nodeType":"IdentifierPath","referencedDeclaration":72808,"src":"3184:9:190"},"typeName":{"id":87781,"nodeType":"UserDefinedTypeName","pathNode":{"id":87780,"name":"IERC20Metadata","nameLocations":["3198:14:190"],"nodeType":"IdentifierPath","referencedDeclaration":72308,"src":"3198:14:190"},"referencedDeclaration":72308,"src":"3198:14:190","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}}},{"id":87788,"nodeType":"VariableDeclaration","src":"3296:66:190","nodes":[],"constant":true,"documentation":{"id":87783,"nodeType":"StructuredDocumentation","src":"3219:72:190","text":"@dev Role identifier for accounts authorized to upgrade the contract"},"functionSelector":"f72c0d8b","mutability":"constant","name":"UPGRADER_ROLE","nameLocation":"3320:13:190","scope":88103,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3296:7:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"55504752414445525f524f4c45","id":87786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3346:15:190","typeDescriptions":{"typeIdentifier":"t_stringliteral_189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3","typeString":"literal_string \"UPGRADER_ROLE\""},"value":"UPGRADER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3","typeString":"literal_string \"UPGRADER_ROLE\""}],"id":87785,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3336:9:190","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":87787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3336:26:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":87794,"nodeType":"VariableDeclaration","src":"3452:62:190","nodes":[],"constant":true,"documentation":{"id":87789,"nodeType":"StructuredDocumentation","src":"3369:78:190","text":"@dev Role identifier for accounts authorized to pause/unpause the contract"},"functionSelector":"e63ab1e9","mutability":"constant","name":"PAUSER_ROLE","nameLocation":"3476:11:190","scope":88103,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3452:7:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5041555345525f524f4c45","id":87792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3500:13:190","typeDescriptions":{"typeIdentifier":"t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a","typeString":"literal_string \"PAUSER_ROLE\""},"value":"PAUSER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a","typeString":"literal_string \"PAUSER_ROLE\""}],"id":87791,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3490:9:190","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":87793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3490:24:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":87797,"nodeType":"VariableDeclaration","src":"3653:41:190","nodes":[],"constant":false,"documentation":{"id":87795,"nodeType":"StructuredDocumentation","src":"3521:76:190","text":" @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"903df521","mutability":"immutable","name":"BRIDGEABLE_TOKEN","nameLocation":"3678:16:190","scope":88103,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87796,"name":"address","nodeType":"ElementaryTypeName","src":"3653:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":87800,"nodeType":"VariableDeclaration","src":"4175:40:190","nodes":[],"constant":false,"documentation":{"id":87798,"nodeType":"StructuredDocumentation","src":"3701:418:190","text":" @dev Indicates the token transfer mechanism required for this deployment.\n - true: Ethereum Mainnet deployment requiring user approval (lock/unlock mechanism)\n - false: Non Ethereum Mainnet deployment with direct mint/burn capabilities\n This flag indicates on which chain the bridge is deployed.\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"mutability":"immutable","name":"APPROVAL_REQUIRED","nameLocation":"4198:17:190","scope":88103,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87799,"name":"bool","nodeType":"ElementaryTypeName","src":"4175:4:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":87830,"nodeType":"FunctionDefinition","src":"4522:298:190","nodes":[],"body":{"id":87829,"nodeType":"Block","src":"4690:130:190","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87818,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68697,"src":"4700:20:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4700:22:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87820,"nodeType":"ExpressionStatement","src":"4700:22:190"},{"expression":{"id":87823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87821,"name":"BRIDGEABLE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87797,"src":"4732:16:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":87822,"name":"bridgeableToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87805,"src":"4751:15:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4732:34:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":87824,"nodeType":"ExpressionStatement","src":"4732:34:190"},{"expression":{"id":87827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87825,"name":"APPROVAL_REQUIRED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87800,"src":"4776:17:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":87826,"name":"approvalRequired_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87803,"src":"4796:17:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4776:37:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87828,"nodeType":"ExpressionStatement","src":"4776:37:190"}]},"documentation":{"id":87801,"nodeType":"StructuredDocumentation","src":"4222:295:190","text":" @dev Constructor for the LayerZero bridge contract\n @param bridgeableToken The RLC token contract address that implements IERC7802 interface\n @param lzEndpoint The LayerZero endpoint address for this chain\n @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":87811,"name":"bridgeableToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87805,"src":"4645:15:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87810,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72308,"src":"4630:14:190","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$72308_$","typeString":"type(contract IERC20Metadata)"}},"id":87812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4630:31:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}},"id":87813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4662:8:190","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":72307,"src":"4630:40:190","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":87814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4630:42:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":87815,"name":"lzEndpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87807,"src":"4674:10:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":87816,"kind":"baseConstructorSpecifier","modifierName":{"id":87809,"name":"OFTCoreUpgradeable","nameLocations":["4611:18:190"],"nodeType":"IdentifierPath","referencedDeclaration":5277,"src":"4611:18:190"},"nodeType":"ModifierInvocation","src":"4611:74:190"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":87808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87803,"mutability":"mutable","name":"approvalRequired_","nameLocation":"4539:17:190","nodeType":"VariableDeclaration","scope":87830,"src":"4534:22:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87802,"name":"bool","nodeType":"ElementaryTypeName","src":"4534:4:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":87805,"mutability":"mutable","name":"bridgeableToken","nameLocation":"4566:15:190","nodeType":"VariableDeclaration","scope":87830,"src":"4558:23:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87804,"name":"address","nodeType":"ElementaryTypeName","src":"4558:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87807,"mutability":"mutable","name":"lzEndpoint","nameLocation":"4591:10:190","nodeType":"VariableDeclaration","scope":87830,"src":"4583:18:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87806,"name":"address","nodeType":"ElementaryTypeName","src":"4583:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4533:69:190"},"returnParameters":{"id":87817,"nodeType":"ParameterList","parameters":[],"src":"4690:0:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":87872,"nodeType":"FunctionDefinition","src":"5181:423:190","nodes":[],"body":{"id":87871,"nodeType":"Block","src":"5292:312:190","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87842,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68797,"src":"5302:22:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5302:24:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87844,"nodeType":"ExpressionStatement","src":"5302:24:190"},{"expression":{"arguments":[{"hexValue":"30","id":87846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5374:1:190","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":87847,"name":"initialAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87833,"src":"5377:12:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87845,"name":"__AccessControlDefaultAdminRules_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67695,"src":"5336:37:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint48_$_t_address_$returns$__$","typeString":"function (uint48,address)"}},"id":87848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5336:54:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87849,"nodeType":"ExpressionStatement","src":"5336:54:190"},{"expression":{"arguments":[{"id":87851,"name":"UPGRADER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87788,"src":"5411:13:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":87852,"name":"initialUpgrader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87835,"src":"5426:15:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87850,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[67938],"referencedDeclaration":67938,"src":"5400:10:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":87853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5400:42:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87854,"nodeType":"ExpressionStatement","src":"5400:42:190"},{"expression":{"arguments":[{"id":87856,"name":"PAUSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87794,"src":"5463:11:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":87857,"name":"initialPauser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87837,"src":"5476:13:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87855,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[67938],"referencedDeclaration":67938,"src":"5452:10:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":87858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5452:38:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87859,"nodeType":"ExpressionStatement","src":"5452:38:190"},{"expression":{"arguments":[{"id":87861,"name":"initialAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87833,"src":"5515:12:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87860,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67487,"src":"5500:14:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":87862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5500:28:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87863,"nodeType":"ExpressionStatement","src":"5500:28:190"},{"expression":{"arguments":[{"id":87865,"name":"initialAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87833,"src":"5553:12:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87864,"name":"__OFTCore_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4742,"src":"5538:14:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":87866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5538:28:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87867,"nodeType":"ExpressionStatement","src":"5538:28:190"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87868,"name":"__DualPausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88168,"src":"5576:19:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5576:21:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87870,"nodeType":"ExpressionStatement","src":"5576:21:190"}]},"documentation":{"id":87831,"nodeType":"StructuredDocumentation","src":"4875:301:190","text":" @notice Initializes the contract after proxy deployment\n @param initialAdmin Address that will receive owner and default admin roles\n @param initialUpgrader Address that will receive the upgrader role\n @param initialPauser Address that will receive the pauser role"},"functionSelector":"c0c53b8b","implemented":true,"kind":"function","modifiers":[{"id":87840,"kind":"modifierInvocation","modifierName":{"id":87839,"name":"initializer","nameLocations":["5280:11:190"],"nodeType":"IdentifierPath","referencedDeclaration":68583,"src":"5280:11:190"},"nodeType":"ModifierInvocation","src":"5280:11:190"}],"name":"initialize","nameLocation":"5190:10:190","parameters":{"id":87838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87833,"mutability":"mutable","name":"initialAdmin","nameLocation":"5209:12:190","nodeType":"VariableDeclaration","scope":87872,"src":"5201:20:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87832,"name":"address","nodeType":"ElementaryTypeName","src":"5201:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87835,"mutability":"mutable","name":"initialUpgrader","nameLocation":"5231:15:190","nodeType":"VariableDeclaration","scope":87872,"src":"5223:23:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87834,"name":"address","nodeType":"ElementaryTypeName","src":"5223:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87837,"mutability":"mutable","name":"initialPauser","nameLocation":"5256:13:190","nodeType":"VariableDeclaration","scope":87872,"src":"5248:21:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87836,"name":"address","nodeType":"ElementaryTypeName","src":"5248:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5200:70:190"},"returnParameters":{"id":87841,"nodeType":"ParameterList","parameters":[],"src":"5292:0:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87883,"nodeType":"FunctionDefinition","src":"6141:73:190","nodes":[],"body":{"id":87882,"nodeType":"Block","src":"6189:25:190","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87879,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70125,"src":"6199:6:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6199:8:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87881,"nodeType":"ExpressionStatement","src":"6199:8:190"}]},"baseFunctions":[88293],"documentation":{"id":87873,"nodeType":"StructuredDocumentation","src":"5663:473:190","text":" @notice LEVEL 1: Pauses all cross-chain transfers (complete shutdown)\n @dev Can only be called by accounts with PAUSER_ROLE\n When fully paused:\n - All _debit operations (outbound transfers) are blocked\n - All _credit operations (inbound transfers) are blocked\n - Use this for critical security incidents (e.g., LayerZero exploit)\n @custom:security Critical emergency function for complete bridge shutdown"},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87876,"name":"PAUSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87794,"src":"6176:11:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":87877,"kind":"modifierInvocation","modifierName":{"id":87875,"name":"onlyRole","nameLocations":["6167:8:190"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"6167:8:190"},"nodeType":"ModifierInvocation","src":"6167:21:190"}],"name":"pause","nameLocation":"6150:5:190","parameters":{"id":87874,"nodeType":"ParameterList","parameters":[],"src":"6155:2:190"},"returnParameters":{"id":87878,"nodeType":"ParameterList","parameters":[],"src":"6189:0:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87894,"nodeType":"FunctionDefinition","src":"6355:77:190","nodes":[],"body":{"id":87893,"nodeType":"Block","src":"6405:27:190","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87890,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70149,"src":"6415:8:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6415:10:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87892,"nodeType":"ExpressionStatement","src":"6415:10:190"}]},"baseFunctions":[88297],"documentation":{"id":87884,"nodeType":"StructuredDocumentation","src":"6220:130:190","text":" @notice LEVEL 1: Unpauses all cross-chain transfers\n @dev Can only be called by accounts with PAUSER_ROLE"},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87887,"name":"PAUSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87794,"src":"6392:11:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":87888,"kind":"modifierInvocation","modifierName":{"id":87886,"name":"onlyRole","nameLocations":["6383:8:190"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"6383:8:190"},"nodeType":"ModifierInvocation","src":"6383:21:190"}],"name":"unpause","nameLocation":"6364:7:190","parameters":{"id":87885,"nodeType":"ParameterList","parameters":[],"src":"6371:2:190"},"returnParameters":{"id":87889,"nodeType":"ParameterList","parameters":[],"src":"6405:0:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87905,"nodeType":"FunctionDefinition","src":"7021:107:190","nodes":[],"body":{"id":87904,"nodeType":"Block","src":"7086:42:190","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87901,"name":"_pauseOutboundTransfers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88258,"src":"7096:23:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7096:25:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87903,"nodeType":"ExpressionStatement","src":"7096:25:190"}]},"baseFunctions":[88301],"documentation":{"id":87895,"nodeType":"StructuredDocumentation","src":"6438:578:190","text":" @notice LEVEL 2: Pauses only outbound transfers.\n @dev Can only be called by accounts with PAUSER_ROLE\n When outbound transfers are paused:\n - All _debit operations (outbound transfers) are blocked\n - All _credit operations (inbound transfers) still work\n - Users can still receive funds and \"exit\" their positions\n - Use this for less critical issues or when you want to allow withdrawals\n @custom:security Moderate emergency function allowing inbound messages\n while blocking outbound transfers."},"functionSelector":"86843aa1","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87898,"name":"PAUSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87794,"src":"7073:11:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":87899,"kind":"modifierInvocation","modifierName":{"id":87897,"name":"onlyRole","nameLocations":["7064:8:190"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"7064:8:190"},"nodeType":"ModifierInvocation","src":"7064:21:190"}],"name":"pauseOutboundTransfers","nameLocation":"7030:22:190","parameters":{"id":87896,"nodeType":"ParameterList","parameters":[],"src":"7052:2:190"},"returnParameters":{"id":87900,"nodeType":"ParameterList","parameters":[],"src":"7086:0:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87916,"nodeType":"FunctionDefinition","src":"7292:111:190","nodes":[],"body":{"id":87915,"nodeType":"Block","src":"7359:44:190","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87912,"name":"_unpauseOutboundTransfers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88282,"src":"7369:25:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7369:27:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87914,"nodeType":"ExpressionStatement","src":"7369:27:190"}]},"baseFunctions":[88305],"documentation":{"id":87906,"nodeType":"StructuredDocumentation","src":"7134:153:190","text":" @notice LEVEL 2: Unpauses outbound transfers (restores send functionality)\n @dev Can only be called by accounts with PAUSER_ROLE"},"functionSelector":"1657c3b8","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87909,"name":"PAUSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87794,"src":"7346:11:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":87910,"kind":"modifierInvocation","modifierName":{"id":87908,"name":"onlyRole","nameLocations":["7337:8:190"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"7337:8:190"},"nodeType":"ModifierInvocation","src":"7337:21:190"}],"name":"unpauseOutboundTransfers","nameLocation":"7301:24:190","parameters":{"id":87907,"nodeType":"ParameterList","parameters":[],"src":"7325:2:190"},"returnParameters":{"id":87911,"nodeType":"ParameterList","parameters":[],"src":"7359:0:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87925,"nodeType":"FunctionDefinition","src":"7756:106:190","nodes":[],"body":{"id":87924,"nodeType":"Block","src":"7821:41:190","nodes":[],"statements":[{"expression":{"id":87922,"name":"APPROVAL_REQUIRED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87800,"src":"7838:17:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":87921,"id":87923,"nodeType":"Return","src":"7831:24:190"}]},"baseFunctions":[5367],"documentation":{"id":87917,"nodeType":"StructuredDocumentation","src":"7461:290:190","text":" @notice Indicates whether the OFT contract requires approval to send tokens\n Approval is only required on the Ethereum Mainnet where the original RLC contract is deployed.\n @return requiresApproval Returns true if deployed on Ethereum Mainnet, false otherwise"},"functionSelector":"9f68b964","implemented":true,"kind":"function","modifiers":[],"name":"approvalRequired","nameLocation":"7765:16:190","parameters":{"id":87918,"nodeType":"ParameterList","parameters":[],"src":"7781:2:190"},"returnParameters":{"id":87921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87925,"src":"7815:4:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87919,"name":"bool","nodeType":"ElementaryTypeName","src":"7815:4:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7814:6:190"},"scope":88103,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":87944,"nodeType":"FunctionDefinition","src":"8010:171:190","nodes":[],"body":{"id":87943,"nodeType":"Block","src":"8059:122:190","nodes":[],"statements":[{"expression":{"condition":{"id":87931,"name":"APPROVAL_REQUIRED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87800,"src":"8076:17:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":87940,"name":"BRIDGEABLE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87797,"src":"8158:16:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":87941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8076:98:190","trueExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":87935,"name":"BRIDGEABLE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87797,"src":"8125:16:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87934,"name":"IRLCLiquidityUnifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88335,"src":"8104:20:190","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRLCLiquidityUnifier_$88335_$","typeString":"type(contract IRLCLiquidityUnifier)"}},"id":87936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8104:38:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRLCLiquidityUnifier_$88335","typeString":"contract IRLCLiquidityUnifier"}},"id":87937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8143:9:190","memberName":"RLC_TOKEN","nodeType":"MemberAccess","referencedDeclaration":88328,"src":"8104:48:190","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$72308_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":87938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8104:50:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}],"id":87933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8096:7:190","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87932,"name":"address","nodeType":"ElementaryTypeName","src":"8096:7:190","typeDescriptions":{}}},"id":87939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8096:59:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":87930,"id":87942,"nodeType":"Return","src":"8069:105:190"}]},"baseFunctions":[5361],"documentation":{"id":87926,"nodeType":"StructuredDocumentation","src":"7868:137:190","text":" @notice Returns the address of the underlying token being bridged\n @return The address of the RLC token contract"},"functionSelector":"fc0c546a","implemented":true,"kind":"function","modifiers":[],"name":"token","nameLocation":"8019:5:190","parameters":{"id":87927,"nodeType":"ParameterList","parameters":[],"src":"8024:2:190"},"returnParameters":{"id":87930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87944,"src":"8050:7:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87928,"name":"address","nodeType":"ElementaryTypeName","src":"8050:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8049:9:190"},"scope":88103,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":87954,"nodeType":"FunctionDefinition","src":"8444:150:190","nodes":[],"body":{"id":87953,"nodeType":"Block","src":"8494:100:190","nodes":[],"statements":[{"errorCall":{"arguments":[{"hexValue":"55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c65735570677261646561626c6520696e7374656164","id":87950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8531:55:190","typeDescriptions":{"typeIdentifier":"t_stringliteral_35d69f2c6e9dbc24d9b7ad53cda2f0525607be14787cae5d7feb3baf2231779f","typeString":"literal_string \"Use AccessControlDefaultAdminRulesUpgradeable instead\""},"value":"Use AccessControlDefaultAdminRulesUpgradeable instead"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35d69f2c6e9dbc24d9b7ad53cda2f0525607be14787cae5d7feb3baf2231779f","typeString":"literal_string \"Use AccessControlDefaultAdminRulesUpgradeable instead\""}],"id":87949,"name":"OperationNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88289,"src":"8511:19:190","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":87951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8511:76:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87952,"nodeType":"RevertStatement","src":"8504:83:190"}]},"baseFunctions":[67569],"documentation":{"id":87945,"nodeType":"StructuredDocumentation","src":"8246:147:190","text":" @dev Overridden to prevent ownership renouncement.\n AccessControlDefaultAdminRulesUpgradeable is used to manage ownership."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"8453:17:190","overrides":{"id":87947,"nodeType":"OverrideSpecifier","overrides":[],"src":"8485:8:190"},"parameters":{"id":87946,"nodeType":"ParameterList","parameters":[],"src":"8470:2:190"},"returnParameters":{"id":87948,"nodeType":"ParameterList","parameters":[],"src":"8494:0:190"},"scope":88103,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":87966,"nodeType":"FunctionDefinition","src":"8794:157:190","nodes":[],"body":{"id":87965,"nodeType":"Block","src":"8851:100:190","nodes":[],"statements":[{"errorCall":{"arguments":[{"hexValue":"55736520416363657373436f6e74726f6c44656661756c7441646d696e52756c65735570677261646561626c6520696e7374656164","id":87962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8888:55:190","typeDescriptions":{"typeIdentifier":"t_stringliteral_35d69f2c6e9dbc24d9b7ad53cda2f0525607be14787cae5d7feb3baf2231779f","typeString":"literal_string \"Use AccessControlDefaultAdminRulesUpgradeable instead\""},"value":"Use AccessControlDefaultAdminRulesUpgradeable instead"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35d69f2c6e9dbc24d9b7ad53cda2f0525607be14787cae5d7feb3baf2231779f","typeString":"literal_string \"Use AccessControlDefaultAdminRulesUpgradeable instead\""}],"id":87961,"name":"OperationNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88289,"src":"8868:19:190","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":87963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8868:76:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87964,"nodeType":"RevertStatement","src":"8861:83:190"}]},"baseFunctions":[67597],"documentation":{"id":87955,"nodeType":"StructuredDocumentation","src":"8600:143:190","text":" @dev Overridden to prevent ownership transfer.\n AccessControlDefaultAdminRulesUpgradeable is used to manage ownership."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"8803:17:190","overrides":{"id":87959,"nodeType":"OverrideSpecifier","overrides":[],"src":"8842:8:190"},"parameters":{"id":87958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87966,"src":"8821:7:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87956,"name":"address","nodeType":"ElementaryTypeName","src":"8821:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8820:9:190"},"returnParameters":{"id":87960,"nodeType":"ParameterList","parameters":[],"src":"8851:0:190"},"scope":88103,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":87980,"nodeType":"FunctionDefinition","src":"9113:228:190","nodes":[],"body":{"id":87979,"nodeType":"Block","src":"9268:73:190","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87975,"name":"AccessControlDefaultAdminRulesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68475,"src":"9285:41:190","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessControlDefaultAdminRulesUpgradeable_$68475_$","typeString":"type(contract AccessControlDefaultAdminRulesUpgradeable)"}},"id":87976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9327:5:190","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":67769,"src":"9285:47:190","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":87977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9285:49:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":87974,"id":87978,"nodeType":"Return","src":"9278:56:190"}]},"baseFunctions":[67538,67769],"documentation":{"id":87967,"nodeType":"StructuredDocumentation","src":"8957:151:190","text":" Returns the owner of the contract which is also the default admin.\n @return The address of the current owner and default admin"},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"9122:5:190","overrides":{"id":87971,"nodeType":"OverrideSpecifier","overrides":[{"id":87969,"name":"OwnableUpgradeable","nameLocations":["9175:18:190"],"nodeType":"IdentifierPath","referencedDeclaration":67627,"src":"9175:18:190"},{"id":87970,"name":"AccessControlDefaultAdminRulesUpgradeable","nameLocations":["9195:41:190"],"nodeType":"IdentifierPath","referencedDeclaration":68475,"src":"9195:41:190"}],"src":"9166:71:190"},"parameters":{"id":87968,"nodeType":"ParameterList","parameters":[],"src":"9127:2:190"},"returnParameters":{"id":87974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87980,"src":"9255:7:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87972,"name":"address","nodeType":"ElementaryTypeName","src":"9255:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9254:9:190"},"scope":88103,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":87996,"nodeType":"FunctionDefinition","src":"9702:153:190","nodes":[],"body":{"id":87995,"nodeType":"Block","src":"9759:96:190","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":87985,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9769:5:190","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_IexecLayerZeroBridge_$88103_$","typeString":"type(contract super IexecLayerZeroBridge)"}},"id":87987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9775:27:190","memberName":"_acceptDefaultAdminTransfer","nodeType":"MemberAccess","referencedDeclaration":68259,"src":"9769:33:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9769:35:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87989,"nodeType":"ExpressionStatement","src":"9769:35:190"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":87991,"name":"defaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68017,"src":"9833:12:190","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":87992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:14:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87990,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67626,"src":"9814:18:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":87993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:34:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87994,"nodeType":"ExpressionStatement","src":"9814:34:190"}]},"baseFunctions":[68259],"documentation":{"id":87981,"nodeType":"StructuredDocumentation","src":"9347:350:190","text":" Accepts the default admin transfer and sets the owner to the new admin.\n @dev This ensures the state variable `OwnableUpgradeable._owner` is set correctly after the default\n admin transfer. Even though `OwnableUpgradeable._owner` is not used in `owner()` accessor, we chose\n to update it for consistency purposes."},"implemented":true,"kind":"function","modifiers":[],"name":"_acceptDefaultAdminTransfer","nameLocation":"9711:27:190","overrides":{"id":87983,"nodeType":"OverrideSpecifier","overrides":[],"src":"9750:8:190"},"parameters":{"id":87982,"nodeType":"ParameterList","parameters":[],"src":"9738:2:190"},"returnParameters":{"id":87984,"nodeType":"ParameterList","parameters":[],"src":"9759:0:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":88051,"nodeType":"FunctionDefinition","src":"11759:1101:190","nodes":[],"body":{"id":88050,"nodeType":"Block","src":"12007:853:190","nodes":[],"statements":[{"expression":{"id":88025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":88017,"name":"amountSentLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88013,"src":"12106:12:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":88018,"name":"amountReceivedLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88015,"src":"12120:16:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":88019,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12105:32:190","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":88021,"name":"amountLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88001,"src":"12151:8:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":88022,"name":"minAmountLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88003,"src":"12161:11:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":88023,"name":"dstEid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88005,"src":"12174:6:190","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":88020,"name":"_debitView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"12140:10:190","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint32_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint32) view returns (uint256,uint256)"}},"id":88024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12140:41:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12105:76:190","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88026,"nodeType":"ExpressionStatement","src":"12105:76:190"},{"condition":{"id":88027,"name":"APPROVAL_REQUIRED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87800,"src":"12196:17:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":88048,"nodeType":"Block","src":"12768:86:190","statements":[{"expression":{"arguments":[{"id":88044,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87999,"src":"12824:4:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88045,"name":"amountSentLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88013,"src":"12830:12:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":88041,"name":"BRIDGEABLE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87797,"src":"12791:16:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":88040,"name":"IERC7802","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71496,"src":"12782:8:190","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC7802_$71496_$","typeString":"type(contract IERC7802)"}},"id":88042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12782:26:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC7802_$71496","typeString":"contract IERC7802"}},"id":88043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12809:14:190","memberName":"crosschainBurn","nodeType":"MemberAccess","referencedDeclaration":71495,"src":"12782:41:190","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":88046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12782:61:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88047,"nodeType":"ExpressionStatement","src":"12782:61:190"}]},"id":88049,"nodeType":"IfStatement","src":"12192:662:190","trueBody":{"id":88039,"nodeType":"Block","src":"12215:547:190","statements":[{"expression":{"arguments":[{"id":88034,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87999,"src":"12714:4:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88035,"name":"BRIDGEABLE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87797,"src":"12720:16:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88036,"name":"amountSentLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88013,"src":"12738:12:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":88029,"name":"BRIDGEABLE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87797,"src":"12667:16:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":88028,"name":"IRLCLiquidityUnifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88335,"src":"12646:20:190","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRLCLiquidityUnifier_$88335_$","typeString":"type(contract IRLCLiquidityUnifier)"}},"id":88030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12646:38:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRLCLiquidityUnifier_$88335","typeString":"contract IRLCLiquidityUnifier"}},"id":88031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12685:9:190","memberName":"RLC_TOKEN","nodeType":"MemberAccess","referencedDeclaration":88328,"src":"12646:48:190","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20Metadata_$72308_$","typeString":"function () view external returns (contract IERC20Metadata)"}},"id":88032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12646:50:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}},"id":88033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12697:16:190","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":72416,"src":"12646:67:190","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$72282_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$72282_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":88037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12646:105:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88038,"nodeType":"ExpressionStatement","src":"12646:105:190"}]}}]},"baseFunctions":[5264],"documentation":{"id":87997,"nodeType":"StructuredDocumentation","src":"9917:1837:190","text":" Burns tokens from the sender's balance as part of cross-chain transfer\n @dev This function is called by LayerZero's OFT core when sending tokens\n to another chain. It burns the specified amount from the sender's balance.\n It overrides the `_debit` function\n https://github.com/LayerZero-Labs/devtools/blob/a2e444f4c3a6cb7ae88166d785bd7cf2d9609c7f/packages/oft-evm/contracts/OFT.sol#L56-L69\n This function behavior is chain specific and works differently\n depending on whether the bridge is deployed on Ethereum Mainnet or a non-mainnet chain.\n IMPORTANT ASSUMPTIONS:\n - This implementation assumes LOSSLESS transfers (1 token burned = 1 token minted)\n - If BRIDGEABLE_TOKEN implements transfer fees, burn fees, or any other fee mechanism,\n this function will NOT work correctly and would need to be modified\n - The function would need pre/post balance checks to handle fee scenarios\n @dev This function is called for outbound transfers (when sending to another chain)\n Pause Behavior:\n - Blocked when contract is fully paused (Level 1 pause)\n - Blocked when outbound transfers are paused (Level 2 pause)\n - Uses both whenNotPaused and whenOutboundTransfersNotPaused modifiers\n @custom:security Requires the RLC token to have granted burn permissions to this contract\n @param from The address to burn tokens from\n @param amountLD The amount of tokens to burn (in local decimals)\n @param minAmountLD The minimum amount to burn (for slippage protection)\n @param dstEid The destination chain endpoint ID\n @return amountSentLD The amount of tokens burned on source chain\n @return amountReceivedLD The amount that will be minted on destination chain"},"implemented":true,"kind":"function","modifiers":[{"id":88009,"kind":"modifierInvocation","modifierName":{"id":88008,"name":"whenNotPaused","nameLocations":["11885:13:190"],"nodeType":"IdentifierPath","referencedDeclaration":70040,"src":"11885:13:190"},"nodeType":"ModifierInvocation","src":"11885:13:190"},{"id":88011,"kind":"modifierInvocation","modifierName":{"id":88010,"name":"whenOutboundTransfersNotPaused","nameLocations":["11907:30:190"],"nodeType":"IdentifierPath","referencedDeclaration":88151,"src":"11907:30:190"},"nodeType":"ModifierInvocation","src":"11907:30:190"}],"name":"_debit","nameLocation":"11768:6:190","overrides":{"id":88007,"nodeType":"OverrideSpecifier","overrides":[],"src":"11868:8:190"},"parameters":{"id":88006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87999,"mutability":"mutable","name":"from","nameLocation":"11783:4:190","nodeType":"VariableDeclaration","scope":88051,"src":"11775:12:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87998,"name":"address","nodeType":"ElementaryTypeName","src":"11775:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88001,"mutability":"mutable","name":"amountLD","nameLocation":"11797:8:190","nodeType":"VariableDeclaration","scope":88051,"src":"11789:16:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88000,"name":"uint256","nodeType":"ElementaryTypeName","src":"11789:7:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":88003,"mutability":"mutable","name":"minAmountLD","nameLocation":"11815:11:190","nodeType":"VariableDeclaration","scope":88051,"src":"11807:19:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88002,"name":"uint256","nodeType":"ElementaryTypeName","src":"11807:7:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":88005,"mutability":"mutable","name":"dstEid","nameLocation":"11835:6:190","nodeType":"VariableDeclaration","scope":88051,"src":"11828:13:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":88004,"name":"uint32","nodeType":"ElementaryTypeName","src":"11828:6:190","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"11774:68:190"},"returnParameters":{"id":88016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88013,"mutability":"mutable","name":"amountSentLD","nameLocation":"11963:12:190","nodeType":"VariableDeclaration","scope":88051,"src":"11955:20:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88012,"name":"uint256","nodeType":"ElementaryTypeName","src":"11955:7:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":88015,"mutability":"mutable","name":"amountReceivedLD","nameLocation":"11985:16:190","nodeType":"VariableDeclaration","scope":88051,"src":"11977:24:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88014,"name":"uint256","nodeType":"ElementaryTypeName","src":"11977:7:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11954:48:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":88091,"nodeType":"FunctionDefinition","src":"14534:613:190","nodes":[],"body":{"id":88090,"nodeType":"Block","src":"14705:442:190","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":88071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":88066,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88054,"src":"14847:2:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"307830","id":88069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14861:3:190","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":88068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14853:7:190","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":88067,"name":"address","nodeType":"ElementaryTypeName","src":"14853:7:190","typeDescriptions":{}}},"id":88070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14853:12:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14847:18:190","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":88079,"nodeType":"IfStatement","src":"14843:44:190","trueBody":{"expression":{"id":88077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":88072,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88054,"src":"14867:2:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"307864656164","id":88075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14880:6:190","typeDescriptions":{"typeIdentifier":"t_rational_57005_by_1","typeString":"int_const 57005"},"value":"0xdead"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57005_by_1","typeString":"int_const 57005"}],"id":88074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14872:7:190","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":88073,"name":"address","nodeType":"ElementaryTypeName","src":"14872:7:190","typeDescriptions":{}}},"id":88076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14872:15:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14867:20:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":88078,"nodeType":"ExpressionStatement","src":"14867:20:190"}},{"expression":{"arguments":[{"id":88084,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88054,"src":"15046:2:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":88085,"name":"amountLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88056,"src":"15050:8:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":88081,"name":"BRIDGEABLE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87797,"src":"15013:16:190","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":88080,"name":"IERC7802","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71496,"src":"15004:8:190","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC7802_$71496_$","typeString":"type(contract IERC7802)"}},"id":88082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15004:26:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC7802_$71496","typeString":"contract IERC7802"}},"id":88083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15031:14:190","memberName":"crosschainMint","nodeType":"MemberAccess","referencedDeclaration":71487,"src":"15004:41:190","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":88086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15004:55:190","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":88087,"nodeType":"ExpressionStatement","src":"15004:55:190"},{"expression":{"id":88088,"name":"amountLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88056,"src":"15132:8:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":88065,"id":88089,"nodeType":"Return","src":"15125:15:190"}]},"baseFunctions":[5276],"documentation":{"id":88052,"nodeType":"StructuredDocumentation","src":"12866:1663:190","text":" Mints tokens to the specified account as part of cross-chain transfer.\n @dev This function is called by LayerZero's OFT core when receiving tokens\n from another chain. It mints the specified amount to the recipient's balance.\n It overrides the `_credit` function\n https://github.com/LayerZero-Labs/devtools/blob/a2e444f4c3a6cb7ae88166d785bd7cf2d9609c7f/packages/oft-evm/contracts/OFT.sol#L78-L88\n This function behavior is chain agnostic and works the same for both chains that does or doesn't require approval.\n IMPORTANT ASSUMPTIONS:\n - This implementation assumes LOSSLESS transfers (1 token received = 1 token minted)\n - If BRIDGEABLE_TOKEN implements minting fees or any other fee mechanism,\n this function will NOT work correctly and would need to be modified\n - The function would need pre/post balance checks to handle fee scenarios\n @dev This function is called for inbound transfers (when receiving from another chain)\n Pause Behavior:\n - Blocked ONLY when contract is fully paused (Level 1 pause)\n - NOT blocked when outbound transfers are paused (Level 2) - users can still receive/exit\n - Uses only whenNotPaused modifier\n @custom:security Requires the RLC token to have granted mint permissions to this contract\n @custom:security Uses 0xdead address if _to is zero address (minting to zero fails)\n @param to The address to mint tokens to\n @param amountLD The amount of tokens to mint (in local decimals)\n @return amountReceivedLD The amount of tokens actually minted"},"implemented":true,"kind":"function","modifiers":[{"id":88062,"kind":"modifierInvocation","modifierName":{"id":88061,"name":"whenNotPaused","nameLocations":["14644:13:190"],"nodeType":"IdentifierPath","referencedDeclaration":70040,"src":"14644:13:190"},"nodeType":"ModifierInvocation","src":"14644:13:190"}],"name":"_credit","nameLocation":"14543:7:190","overrides":{"id":88060,"nodeType":"OverrideSpecifier","overrides":[],"src":"14627:8:190"},"parameters":{"id":88059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88054,"mutability":"mutable","name":"to","nameLocation":"14559:2:190","nodeType":"VariableDeclaration","scope":88091,"src":"14551:10:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88053,"name":"address","nodeType":"ElementaryTypeName","src":"14551:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":88056,"mutability":"mutable","name":"amountLD","nameLocation":"14571:8:190","nodeType":"VariableDeclaration","scope":88091,"src":"14563:16:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88055,"name":"uint256","nodeType":"ElementaryTypeName","src":"14563:7:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":88058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":88091,"src":"14581:6:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":88057,"name":"uint32","nodeType":"ElementaryTypeName","src":"14581:6:190","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"14550:51:190"},"returnParameters":{"id":88065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88064,"mutability":"mutable","name":"amountReceivedLD","nameLocation":"14683:16:190","nodeType":"VariableDeclaration","scope":88091,"src":"14675:24:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88063,"name":"uint256","nodeType":"ElementaryTypeName","src":"14675:7:190","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14674:26:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":88102,"nodeType":"FunctionDefinition","src":"15652:98:190","nodes":[],"body":{"id":88101,"nodeType":"Block","src":"15748:2:190","nodes":[],"statements":[]},"baseFunctions":[68879],"documentation":{"id":88092,"nodeType":"StructuredDocumentation","src":"15209:438:190","text":" @notice Authorizes contract upgrades\n @param newImplementation The address of the new implementation contract\n @dev This function is required by UUPS upgradeable pattern.\n Only accounts with UPGRADER_ROLE can authorize upgrades.\n @custom:security Critical function that controls contract upgrades\n @custom:security Ensure proper testing and security review before any upgrade"},"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":88098,"name":"UPGRADER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87788,"src":"15733:13:190","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":88099,"kind":"modifierInvocation","modifierName":{"id":88097,"name":"onlyRole","nameLocations":["15724:8:190"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"15724:8:190"},"nodeType":"ModifierInvocation","src":"15724:23:190"}],"name":"_authorizeUpgrade","nameLocation":"15661:17:190","overrides":{"id":88096,"nodeType":"OverrideSpecifier","overrides":[],"src":"15715:8:190"},"parameters":{"id":88095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88094,"mutability":"mutable","name":"newImplementation","nameLocation":"15687:17:190","nodeType":"VariableDeclaration","scope":88102,"src":"15679:25:190","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88093,"name":"address","nodeType":"ElementaryTypeName","src":"15679:7:190","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15678:27:190"},"returnParameters":{"id":88100,"nodeType":"ParameterList","parameters":[],"src":"15748:0:190"},"scope":88103,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":87769,"name":"UUPSUpgradeable","nameLocations":["3029:15:190"],"nodeType":"IdentifierPath","referencedDeclaration":68925,"src":"3029:15:190"},"id":87770,"nodeType":"InheritanceSpecifier","src":"3029:15:190"},{"baseName":{"id":87771,"name":"AccessControlDefaultAdminRulesUpgradeable","nameLocations":["3050:41:190"],"nodeType":"IdentifierPath","referencedDeclaration":68475,"src":"3050:41:190"},"id":87772,"nodeType":"InheritanceSpecifier","src":"3050:41:190"},{"baseName":{"id":87773,"name":"OFTCoreUpgradeable","nameLocations":["3097:18:190"],"nodeType":"IdentifierPath","referencedDeclaration":5277,"src":"3097:18:190"},"id":87774,"nodeType":"InheritanceSpecifier","src":"3097:18:190"},{"baseName":{"id":87775,"name":"DualPausableUpgradeable","nameLocations":["3121:23:190"],"nodeType":"IdentifierPath","referencedDeclaration":88283,"src":"3121:23:190"},"id":87776,"nodeType":"InheritanceSpecifier","src":"3121:23:190"},{"baseName":{"id":87777,"name":"IIexecLayerZeroBridge","nameLocations":["3150:21:190"],"nodeType":"IdentifierPath","referencedDeclaration":88306,"src":"3150:21:190"},"id":87778,"nodeType":"InheritanceSpecifier","src":"3150:21:190"}],"canonicalName":"IexecLayerZeroBridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":87768,"nodeType":"StructuredDocumentation","src":"1113:1878:190","text":" @title IexecLayerZeroBridge\n @dev A LayerZero OFT (Omnichain Fungible Token) bridge implementation for RLC tokens\n This contract enables cross-chain transfer of RLC tokens using LayerZero's OFT standard.\n It overrides the `_debit` and `_credit` functions to use external mint and burn functions\n on the CrosschainRLC token contract.\n Cross-chain Transfer Mechanism:\n 1. When sending tokens FROM this chain: RLC tokens are permanently burned from the sender's balance\n 2. When receiving tokens TO this chain: New RLC tokens are minted to the recipient's balance\n This ensures the total supply across all chains remains constant - tokens destroyed on one\n chain are minted on another, maintaining a 1:1 peg across the entire ecosystem.\n Dual-Pause Emergency System:\n 1. Complete pause: Blocks all bridge operations (inbound and outbound transfers)\n 2. Only outbout transfers pause: Blocks only outbound transfers, allows users to receive/withdraw funds\n Architecture Overview:\n This bridge supports two distinct deployment scenarios:\n 1. Non-Mainnet Chains (L2s, sidechains, etc.):\n - BRIDGEABLE_TOKEN: Points to RLCCrosschain contract (mintable/burnable tokens)\n - APPROVAL_REQUIRED: false (bridge can mint/burn directly)\n - Mechanism: Mint tokens on transfer-in, burn tokens on transfer-out\n 2. Ethereum Mainnet:\n - BRIDGEABLE_TOKEN: Points to LiquidityUnifier contract (manages original RLC tokens)\n - APPROVAL_REQUIRED: true (requires user approval for token transfers)\n - Mechanism: Lock tokens on transfer-out, unlock tokens on transfer-in\n The LiquidityUnifier contract acts as a relayer, implementing ERC-7802 interface\n to provide consistent lock/unlock operations for the original RLC token contract\n that may not natively support the crosschain standard."},"fullyImplemented":true,"linearizedBaseContracts":[88103,88306,88283,70150,5277,2870,3093,2647,2374,2579,2203,67627,68475,67432,70534,75345,71307,71161,70914,69879,68925,71317,68743,3732,4379,3670,3753,65103,5421],"name":"IexecLayerZeroBridge","nameLocation":"3001:20:190","scope":88104,"usedErrors":[2219,2396,2398,3618,3622,3624,3626,3705,4335,4337,5319,5325,67463,67468,68492,68495,68770,68775,70029,70032,70841,70844,71074,71077,71082,71554,71567,72356,72818,73111,76976,88140,88143,88289],"usedEvents":[3632,3711,4342,4669,5337,5347,67474,68500,70021,70026,70853,70862,70871,71089,71092,71099,71102,71255,88132,88137]}],"license":"Apache-2.0"},"id":190} \ No newline at end of file diff --git a/artifacts/RLCCrosschainToken.sol/RLCCrosschainToken.json b/artifacts/RLCCrosschainToken.sol/RLCCrosschainToken.json new file mode 100644 index 00000000..adfc9cc0 --- /dev/null +++ b/artifacts/RLCCrosschainToken.sol/RLCCrosschainToken.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_BRIDGE_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"acceptDefaultAdminTransfer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"approveAndCall","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"beginDefaultAdminTransfer","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelDefaultAdminTransfer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeDefaultAdminDelay","inputs":[{"name":"newDelay","type":"uint48","internalType":"uint48"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crosschainBurn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crosschainMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"defaultAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultAdminDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"defaultAdminDelayIncreaseWait","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"initialAdmin","type":"address","internalType":"address"},{"name":"initialUpgrader","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingDefaultAdmin","inputs":[],"outputs":[{"name":"newAdmin","type":"address","internalType":"address"},{"name":"schedule","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"pendingDefaultAdminDelay","inputs":[],"outputs":[{"name":"newDelay","type":"uint48","internalType":"uint48"},{"name":"schedule","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollbackDefaultAdminDelay","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"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":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"CrosschainBurn","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CrosschainMint","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DefaultAdminDelayChangeCanceled","inputs":[],"anonymous":false},{"type":"event","name":"DefaultAdminDelayChangeScheduled","inputs":[{"name":"newDelay","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"effectSchedule","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"DefaultAdminTransferCanceled","inputs":[],"anonymous":false},{"type":"event","name":"DefaultAdminTransferScheduled","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"acceptSchedule","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"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":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlEnforcedDefaultAdminDelay","inputs":[{"name":"schedule","type":"uint48","internalType":"uint48"}]},{"type":"error","name":"AccessControlEnforcedDefaultAdminRules","inputs":[]},{"type":"error","name":"AccessControlInvalidDefaultAdmin","inputs":[{"name":"defaultAdmin","type":"address","internalType":"address"}]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"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":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a06040523060805234801562000014575f80fd5b506200001f62000025565b620000d9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000765760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612bc4620001005f395f81816112ea0152818161131301526114740152612bc45ff3fe608060405260043610610233575f3560e01c806384b0196e11610129578063ad3cb1cc116100a8578063d505accf1161006d578063d505accf146106b4578063d547741f146106d3578063d602b9fd146106f2578063dd62ed3e14610706578063f72c0d8b14610725575f80fd5b8063ad3cb1cc14610603578063cae9ca5114610633578063cc8463c814610652578063cefc142914610666578063cf6eefb71461067a575f80fd5b806395d89b41116100ee57806395d89b4114610557578063a1eda53c1461056b578063a217fddf1461059e578063a9059cbb146105b1578063a94ea30c146105d0575f80fd5b806384b0196e146104b257806384ef8ffc146104d95780638da5cb5b146105055780638f15b4141461051957806391d1485414610538575f80fd5b80632f2ff15d116101b557806352d1902d1161017a57806352d1902d14610422578063634e93da14610436578063649a5ec71461045557806370a08231146104745780637ecebe0014610493575f80fd5b80632f2ff15d146103a2578063313ce567146103c15780633644e515146103dc57806336568abe146103f05780634f1ef2861461040f575f80fd5b806318160ddd116101fb57806318160ddd146102e957806318bf50771461032657806323b872dd14610345578063248a9ca3146103645780632b8c49e314610383575f80fd5b806301ffc9a714610237578063022d63fb1461026b57806306fdde0314610293578063095ea7b3146102b45780630aa6220b146102d3575b5f80fd5b348015610242575f80fd5b506102566102513660046123e5565b610758565b60405190151581526020015b60405180910390f35b348015610276575f80fd5b50620697805b60405165ffffffffffff9091168152602001610262565b34801561029e575f80fd5b506102a7610768565b6040516102629190612459565b3480156102bf575f80fd5b506102566102ce366004612486565b61080d565b3480156102de575f80fd5b506102e7610824565b005b3480156102f4575f80fd5b507f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b604051908152602001610262565b348015610331575f80fd5b506102e7610340366004612486565b610839565b348015610350575f80fd5b5061025661035f3660046124ae565b610891565b34801561036f575f80fd5b5061031861037e3660046124e7565b6108b6565b34801561038e575f80fd5b506102e761039d366004612486565b6108d6565b3480156103ad575f80fd5b506102e76103bc3660046124fe565b610926565b3480156103cc575f80fd5b5060405160098152602001610262565b3480156103e7575f80fd5b50610318610952565b3480156103fb575f80fd5b506102e761040a3660046124fe565b610960565b6102e761041d3660046125af565b610a27565b34801561042d575f80fd5b50610318610a42565b348015610441575f80fd5b506102e761045036600461260d565b610a5d565b348015610460575f80fd5b506102e761046f366004612626565b610a70565b34801561047f575f80fd5b5061031861048e36600461260d565b610a83565b34801561049e575f80fd5b506103186104ad36600461260d565b610ab3565b3480156104bd575f80fd5b506104c6610abd565b604051610262979695949392919061264b565b3480156104e4575f80fd5b506104ed610b66565b6040516001600160a01b039091168152602001610262565b348015610510575f80fd5b506104ed610b81565b348015610524575f80fd5b506102e7610533366004612700565b610b8a565b348015610543575f80fd5b506102566105523660046124fe565b610ccd565b348015610562575f80fd5b506102a7610d03565b348015610576575f80fd5b5061057f610d41565b6040805165ffffffffffff938416815292909116602083015201610262565b3480156105a9575f80fd5b506103185f81565b3480156105bc575f80fd5b506102566105cb366004612486565b610db0565b3480156105db575f80fd5b506103187fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c97881565b34801561060e575f80fd5b506102a7604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561063e575f80fd5b506102e761064d366004612780565b610dbd565b34801561065d575f80fd5b5061027c610e34565b348015610671575f80fd5b506102e7610eaf565b348015610685575f80fd5b5061068e610eee565b604080516001600160a01b03909316835265ffffffffffff909116602083015201610262565b3480156106bf575f80fd5b506102e76106ce366004612800565b610f1b565b3480156106de575f80fd5b506102e76106ed3660046124fe565b611070565b3480156106fd575f80fd5b506102e7611098565b348015610711575f80fd5b5061031861072036600461286d565b6110aa565b348015610730575f80fd5b506103187f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b5f610762826110f3565b92915050565b60605f5f80516020612acf8339815191525b905080600301805461078b90612895565b80601f01602080910402602001604051908101604052809291908181526020018280546107b790612895565b80156108025780601f106107d957610100808354040283529160200191610802565b820191905f5260205f20905b8154815290600101906020018083116107e557829003601f168201915b505050505091505090565b5f3361081a818585611117565b5060019392505050565b5f61082e81611124565b61083661112e565b50565b6108423361113a565b61084c8282611164565b60405181815233906001600160a01b038416907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04906020015b60405180910390a35050565b5f3361089e858285611198565b6108a98585856111f6565b60019150505b9392505050565b5f9081525f80516020612b4f833981519152602052604090206001015490565b6108df3361113a565b6108e98282611253565b60405181815233906001600160a01b038416907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd490602001610885565b8161094457604051631fe1e13d60e11b815260040160405180910390fd5b61094e8282611287565b5050565b5f61095b6112a3565b905090565b5f80516020612b2f83398151915282158015610994575061097f610b66565b6001600160a01b0316826001600160a01b0316145b15610a18575f806109a3610eee565b90925090506001600160a01b0382161515806109c5575065ffffffffffff8116155b806109d857504265ffffffffffff821610155b15610a05576040516319ca5ebb60e01b815265ffffffffffff821660048201526024015b60405180910390fd5b5050805465ffffffffffff60a01b191681555b610a2283836112ac565b505050565b610a2f6112df565b610a3882611383565b61094e82826113ad565b5f610a4b611469565b505f80516020612b0f83398151915290565b5f610a6781611124565b61094e826114b2565b5f610a7a81611124565b61094e82611524565b5f805f80516020612acf8339815191525b6001600160a01b039093165f9081526020939093525050604090205490565b5f61076282611593565b5f60608082808083815f80516020612aef8339815191528054909150158015610ae857506001810154155b610b2c5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109fc565b610b346115bb565b610b3c6115f9565b604080515f80825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b5f80516020612b6f833981519152546001600160a01b031690565b5f61095b610b66565b5f610b9361160f565b805490915060ff600160401b820416159067ffffffffffffffff165f81158015610bba5750825b90505f8267ffffffffffffffff166001148015610bd65750303b155b905081158015610be4575080155b15610c025760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c2c57845460ff60401b1916600160401b1785555b610c34611637565b610c3e5f8861163f565b610c687f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e387611651565b50610c7389896116c5565b610c7c896116d7565b8315610cc257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b5f9182525f80516020612b4f833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f80516020612acf8339815191529161078b90612895565b5f80516020612b6f833981519152545f90600160d01b900465ffffffffffff165f80516020612b2f8339815191528115801590610d8657504265ffffffffffff831610155b610d91575f80610da7565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f3361081a8185856111f6565b610dc7848461080d565b15610e2e57604051638f4ffcb160e01b81526001600160a01b03851690638f4ffcb190610e0090339087903090889088906004016128cd565b5f604051808303815f87803b158015610e17575f80fd5b505af1158015610e29573d5f803e3d5ffd5b505050505b50505050565b5f80516020612b6f833981519152545f905f80516020612b2f83398151915290600160d01b900465ffffffffffff168015801590610e7957504265ffffffffffff8216105b610e93578154600160d01b900465ffffffffffff16610ea8565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f610eb8610eee565b509050336001600160a01b03821614610ee657604051636116401160e11b81523360048201526024016109fc565b610836611702565b5f80516020612b2f833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b83421115610f3f5760405163313c898160e11b8152600481018590526024016109fc565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610fa98c6001600160a01b03165f9081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f6110038261179b565b90505f611012828787876117c7565b9050896001600160a01b0316816001600160a01b031614611059576040516325c0072360e11b81526001600160a01b0380831660048301528b1660248201526044016109fc565b6110648a8a8a611117565b50505050505050505050565b8161108e57604051631fe1e13d60e11b815260040160405180910390fd5b61094e82826117f3565b5f6110a281611124565b61083661180f565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6001600160e01b03198216630cccc66560e21b1480610762575061076282611819565b610a22838383600161183d565b6108368133611921565b6111385f8061195a565b565b7fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c97861094e81611124565b6001600160a01b03821661118d5760405163ec442f0560e01b81525f60048201526024016109fc565b61094e5f8383611a32565b5f6111a384846110aa565b90505f19811015610e2e57818110156111e857604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016109fc565b610e2e84848484035f61183d565b6001600160a01b03831661121f57604051634b637e8f60e11b81525f60048201526024016109fc565b6001600160a01b0382166112485760405163ec442f0560e01b81525f60048201526024016109fc565b610a22838383611a32565b6001600160a01b03821661127c57604051634b637e8f60e11b81525f60048201526024016109fc565b61094e825f83611a32565b611290826108b6565b61129981611124565b610e2e8383611651565b5f61095b611b6b565b6001600160a01b03811633146112d55760405163334bd91960e11b815260040160405180910390fd5b610a228282611bde565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061136557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113595f80516020612b0f833981519152546001600160a01b031690565b6001600160a01b031614155b156111385760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361094e81611124565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611407575060408051601f3d908101601f191682019092526114049181019061291f565b60015b61142f57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016109fc565b5f80516020612b0f833981519152811461145f57604051632a87526960e21b8152600481018290526024016109fc565b610a228383611c35565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111385760405163703e46dd60e11b815260040160405180910390fd5b5f6114bb610e34565b6114c442611c8a565b6114ce919061294a565b90506114da8282611cc0565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f61152e82611d4a565b61153742611c8a565b611541919061294a565b905061154d828261195a565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b910160405180910390a15050565b5f807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00610a94565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060915f80516020612aef8339815191529161078b90612895565b60605f5f80516020612aef83398151915261077a565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610762565b611138611d91565b611647611d91565b61094e8282611db6565b5f5f80516020612b2f833981519152836116b3575f61166e610b66565b6001600160a01b03161461169557604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6116bd8484611e1c565b949350505050565b6116cd611d91565b61094e8282611ec4565b6116df611d91565b61083681604051806040016040528060018152602001603160f81b815250611f14565b5f80516020612b2f8339815191525f8061171a610eee565b9150915061172f8165ffffffffffff16151590565b158061174357504265ffffffffffff821610155b1561176b576040516319ca5ebb60e01b815265ffffffffffff821660048201526024016109fc565b61177c5f611777610b66565b611bde565b506117875f83611651565b505081546001600160d01b03191690915550565b5f6107626117a76112a3565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f806117d788888888611f73565b9250925092506117e7828261203b565b50909695505050505050565b6117fc826108b6565b61180581611124565b610e2e8383611bde565b6111385f80611cc0565b5f6001600160e01b031982166318a4c3c360e11b14806107625750610762826120f3565b5f80516020612acf8339815191526001600160a01b0385166118745760405163e602df0560e01b81525f60048201526024016109fc565b6001600160a01b03841661189d57604051634a1406b160e11b81525f60048201526024016109fc565b6001600160a01b038086165f9081526001830160209081526040808320938816835292905220839055811561191a57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161191191815260200190565b60405180910390a35b5050505050565b61192b8282610ccd565b61094e5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109fc565b5f80516020612b6f833981519152545f80516020612b2f83398151915290600160d01b900465ffffffffffff1680156119f4574265ffffffffffff821610156119cb57600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b021782556119f4565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f80516020612acf8339815191526001600160a01b038416611a6c5781816002015f828254611a619190612969565b90915550611adc9050565b6001600160a01b0384165f9081526020829052604090205482811015611abe5760405163391434e360e21b81526001600160a01b038616600482015260248101829052604481018490526064016109fc565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316611afa576002810180548390039055611b18565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b5d91815260200190565b60405180910390a350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611b95612127565b611b9d61218f565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f5f80516020612b2f83398151915283158015611c135750611bfe610b66565b6001600160a01b0316836001600160a01b0316145b15611c2b576001810180546001600160a01b03191690555b6116bd84846121d1565b611c3e8261224a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611c8257610a2282826122ad565b61094e61231f565b5f65ffffffffffff821115611cbc576040516306dfcc6560e41b815260306004820152602481018390526044016109fc565b5090565b5f80516020612b2f8339815191525f611cd7610eee565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b038816171784559150611d1790508165ffffffffffff16151590565b15610e2e576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80611d54610e34565b90508065ffffffffffff168365ffffffffffff1611611d7c57611d77838261297c565b6108af565b6108af65ffffffffffff84166206978061233e565b611d9961234d565b61113857604051631afcd79f60e31b815260040160405180910390fd5b611dbe611d91565b5f80516020612b2f8339815191526001600160a01b038216611df557604051636116401160e11b81525f60048201526024016109fc565b80546001600160d01b0316600160d01b65ffffffffffff851602178155610e2e5f83611651565b5f5f80516020612b4f833981519152611e358484610ccd565b611eb4575f848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611e6a3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610762565b5f915050610762565b5092915050565b611ecc611d91565b5f80516020612acf8339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03611f0584826129df565b5060048101610e2e83826129df565b611f1c611d91565b5f80516020612aef8339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102611f5584826129df565b5060038101611f6483826129df565b505f8082556001909101555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611fac57505f91506003905082612031565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611ffd573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661202857505f925060019150829050612031565b92505f91508190505b9450945094915050565b5f82600381111561204e5761204e612a9f565b03612057575050565b600182600381111561206b5761206b612a9f565b036120895760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561209d5761209d612a9f565b036120be5760405163fce698f760e01b8152600481018290526024016109fc565b60038260038111156120d2576120d2612a9f565b0361094e576040516335e2f38360e21b8152600481018290526024016109fc565b5f6001600160e01b03198216637965db0b60e01b148061076257506301ffc9a760e01b6001600160e01b0319831614610762565b5f5f80516020612aef8339815191528161213f6115bb565b80519091501561215757805160209091012092915050565b81548015612166579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b5f5f80516020612aef833981519152816121a76115f9565b8051909150156121bf57805160209091012092915050565b60018201548015612166579392505050565b5f5f80516020612b4f8339815191526121ea8484610ccd565b15611eb4575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610762565b806001600160a01b03163b5f0361227f57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016109fc565b5f80516020612b0f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516122c99190612ab3565b5f60405180830381855af49150503d805f8114612301576040519150601f19603f3d011682016040523d82523d5f602084013e612306565b606091505b5091509150612316858383612366565b95945050505050565b34156111385760405163b398979f60e01b815260040160405180910390fd5b5f8282188284100282186108af565b5f61235661160f565b54600160401b900460ff16919050565b60608261237657611d77826123bd565b815115801561238d57506001600160a01b0384163b155b156123b657604051639996b31560e01b81526001600160a01b03851660048201526024016109fc565b50806108af565b8051156123cc57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f602082840312156123f5575f80fd5b81356001600160e01b0319811681146108af575f80fd5b5f5b8381101561242657818101518382015260200161240e565b50505f910152565b5f815180845261244581602086016020860161240c565b601f01601f19169290920160200192915050565b602081525f6108af602083018461242e565b80356001600160a01b0381168114612481575f80fd5b919050565b5f8060408385031215612497575f80fd5b6124a08361246b565b946020939093013593505050565b5f805f606084860312156124c0575f80fd5b6124c98461246b565b92506124d76020850161246b565b9150604084013590509250925092565b5f602082840312156124f7575f80fd5b5035919050565b5f806040838503121561250f575f80fd5b8235915061251f6020840161246b565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561255657612556612528565b604051601f8501601f19908116603f0116810190828211818310171561257e5761257e612528565b81604052809350858152868686011115612596575f80fd5b858560208301375f602087830101525050509392505050565b5f80604083850312156125c0575f80fd5b6125c98361246b565b9150602083013567ffffffffffffffff8111156125e4575f80fd5b8301601f810185136125f4575f80fd5b6126038582356020840161253c565b9150509250929050565b5f6020828403121561261d575f80fd5b6108af8261246b565b5f60208284031215612636575f80fd5b813565ffffffffffff811681146108af575f80fd5b60ff60f81b881681525f602060e0602084015261266b60e084018a61242e565b838103604085015261267d818a61242e565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b818110156126d0578351835292840192918401916001016126b4565b50909c9b505050505050505050505050565b5f82601f8301126126f1575f80fd5b6108af8383356020850161253c565b5f805f8060808587031215612713575f80fd5b843567ffffffffffffffff8082111561272a575f80fd5b612736888389016126e2565b9550602087013591508082111561274b575f80fd5b50612758878288016126e2565b9350506127676040860161246b565b91506127756060860161246b565b905092959194509250565b5f805f8060608587031215612793575f80fd5b61279c8561246b565b935060208501359250604085013567ffffffffffffffff808211156127bf575f80fd5b818701915087601f8301126127d2575f80fd5b8135818111156127e0575f80fd5b8860208285010111156127f1575f80fd5b95989497505060200194505050565b5f805f805f805f60e0888a031215612816575f80fd5b61281f8861246b565b965061282d6020890161246b565b95506040880135945060608801359350608088013560ff81168114612850575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f806040838503121561287e575f80fd5b6128878361246b565b915061251f6020840161246b565b600181811c908216806128a957607f821691505b6020821081036128c757634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b038681168252602082018690528416604082015260806060820181905281018290525f828460a08401375f60a0848401015260a0601f19601f85011683010190509695505050505050565b5f6020828403121561292f575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff818116838216019080821115611ebd57611ebd612936565b8082018082111561076257610762612936565b65ffffffffffff828116828216039080821115611ebd57611ebd612936565b601f821115610a2257805f5260205f20601f840160051c810160208510156129c05750805b601f840160051c820191505b8181101561191a575f81556001016129cc565b815167ffffffffffffffff8111156129f9576129f9612528565b612a0d81612a078454612895565b8461299b565b602080601f831160018114612a40575f8415612a295750858301515b5f19600386901b1c1916600185901b178555612a97565b5f85815260208120601f198616915b82811015612a6e57888601518255948401946001909101908401612a4f565b5085821015612a8b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52602160045260245ffd5b5f8251612ac481846020870161240c565b919091019291505056fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a264697066735822122054ab77540e69e6d799b33e9a4ce3b51b762205c015c6ce6731607210931d85c464736f6c63430008170033","sourceMap":"1319:3396:188:-:0;;;1171:4:114;1128:48;;1704:53:188;;;;;;;;;-1:-1:-1;1728:22:188;:20;:22::i;:::-;1319:3396;;7709:422:113;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:113;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:113;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:113;-1:-1:-1;;;;;8033:33:113;;;;;8085:29;;158:50:212;;;8085:29:113;;146:2:212;131:18;8085:29:113;;;;;;;7979:146;7758:373;7709:422::o;14:200:212:-;1319:3396:188;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610233575f3560e01c806384b0196e11610129578063ad3cb1cc116100a8578063d505accf1161006d578063d505accf146106b4578063d547741f146106d3578063d602b9fd146106f2578063dd62ed3e14610706578063f72c0d8b14610725575f80fd5b8063ad3cb1cc14610603578063cae9ca5114610633578063cc8463c814610652578063cefc142914610666578063cf6eefb71461067a575f80fd5b806395d89b41116100ee57806395d89b4114610557578063a1eda53c1461056b578063a217fddf1461059e578063a9059cbb146105b1578063a94ea30c146105d0575f80fd5b806384b0196e146104b257806384ef8ffc146104d95780638da5cb5b146105055780638f15b4141461051957806391d1485414610538575f80fd5b80632f2ff15d116101b557806352d1902d1161017a57806352d1902d14610422578063634e93da14610436578063649a5ec71461045557806370a08231146104745780637ecebe0014610493575f80fd5b80632f2ff15d146103a2578063313ce567146103c15780633644e515146103dc57806336568abe146103f05780634f1ef2861461040f575f80fd5b806318160ddd116101fb57806318160ddd146102e957806318bf50771461032657806323b872dd14610345578063248a9ca3146103645780632b8c49e314610383575f80fd5b806301ffc9a714610237578063022d63fb1461026b57806306fdde0314610293578063095ea7b3146102b45780630aa6220b146102d3575b5f80fd5b348015610242575f80fd5b506102566102513660046123e5565b610758565b60405190151581526020015b60405180910390f35b348015610276575f80fd5b50620697805b60405165ffffffffffff9091168152602001610262565b34801561029e575f80fd5b506102a7610768565b6040516102629190612459565b3480156102bf575f80fd5b506102566102ce366004612486565b61080d565b3480156102de575f80fd5b506102e7610824565b005b3480156102f4575f80fd5b507f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b604051908152602001610262565b348015610331575f80fd5b506102e7610340366004612486565b610839565b348015610350575f80fd5b5061025661035f3660046124ae565b610891565b34801561036f575f80fd5b5061031861037e3660046124e7565b6108b6565b34801561038e575f80fd5b506102e761039d366004612486565b6108d6565b3480156103ad575f80fd5b506102e76103bc3660046124fe565b610926565b3480156103cc575f80fd5b5060405160098152602001610262565b3480156103e7575f80fd5b50610318610952565b3480156103fb575f80fd5b506102e761040a3660046124fe565b610960565b6102e761041d3660046125af565b610a27565b34801561042d575f80fd5b50610318610a42565b348015610441575f80fd5b506102e761045036600461260d565b610a5d565b348015610460575f80fd5b506102e761046f366004612626565b610a70565b34801561047f575f80fd5b5061031861048e36600461260d565b610a83565b34801561049e575f80fd5b506103186104ad36600461260d565b610ab3565b3480156104bd575f80fd5b506104c6610abd565b604051610262979695949392919061264b565b3480156104e4575f80fd5b506104ed610b66565b6040516001600160a01b039091168152602001610262565b348015610510575f80fd5b506104ed610b81565b348015610524575f80fd5b506102e7610533366004612700565b610b8a565b348015610543575f80fd5b506102566105523660046124fe565b610ccd565b348015610562575f80fd5b506102a7610d03565b348015610576575f80fd5b5061057f610d41565b6040805165ffffffffffff938416815292909116602083015201610262565b3480156105a9575f80fd5b506103185f81565b3480156105bc575f80fd5b506102566105cb366004612486565b610db0565b3480156105db575f80fd5b506103187fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c97881565b34801561060e575f80fd5b506102a7604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561063e575f80fd5b506102e761064d366004612780565b610dbd565b34801561065d575f80fd5b5061027c610e34565b348015610671575f80fd5b506102e7610eaf565b348015610685575f80fd5b5061068e610eee565b604080516001600160a01b03909316835265ffffffffffff909116602083015201610262565b3480156106bf575f80fd5b506102e76106ce366004612800565b610f1b565b3480156106de575f80fd5b506102e76106ed3660046124fe565b611070565b3480156106fd575f80fd5b506102e7611098565b348015610711575f80fd5b5061031861072036600461286d565b6110aa565b348015610730575f80fd5b506103187f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b5f610762826110f3565b92915050565b60605f5f80516020612acf8339815191525b905080600301805461078b90612895565b80601f01602080910402602001604051908101604052809291908181526020018280546107b790612895565b80156108025780601f106107d957610100808354040283529160200191610802565b820191905f5260205f20905b8154815290600101906020018083116107e557829003601f168201915b505050505091505090565b5f3361081a818585611117565b5060019392505050565b5f61082e81611124565b61083661112e565b50565b6108423361113a565b61084c8282611164565b60405181815233906001600160a01b038416907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04906020015b60405180910390a35050565b5f3361089e858285611198565b6108a98585856111f6565b60019150505b9392505050565b5f9081525f80516020612b4f833981519152602052604090206001015490565b6108df3361113a565b6108e98282611253565b60405181815233906001600160a01b038416907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd490602001610885565b8161094457604051631fe1e13d60e11b815260040160405180910390fd5b61094e8282611287565b5050565b5f61095b6112a3565b905090565b5f80516020612b2f83398151915282158015610994575061097f610b66565b6001600160a01b0316826001600160a01b0316145b15610a18575f806109a3610eee565b90925090506001600160a01b0382161515806109c5575065ffffffffffff8116155b806109d857504265ffffffffffff821610155b15610a05576040516319ca5ebb60e01b815265ffffffffffff821660048201526024015b60405180910390fd5b5050805465ffffffffffff60a01b191681555b610a2283836112ac565b505050565b610a2f6112df565b610a3882611383565b61094e82826113ad565b5f610a4b611469565b505f80516020612b0f83398151915290565b5f610a6781611124565b61094e826114b2565b5f610a7a81611124565b61094e82611524565b5f805f80516020612acf8339815191525b6001600160a01b039093165f9081526020939093525050604090205490565b5f61076282611593565b5f60608082808083815f80516020612aef8339815191528054909150158015610ae857506001810154155b610b2c5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109fc565b610b346115bb565b610b3c6115f9565b604080515f80825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b5f80516020612b6f833981519152546001600160a01b031690565b5f61095b610b66565b5f610b9361160f565b805490915060ff600160401b820416159067ffffffffffffffff165f81158015610bba5750825b90505f8267ffffffffffffffff166001148015610bd65750303b155b905081158015610be4575080155b15610c025760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c2c57845460ff60401b1916600160401b1785555b610c34611637565b610c3e5f8861163f565b610c687f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e387611651565b50610c7389896116c5565b610c7c896116d7565b8315610cc257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b5f9182525f80516020612b4f833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f80516020612acf8339815191529161078b90612895565b5f80516020612b6f833981519152545f90600160d01b900465ffffffffffff165f80516020612b2f8339815191528115801590610d8657504265ffffffffffff831610155b610d91575f80610da7565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f3361081a8185856111f6565b610dc7848461080d565b15610e2e57604051638f4ffcb160e01b81526001600160a01b03851690638f4ffcb190610e0090339087903090889088906004016128cd565b5f604051808303815f87803b158015610e17575f80fd5b505af1158015610e29573d5f803e3d5ffd5b505050505b50505050565b5f80516020612b6f833981519152545f905f80516020612b2f83398151915290600160d01b900465ffffffffffff168015801590610e7957504265ffffffffffff8216105b610e93578154600160d01b900465ffffffffffff16610ea8565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f610eb8610eee565b509050336001600160a01b03821614610ee657604051636116401160e11b81523360048201526024016109fc565b610836611702565b5f80516020612b2f833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b83421115610f3f5760405163313c898160e11b8152600481018590526024016109fc565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610fa98c6001600160a01b03165f9081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f6110038261179b565b90505f611012828787876117c7565b9050896001600160a01b0316816001600160a01b031614611059576040516325c0072360e11b81526001600160a01b0380831660048301528b1660248201526044016109fc565b6110648a8a8a611117565b50505050505050505050565b8161108e57604051631fe1e13d60e11b815260040160405180910390fd5b61094e82826117f3565b5f6110a281611124565b61083661180f565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f6001600160e01b03198216630cccc66560e21b1480610762575061076282611819565b610a22838383600161183d565b6108368133611921565b6111385f8061195a565b565b7fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c97861094e81611124565b6001600160a01b03821661118d5760405163ec442f0560e01b81525f60048201526024016109fc565b61094e5f8383611a32565b5f6111a384846110aa565b90505f19811015610e2e57818110156111e857604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016109fc565b610e2e84848484035f61183d565b6001600160a01b03831661121f57604051634b637e8f60e11b81525f60048201526024016109fc565b6001600160a01b0382166112485760405163ec442f0560e01b81525f60048201526024016109fc565b610a22838383611a32565b6001600160a01b03821661127c57604051634b637e8f60e11b81525f60048201526024016109fc565b61094e825f83611a32565b611290826108b6565b61129981611124565b610e2e8383611651565b5f61095b611b6b565b6001600160a01b03811633146112d55760405163334bd91960e11b815260040160405180910390fd5b610a228282611bde565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061136557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113595f80516020612b0f833981519152546001600160a01b031690565b6001600160a01b031614155b156111385760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361094e81611124565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611407575060408051601f3d908101601f191682019092526114049181019061291f565b60015b61142f57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016109fc565b5f80516020612b0f833981519152811461145f57604051632a87526960e21b8152600481018290526024016109fc565b610a228383611c35565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111385760405163703e46dd60e11b815260040160405180910390fd5b5f6114bb610e34565b6114c442611c8a565b6114ce919061294a565b90506114da8282611cc0565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f61152e82611d4a565b61153742611c8a565b611541919061294a565b905061154d828261195a565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b910160405180910390a15050565b5f807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00610a94565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060915f80516020612aef8339815191529161078b90612895565b60605f5f80516020612aef83398151915261077a565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610762565b611138611d91565b611647611d91565b61094e8282611db6565b5f5f80516020612b2f833981519152836116b3575f61166e610b66565b6001600160a01b03161461169557604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b6116bd8484611e1c565b949350505050565b6116cd611d91565b61094e8282611ec4565b6116df611d91565b61083681604051806040016040528060018152602001603160f81b815250611f14565b5f80516020612b2f8339815191525f8061171a610eee565b9150915061172f8165ffffffffffff16151590565b158061174357504265ffffffffffff821610155b1561176b576040516319ca5ebb60e01b815265ffffffffffff821660048201526024016109fc565b61177c5f611777610b66565b611bde565b506117875f83611651565b505081546001600160d01b03191690915550565b5f6107626117a76112a3565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f806117d788888888611f73565b9250925092506117e7828261203b565b50909695505050505050565b6117fc826108b6565b61180581611124565b610e2e8383611bde565b6111385f80611cc0565b5f6001600160e01b031982166318a4c3c360e11b14806107625750610762826120f3565b5f80516020612acf8339815191526001600160a01b0385166118745760405163e602df0560e01b81525f60048201526024016109fc565b6001600160a01b03841661189d57604051634a1406b160e11b81525f60048201526024016109fc565b6001600160a01b038086165f9081526001830160209081526040808320938816835292905220839055811561191a57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161191191815260200190565b60405180910390a35b5050505050565b61192b8282610ccd565b61094e5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109fc565b5f80516020612b6f833981519152545f80516020612b2f83398151915290600160d01b900465ffffffffffff1680156119f4574265ffffffffffff821610156119cb57600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b021782556119f4565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f80516020612acf8339815191526001600160a01b038416611a6c5781816002015f828254611a619190612969565b90915550611adc9050565b6001600160a01b0384165f9081526020829052604090205482811015611abe5760405163391434e360e21b81526001600160a01b038616600482015260248101829052604481018490526064016109fc565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316611afa576002810180548390039055611b18565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b5d91815260200190565b60405180910390a350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611b95612127565b611b9d61218f565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f5f80516020612b2f83398151915283158015611c135750611bfe610b66565b6001600160a01b0316836001600160a01b0316145b15611c2b576001810180546001600160a01b03191690555b6116bd84846121d1565b611c3e8261224a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115611c8257610a2282826122ad565b61094e61231f565b5f65ffffffffffff821115611cbc576040516306dfcc6560e41b815260306004820152602481018390526044016109fc565b5090565b5f80516020612b2f8339815191525f611cd7610eee565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b038816171784559150611d1790508165ffffffffffff16151590565b15610e2e576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80611d54610e34565b90508065ffffffffffff168365ffffffffffff1611611d7c57611d77838261297c565b6108af565b6108af65ffffffffffff84166206978061233e565b611d9961234d565b61113857604051631afcd79f60e31b815260040160405180910390fd5b611dbe611d91565b5f80516020612b2f8339815191526001600160a01b038216611df557604051636116401160e11b81525f60048201526024016109fc565b80546001600160d01b0316600160d01b65ffffffffffff851602178155610e2e5f83611651565b5f5f80516020612b4f833981519152611e358484610ccd565b611eb4575f848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611e6a3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610762565b5f915050610762565b5092915050565b611ecc611d91565b5f80516020612acf8339815191527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03611f0584826129df565b5060048101610e2e83826129df565b611f1c611d91565b5f80516020612aef8339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102611f5584826129df565b5060038101611f6483826129df565b505f8082556001909101555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611fac57505f91506003905082612031565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611ffd573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661202857505f925060019150829050612031565b92505f91508190505b9450945094915050565b5f82600381111561204e5761204e612a9f565b03612057575050565b600182600381111561206b5761206b612a9f565b036120895760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561209d5761209d612a9f565b036120be5760405163fce698f760e01b8152600481018290526024016109fc565b60038260038111156120d2576120d2612a9f565b0361094e576040516335e2f38360e21b8152600481018290526024016109fc565b5f6001600160e01b03198216637965db0b60e01b148061076257506301ffc9a760e01b6001600160e01b0319831614610762565b5f5f80516020612aef8339815191528161213f6115bb565b80519091501561215757805160209091012092915050565b81548015612166579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b5f5f80516020612aef833981519152816121a76115f9565b8051909150156121bf57805160209091012092915050565b60018201548015612166579392505050565b5f5f80516020612b4f8339815191526121ea8484610ccd565b15611eb4575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610762565b806001600160a01b03163b5f0361227f57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016109fc565b5f80516020612b0f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516122c99190612ab3565b5f60405180830381855af49150503d805f8114612301576040519150601f19603f3d011682016040523d82523d5f602084013e612306565b606091505b5091509150612316858383612366565b95945050505050565b34156111385760405163b398979f60e01b815260040160405180910390fd5b5f8282188284100282186108af565b5f61235661160f565b54600160401b900460ff16919050565b60608261237657611d77826123bd565b815115801561238d57506001600160a01b0384163b155b156123b657604051639996b31560e01b81526001600160a01b03851660048201526024016109fc565b50806108af565b8051156123cc57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f602082840312156123f5575f80fd5b81356001600160e01b0319811681146108af575f80fd5b5f5b8381101561242657818101518382015260200161240e565b50505f910152565b5f815180845261244581602086016020860161240c565b601f01601f19169290920160200192915050565b602081525f6108af602083018461242e565b80356001600160a01b0381168114612481575f80fd5b919050565b5f8060408385031215612497575f80fd5b6124a08361246b565b946020939093013593505050565b5f805f606084860312156124c0575f80fd5b6124c98461246b565b92506124d76020850161246b565b9150604084013590509250925092565b5f602082840312156124f7575f80fd5b5035919050565b5f806040838503121561250f575f80fd5b8235915061251f6020840161246b565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff8084111561255657612556612528565b604051601f8501601f19908116603f0116810190828211818310171561257e5761257e612528565b81604052809350858152868686011115612596575f80fd5b858560208301375f602087830101525050509392505050565b5f80604083850312156125c0575f80fd5b6125c98361246b565b9150602083013567ffffffffffffffff8111156125e4575f80fd5b8301601f810185136125f4575f80fd5b6126038582356020840161253c565b9150509250929050565b5f6020828403121561261d575f80fd5b6108af8261246b565b5f60208284031215612636575f80fd5b813565ffffffffffff811681146108af575f80fd5b60ff60f81b881681525f602060e0602084015261266b60e084018a61242e565b838103604085015261267d818a61242e565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b818110156126d0578351835292840192918401916001016126b4565b50909c9b505050505050505050505050565b5f82601f8301126126f1575f80fd5b6108af8383356020850161253c565b5f805f8060808587031215612713575f80fd5b843567ffffffffffffffff8082111561272a575f80fd5b612736888389016126e2565b9550602087013591508082111561274b575f80fd5b50612758878288016126e2565b9350506127676040860161246b565b91506127756060860161246b565b905092959194509250565b5f805f8060608587031215612793575f80fd5b61279c8561246b565b935060208501359250604085013567ffffffffffffffff808211156127bf575f80fd5b818701915087601f8301126127d2575f80fd5b8135818111156127e0575f80fd5b8860208285010111156127f1575f80fd5b95989497505060200194505050565b5f805f805f805f60e0888a031215612816575f80fd5b61281f8861246b565b965061282d6020890161246b565b95506040880135945060608801359350608088013560ff81168114612850575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f806040838503121561287e575f80fd5b6128878361246b565b915061251f6020840161246b565b600181811c908216806128a957607f821691505b6020821081036128c757634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b038681168252602082018690528416604082015260806060820181905281018290525f828460a08401375f60a0848401015260a0601f19601f85011683010190509695505050505050565b5f6020828403121561292f575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff818116838216019080821115611ebd57611ebd612936565b8082018082111561076257610762612936565b65ffffffffffff828116828216039080821115611ebd57611ebd612936565b601f821115610a2257805f5260205f20601f840160051c810160208510156129c05750805b601f840160051c820191505b8181101561191a575f81556001016129cc565b815167ffffffffffffffff8111156129f9576129f9612528565b612a0d81612a078454612895565b8461299b565b602080601f831160018114612a40575f8415612a295750858301515b5f19600386901b1c1916600185901b178555612a97565b5f85815260208120601f198616915b82811015612a6e57888601518255948401946001909101908401612a4f565b5085821015612a8b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52602160045260245ffd5b5f8251612ac481846020870161240c565b919091019291505056fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a264697066735822122054ab77540e69e6d799b33e9a4ce3b51b762205c015c6ce6731607210931d85c464736f6c63430008170033","sourceMap":"1319:3396:188:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3669:250;;;;;;;;;;-1:-1:-1;3669:250:188;;;;;:::i;:::-;;:::i;:::-;;;470:14:212;;463:22;445:41;;433:2;418:18;3669:250:188;;;;;;;;9909:108:112;;;;;;;;;;-1:-1:-1;10004:6:112;9909:108;;;671:14:212;659:27;;;641:46;;629:2;614:18;9909:108:112;497:196:212;2697:144:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5114:186::-;;;;;;;;;;-1:-1:-1;5114:186:115;;;;;:::i;:::-;;:::i;13102:126:112:-;;;;;;;;;;;;;:::i;:::-;;3850:152:115;;;;;;;;;;-1:-1:-1;3981:14:115;;3850:152;;;2037:25:212;;;2025:2;2010:18;3850:152:115;1891:177:212;1529:178:117;;;;;;;;;;-1:-1:-1;1529:178:117;;;;;:::i;:::-;;:::i;5892:244:115:-;;;;;;;;;;-1:-1:-1;5892:244:115;;;;;:::i;:::-;;:::i;4807:191:110:-;;;;;;;;;;-1:-1:-1;4807:191:110;;;;;:::i;:::-;;:::i;1813:184:117:-;;;;;;;;;;-1:-1:-1;1813:184:117;;;;;:::i;:::-;;:::i;4656:276:112:-;;;;;;;;;;-1:-1:-1;4656:276:112;;;;;:::i;:::-;;:::i;4005:82:188:-;;;;;;;;;;-1:-1:-1;4005:82:188;;4079:1;3174:36:212;;3162:2;3147:18;4005:82:188;3032:184:212;3040:112:116;;;;;;;;;;;;;:::i;5995:682:112:-;;;;;;;;;;-1:-1:-1;5995:682:112;;;;;:::i;:::-;;:::i;4161:214:114:-;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;10196:150:112:-;;;;;;;;;;-1:-1:-1;10196:150:112;;;;;:::i;:::-;;:::i;12486:145::-;;;;;;;;;;-1:-1:-1;12486:145:112;;;;;:::i;:::-;;:::i;4035:171:115:-;;;;;;;;;;-1:-1:-1;4035:171:115;;;;;:::i;:::-;;:::i;2794:154:116:-;;;;;;;;;;-1:-1:-1;2794:154:116;;;;;:::i;:::-;;:::i;5043:903:121:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;8482:211:112:-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6421:32:212;;;6403:51;;6391:2;6376:18;8482:211:112;6257:203:212;4400:93:112;;;;;;;;;;;;;:::i;2032:375:188:-;;;;;;;;;;-1:-1:-1;2032:375:188;;;;;:::i;:::-;;:::i;3780:207:110:-;;;;;;;;;;-1:-1:-1;3780:207:110;;;;;:::i;:::-;;:::i;2954:148:115:-;;;;;;;;;;;;;:::i;9483:368:112:-;;;;;;;;;;;;;:::i;:::-;;;;7568:14:212;7609:15;;;7591:34;;7661:15;;;;7656:2;7641:18;;7634:43;7531:18;9483:368:112;7388:295:212;2398:49:110;;;;;;;;;;-1:-1:-1;2398:49:110;2443:4;2398:49;;4401:178:115;;;;;;;;;;-1:-1:-1;4401:178:115;;;;;:::i;:::-;;:::i;1555:74:188:-;;;;;;;;;;;;1599:30;1555:74;;1819:58:114;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:114;;;;;3368:234:188;;;;;;;;;;-1:-1:-1;3368:234:188;;;;;:::i;:::-;;:::i;9087:338:112:-;;;;;;;;;;;;;:::i;11244:344::-;;;;;;;;;;;;;:::i;8751:278::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;8616:32:212;;;8598:51;;8697:14;8685:27;;;8680:2;8665:18;;8658:55;8571:18;8751:278:112;8426:293:212;2083:672:116;;;;;;;;;;-1:-1:-1;2083:672:116;;;;;:::i;:::-;;:::i;5032:278:112:-;;;;;;;;;;-1:-1:-1;5032:278:112;;;;;:::i;:::-;;:::i;10819:128::-;;;;;;;;;;;;;:::i;4612:195:115:-;;;;;;;;;;-1:-1:-1;4612:195:115;;;;;:::i;:::-;;:::i;1483:66:188:-;;;;;;;;;;;;1523:26;1483:66;;3669:250;3849:4;3876:36;3900:11;3876:23;:36::i;:::-;3869:43;3669:250;-1:-1:-1;;3669:250:188:o;2697:144:115:-;2742:13;2767:22;-1:-1:-1;;;;;;;;;;;2792:18:115;2767:43;;2827:1;:7;;2820:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2697:144;:::o;5114:186::-;5187:4;966:10:118;5241:31:115;966:10:118;5257:7:115;5266:5;5241:8;:31::i;:::-;-1:-1:-1;5289:4:115;;5114:186;-1:-1:-1;;;5114:186:115:o;13102:126:112:-;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;13193:28:112::1;:26;:28::i;:::-;13102:126:::0;:::o;1529:178:117:-;953:29;971:10;953:17;:29::i;:::-;1630:16:::1;1636:2;1640:5;1630;:16::i;:::-;1661:39;::::0;2037:25:212;;;966:10:118;;-1:-1:-1;;;;;1661:39:117;::::1;::::0;::::1;::::0;2025:2:212;2010:18;1661:39:117::1;;;;;;;;1529:178:::0;;:::o;5892:244:115:-;5979:4;966:10:118;6035:37:115;6051:4;966:10:118;6066:5:115;6035:15;:37::i;:::-;6082:26;6092:4;6098:2;6102:5;6082:9;:26::i;:::-;6125:4;6118:11;;;5892:244;;;;;;:::o;4807:191:110:-;4872:7;4967:14;;;-1:-1:-1;;;;;;;;;;;4967:14:110;;;;;:24;;;;4807:191::o;1813:184:117:-;953:29;971:10;953:17;:29::i;:::-;1916:18:::1;1922:4;1928:5;1916;:18::i;:::-;1949:41;::::0;2037:25:212;;;966:10:118;;-1:-1:-1;;;;;1949:41:117;::::1;::::0;::::1;::::0;2025:2:212;2010:18;1949:41:117::1;1891:177:212::0;4656:276:112;4786:4;4782:104;;4835:40;;-1:-1:-1;;;4835:40:112;;;;;;;;;;;4782:104;4895:30;4911:4;4917:7;4895:15;:30::i;:::-;4656:276;;:::o;3040:112:116:-;3099:7;3125:20;:18;:20::i;:::-;3118:27;;3040:112;:::o;5995:682:112:-;-1:-1:-1;;;;;;;;;;;6231:26:112;;:55;;;;;6272:14;:12;:14::i;:::-;-1:-1:-1;;;;;6261:25:112;:7;-1:-1:-1;;;;;6261:25:112;;6231:55;6227:401;;;6303:23;6328:15;6347:21;:19;:21::i;:::-;6302:66;;-1:-1:-1;6302:66:112;-1:-1:-1;;;;;;6386:29:112;;;;;:58;;-1:-1:-1;16952:13:112;;;;6386:58;:91;;;-1:-1:-1;17180:15:112;17169:26;;;;6448:29;6386:91;6382:185;;;6504:48;;-1:-1:-1;;;6504:48:112;;671:14:212;659:27;;6504:48:112;;;641:46:212;614:18;;6504:48:112;;;;;;;;6382:185;-1:-1:-1;;6580:37:112;;-1:-1:-1;;;;6580:37:112;;;6227:401;6637:33;6656:4;6662:7;6637:18;:33::i;:::-;6114:563;5995:682;;:::o;4161:214:114:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;3708:134::-:0;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:114;:::o;10196:150:112:-;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;10303:36:112::1;10330:8;10303:26;:36::i;12486:145::-:0;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;12590:34:112::1;12615:8;12590:24;:34::i;4035:171:115:-:0;4100:7;;-1:-1:-1;;;;;;;;;;;4144:18:115;-1:-1:-1;;;;;4179:20:115;;;:11;:20;;;;;;;;-1:-1:-1;;4179:20:115;;;;;4035:171::o;2794:154:116:-;2896:7;2922:19;2935:5;2922:12;:19::i;5043:903:121:-;5141:13;5168:18;;5141:13;;;5168:18;5141:13;-1:-1:-1;;;;;;;;;;;5647:13:121;;5381:45;;-1:-1:-1;5647:18:121;:43;;;;-1:-1:-1;5669:16:121;;;;:21;5647:43;5639:77;;;;-1:-1:-1;;;5639:77:121;;10274:2:212;5639:77:121;;;10256:21:212;10313:2;10293:18;;;10286:30;-1:-1:-1;;;10332:18:212;;;10325:51;10393:18;;5639:77:121;10072:345:212;5639:77:121;5778:13;:11;:13::i;:::-;5805:16;:14;:16::i;:::-;5913;;;5897:1;5913:16;;;;;;;;;-1:-1:-1;;;5727:212:121;;;-1:-1:-1;5727:212:121;;-1:-1:-1;5835:13:121;;-1:-1:-1;5870:4:121;;-1:-1:-1;5897:1:121;-1:-1:-1;5913:16:121;-1:-1:-1;5727:212:121;-1:-1:-1;;5043:903:121:o;8482:211:112:-;-1:-1:-1;;;;;;;;;;;8664:22:112;-1:-1:-1;;;;;8664:22:112;;8482:211::o;4400:93::-;4446:7;4472:14;:12;:14::i;2032:375:188:-;4158:30:113;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:113;-1:-1:-1;;;4302:15:113;;;4301:16;;4348:14;;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;:16;;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:113;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:113;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:113;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:113;-1:-1:-1;;;5011:22:113;;;4977:67;2190:24:188::1;:22;:24::i;:::-;2224:54;2262:1;2265:12;2224:37;:54::i;:::-;2288:42;1523:26;2314:15;2288:10;:42::i;:::-;;2340:26;2353:4;2359:6;2340:12;:26::i;:::-;2376:24;2395:4;2376:18;:24::i;:::-;5068:14:113::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:113;;;5140:14;;-1:-1:-1;10575:50:212;;5140:14:113;;10563:2:212;10548:18;5140:14:113;;;;;;;5064:101;4092:1079;;;;;2032:375:188;;;;:::o;3780:207:110:-;3857:4;3949:14;;;-1:-1:-1;;;;;;;;;;;3949:14:110;;;;;;;;-1:-1:-1;;;;;3949:31:110;;;;;;;;;;;;;;;3780:207::o;2954:148:115:-;3086:9;3079:16;;3001:13;;-1:-1:-1;;;;;;;;;;;2064:20:115;3079:16;;;:::i;9483:368:112:-;-1:-1:-1;;;;;;;;;;;9706:23:112;9548:15;;-1:-1:-1;;;9706:23:112;;;;-1:-1:-1;;;;;;;;;;;16952:13:112;;;;;9747:57;;-1:-1:-1;17180:15:112;17169:26;;;;9775:29;9747:57;9746:98;;9839:1;9842;9746:98;;;9809:15;;;;-1:-1:-1;;;9809:15:112;;;;9826:8;9746:98;9739:105;;;;;9483:368;;:::o;4401:178:115:-;4470:4;966:10:118;4524:27:115;966:10:118;4541:2:115;4545:5;4524:9;:27::i;3368:234:188:-;3468:23;3476:7;3485:5;3468:7;:23::i;:::-;3464:132;;;3507:78;;-1:-1:-1;;;3507:78:188;;-1:-1:-1;;;;;3507:38:188;;;;;:78;;3546:10;;3558:5;;3573:4;;3580;;;;3507:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3464:132;3368:234;;;;:::o;9087:338:112:-;-1:-1:-1;;;;;;;;;;;9284:23:112;9145:6;;-1:-1:-1;;;;;;;;;;;3245:45:112;-1:-1:-1;;;9284:23:112;;;;16952:13;;;;;9325:56;;-1:-1:-1;17180:15:112;17169:26;;;;9353:28;9324:94;;9403:15;;-1:-1:-1;;;9403:15:112;;;;9324:94;;;9385:15;;;;-1:-1:-1;;;9385:15:112;;;;9324:94;9317:101;;;;9087:338;:::o;11244:344::-;11308:23;11337:21;:19;:21::i;:::-;-1:-1:-1;11307:51:112;-1:-1:-1;966:10:118;-1:-1:-1;;;;;11372:31:112;;;11368:175;;11486:46;;-1:-1:-1;;;11486:46:112;;966:10:118;11486:46:112;;;6403:51:212;6376:18;;11486:46:112;6257:203:212;11368:175:112;11552:29;:27;:29::i;8751:278::-;-1:-1:-1;;;;;;;;;;;8967:22:112;-1:-1:-1;;;;;8967:22:112;;;-1:-1:-1;;;8991:30:112;;;;;;8751:278::o;2083:672:116:-;2304:8;2286:15;:26;2282:97;;;2335:33;;-1:-1:-1;;;2335:33:116;;;;;2037:25:212;;;2010:18;;2335:33:116;1891:177:212;2282:97:116;2389:18;1279:95;2448:5;2455:7;2464:5;2471:16;2481:5;-1:-1:-1;;;;;1954:16:119;1597:7;1954:16;;;1005:21;1954:16;;;;;:18;;;;;;;;;1537:452;2471:16:116;2420:78;;;;;;11590:25:212;;;;-1:-1:-1;;;;;11689:15:212;;;11669:18;;;11662:43;11741:15;;;;11721:18;;;11714:43;11773:18;;;11766:34;11816:19;;;11809:35;11860:19;;;11853:35;;;11562:19;;2420:78:116;;;;;;;;;;;;2410:89;;;;;;2389:110;;2510:12;2525:28;2542:10;2525:16;:28::i;:::-;2510:43;;2564:14;2581:28;2595:4;2601:1;2604;2607;2581:13;:28::i;:::-;2564:45;;2633:5;-1:-1:-1;;;;;2623:15:116;:6;-1:-1:-1;;;;;2623:15:116;;2619:88;;2661:35;;-1:-1:-1;;;2661:35:116;;-1:-1:-1;;;;;12129:15:212;;;2661:35:116;;;12111:34:212;12181:15;;12161:18;;;12154:43;12046:18;;2661:35:116;11899:304:212;2619:88:116;2717:31;2726:5;2733:7;2742:5;2717:8;:31::i;:::-;2272:483;;;2083:672;;;;;;;:::o;5032:278:112:-;5163:4;5159:104;;5212:40;;-1:-1:-1;;;5212:40:112;;;;;;;;;;;5159:104;5272:31;5289:4;5295:7;5272:16;:31::i;10819:128::-;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;10911:29:112::1;:27;:29::i;4612:195:115:-:0;-1:-1:-1;;;;;4771:20:115;;;4692:7;4771:20;;;:13;:20;;;;;;;;:29;;;;;;;;;;;;;4612:195::o;1199:224:117:-;1312:4;-1:-1:-1;;;;;;1335:41:117;;-1:-1:-1;;;1335:41:117;;:81;;;1380:36;1404:11;1380:23;:36::i;9905:128:115:-;9989:37;9998:5;10005:7;10014:5;10021:4;9989:8;:37::i;4196:103:110:-;4262:30;4273:4;966:10:118;4262::110;:30::i;13355:94:112:-;13420:22;13437:1;13440;13420:16;:22::i;:::-;13355:94::o;4612:101:188:-;1599:30;3272:16:110;3283:4;3272:10;:16::i;8637:208:115:-;-1:-1:-1;;;;;8707:21:115;;8703:91;;8751:32;;-1:-1:-1;;;8751:32:115;;8780:1;8751:32;;;6403:51:212;6376:18;;8751:32:115;6257:203:212;8703:91:115;8803:35;8819:1;8823:7;8832:5;8803:7;:35::i;11649:476::-;11748:24;11775:25;11785:5;11792:7;11775:9;:25::i;:::-;11748:52;;-1:-1:-1;;11814:16:115;:36;11810:309;;;11889:5;11870:16;:24;11866:130;;;11921:60;;-1:-1:-1;;;11921:60:115;;-1:-1:-1;;;;;12428:32:212;;11921:60:115;;;12410:51:212;12477:18;;;12470:34;;;12520:18;;;12513:34;;;12383:18;;11921:60:115;12208:345:212;11866:130:115;12037:57;12046:5;12053:7;12081:5;12062:16;:24;12088:5;12037:8;:57::i;6509:300::-;-1:-1:-1;;;;;6592:18:115;;6588:86;;6633:30;;-1:-1:-1;;;6633:30:115;;6660:1;6633:30;;;6403:51:212;6376:18;;6633:30:115;6257:203:212;6588:86:115;-1:-1:-1;;;;;6687:16:115;;6683:86;;6726:32;;-1:-1:-1;;;6726:32:115;;6755:1;6726:32;;;6403:51:212;6376:18;;6726:32:115;6257:203:212;6683:86:115;6778:24;6786:4;6792:2;6796:5;6778:7;:24::i;9163:206::-;-1:-1:-1;;;;;9233:21:115;;9229:89;;9277:30;;-1:-1:-1;;;9277:30:115;;9304:1;9277:30;;;6403:51:212;6376:18;;9277:30:115;6257:203:212;9229:89:115;9327:35;9335:7;9352:1;9356:5;9327:7;:35::i;5294:136:110:-;5368:18;5381:4;5368:12;:18::i;:::-;3272:16;3283:4;3272:10;:16::i;:::-;5398:25:::1;5409:4;5415:7;5398:10;:25::i;3901:109:121:-:0;3954:7;3980:23;:21;:23::i;6396:245:110:-;-1:-1:-1;;;;;6489:34:110;;966:10:118;6489:34:110;6485:102;;6546:30;;-1:-1:-1;;;6546:30:110;;;;;;;;;;;6485:102;6597:37;6609:4;6615:18;6597:11;:37::i;4578:312:114:-;4658:4;-1:-1:-1;;;;;4667:6:114;4650:23;;;:120;;;4764:6;-1:-1:-1;;;;;4728:42:114;:32;-1:-1:-1;;;;;;;;;;;1519:53:137;-1:-1:-1;;;;;1519:53:137;;1441:138;4728:32:114;-1:-1:-1;;;;;4728:42:114;;;4650:120;4633:251;;;4844:29;;-1:-1:-1;;;4844:29:114;;;;;;;;;;;4222:103:188;1523:26;3272:16:110;3283:4;3272:10;:16::i;6032:538:114:-;6149:17;-1:-1:-1;;;;;6131:50:114;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6131:52:114;;;;;;;;-1:-1:-1;;6131:52:114;;;;;;;;;;;;:::i;:::-;;;6127:437;;6493:60;;-1:-1:-1;;;6493:60:114;;-1:-1:-1;;;;;6421:32:212;;6493:60:114;;;6403:51:212;6376:18;;6493:60:114;6257:203:212;6127:437:114;-1:-1:-1;;;;;;;;;;;6225:40:114;;6221:120;;6292:34;;-1:-1:-1;;;6292:34:114;;;;;2037:25:212;;;2010:18;;6292:34:114;1891:177:212;6221:120:114;6354:54;6384:17;6403:4;6354:29;:54::i;5007:213::-;5081:4;-1:-1:-1;;;;;5090:6:114;5073:23;;5069:145;;5174:29;;-1:-1:-1;;;5174:29:114;;;;;;;;;;;10473:288:112;10554:18;10612:19;:17;:19::i;:::-;10575:34;10593:15;10575:17;:34::i;:::-;:56;;;;:::i;:::-;10554:77;;10641:46;10665:8;10675:11;10641:23;:46::i;:::-;10702:52;;671:14:212;659:27;;641:46;;-1:-1:-1;;;;;10702:52:112;;;;;629:2:212;614:18;10702:52:112;;;;;;;10544:217;10473:288;:::o;12756:::-;12834:18;12892:26;12909:8;12892:16;:26::i;:::-;12855:34;12873:15;12855:17;:34::i;:::-;:63;;;;:::i;:::-;12834:84;;12928:39;12945:8;12955:11;12928:16;:39::i;:::-;12982:55;;;7568:14:212;7609:15;;;7591:34;;7661:15;;7656:2;7641:18;;7634:43;12982:55:112;;7531:18:212;12982:55:112;;;;;;;12824:220;12756:288;:::o;1259:164:119:-;1319:7;;1005:21;1364:19;886:156;6170:155:121;6311:7;6304:14;;6224:13;;-1:-1:-1;;;;;;;;;;;2725:21:121;6304:14;;;:::i;6552:161::-;6609:13;6634:23;-1:-1:-1;;;;;;;;;;;6660:19:121;2606:156;9071:205:113;9129:30;;3147:66;9186:27;8819:122;2970:67:114;6929:20:113;:18;:20::i;3416:222:112:-;6929:20:113;:18;:20::i;:::-;3549:82:112::1;3597:12;3611:19;3549:47;:82::i;7105:475::-:0;7191:4;-1:-1:-1;;;;;;;;;;;7314:4:112;7310:216;;7386:1;7360:14;:12;:14::i;:::-;-1:-1:-1;;;;;7360:28:112;;7356:114;;7415:40;;-1:-1:-1;;;7415:40:112;;;;;;;;;;;7356:114;7483:22;;;:32;;-1:-1:-1;;;;;;7483:32:112;-1:-1:-1;;;;;7483:32:112;;;;;7310:216;7542:31;7559:4;7565:7;7542:16;:31::i;:::-;7535:38;7105:475;-1:-1:-1;;;;7105:475:112:o;2263:147:115:-;6929:20:113;:18;:20::i;:::-;2365:38:115::1;2388:5;2395:7;2365:22;:38::i;1832:125:116:-:0;6929:20:113;:18;:20::i;:::-;1916:34:116::1;1940:4;1916:34;;;;;;;;;;;;;-1:-1:-1::0;;;1916:34:116::1;;::::0;:23:::1;:34::i;11716:581:112:-:0;-1:-1:-1;;;;;;;;;;;11782:47:112;;11923:21;:19;:21::i;:::-;11885:59;;;;11959:24;11974:8;16952:13;;;;;16866:106;11959:24;11958:25;:58;;;-1:-1:-1;17180:15:112;17169:26;;;;11987:29;11958:58;11954:144;;;12039:48;;-1:-1:-1;;;12039:48:112;;671:14:212;659:27;;12039:48:112;;;641:46:212;614:18;;12039:48:112;497:196:212;11954:144:112;12107:47;2443:4:110;12139:14:112;:12;:14::i;:::-;12107:11;:47::i;:::-;-1:-1:-1;12164:40:112;2443:4:110;12195:8:112;12164:10;:40::i;:::-;-1:-1:-1;;12214:29:112;;-1:-1:-1;;;;;;12253:37:112;;;;-1:-1:-1;11716:581:112:o;4832:176:121:-;4909:7;4935:66;4968:20;:18;:20::i;:::-;4990:10;4049:4:157;4043:11;-1:-1:-1;;;4067:23:157;;4119:4;4110:14;;4103:39;;;;4171:4;4162:14;;4155:34;4227:4;4212:20;;;3874:374;6887:260:156;6972:7;6992:17;7011:18;7031:16;7051:25;7062:4;7068:1;7071;7074;7051:10;:25::i;:::-;6991:85;;;;;;7086:28;7098:5;7105:8;7086:11;:28::i;:::-;-1:-1:-1;7131:9:156;;6887:260;-1:-1:-1;;;;;;6887:260:156:o;5710:138:110:-;5785:18;5798:4;5785:12;:18::i;:::-;3272:16;3283:4;3272:10;:16::i;:::-;5815:26:::1;5827:4;5833:7;5815:11;:26::i;11075:111:112:-:0;11141:38;11173:1;11177;11141:23;:38::i;4146:219::-;4231:4;-1:-1:-1;;;;;;4254:64:112;;-1:-1:-1;;;4254:64:112;;:104;;;4322:36;4346:11;4322:23;:36::i;10880:487:115:-;-1:-1:-1;;;;;;;;;;;;;;;;11045:19:115;;11041:89;;11087:32;;-1:-1:-1;;;11087:32:115;;11116:1;11087:32;;;6403:51:212;6376:18;;11087:32:115;6257:203:212;11041:89:115;-1:-1:-1;;;;;11143:21:115;;11139:90;;11187:31;;-1:-1:-1;;;11187:31:115;;11215:1;11187:31;;;6403:51:212;6376:18;;11187:31:115;6257:203:212;11139:90:115;-1:-1:-1;;;;;11238:20:115;;;;;;;:13;;;:20;;;;;;;;:29;;;;;;;;;:37;;;11285:76;;;;11335:7;-1:-1:-1;;;;;11319:31:115;11328:5;-1:-1:-1;;;;;11319:31:115;;11344:5;11319:31;;;;2037:25:212;;2025:2;2010:18;;1891:177;11319:31:115;;;;;;;;11285:76;10978:389;10880:487;;;;:::o;4429:197:110:-;4517:22;4525:4;4531:7;4517;:22::i;:::-;4512:108;;4562:47;;-1:-1:-1;;;4562:47:110;;-1:-1:-1;;;;;13252:32:212;;4562:47:110;;;13234:51:212;13301:18;;;13294:34;;;13207:18;;4562:47:110;13060:274:212;16023:698:112;-1:-1:-1;;;;;;;;;;;16228:23:112;-1:-1:-1;;;;;;;;;;;3245:45:112;-1:-1:-1;;;16228:23:112;;;;16952:13;;16262:369;;17180:15;17169:26;;;;16309:312;;;16429:15;;;;16411:33;;-1:-1:-1;;;;;16411:33:112;-1:-1:-1;;;16429:15:112;;;;;-1:-1:-1;;;16411:33:112;;;;16309:312;;;16573:33;;;;;;;16309:312;-1:-1:-1;16641:15:112;;:26;;-1:-1:-1;;;;;16677:37:112;-1:-1:-1;;;16641:26:112;;;;;-1:-1:-1;;;;;16677:37:112;;-1:-1:-1;;;16677:37:112;;;;;;;;;;;;;;16023:698::o;7124:1170:115:-;-1:-1:-1;;;;;;;;;;;;;;;;7266:18:115;;7262:546;;7420:5;7402:1;:14;;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;7262:546:115;;-1:-1:-1;7262:546:115;;-1:-1:-1;;;;;7478:17:115;;7456:19;7478:17;;;;;;;;;;;7513:19;;;7509:115;;;7559:50;;-1:-1:-1;;;7559:50:115;;-1:-1:-1;;;;;12428:32:212;;7559:50:115;;;12410:51:212;12477:18;;;12470:34;;;12520:18;;;12513:34;;;12383:18;;7559:50:115;12208:345:212;7509:115:115;-1:-1:-1;;;;;7744:17:115;;:11;:17;;;;;;;;;;7764:19;;;;7744:39;;7262:546;-1:-1:-1;;;;;7822:16:115;;7818:429;;7985:14;;;:23;;;;;;;7818:429;;;-1:-1:-1;;;;;8198:15:115;;:11;:15;;;;;;;;;;:24;;;;;;7818:429;8277:2;-1:-1:-1;;;;;8262:25:115;8271:4;-1:-1:-1;;;;;8262:25:115;;8281:5;8262:25;;;;2037::212;;2025:2;2010:18;;1891:177;8262:25:115;;;;;;;;7199:1095;7124:1170;;;:::o;4016:191:121:-;4071:7;1959:95;4129:17;:15;:17::i;:::-;4148:20;:18;:20::i;:::-;4107:92;;;;;;13728:25:212;;;;13769:18;;13762:34;;;;13812:18;;;13805:34;4170:13:121;13855:18:212;;;13848:34;4193:4:121;13898:19:212;;;13891:61;13700:19;;4107:92:121;;;;;;;;;;;;4097:103;;;;;;4090:110;;4016:191;:::o;7631:376:112:-;7718:4;-1:-1:-1;;;;;;;;;;;7841:26:112;;:55;;;;;7882:14;:12;:14::i;:::-;-1:-1:-1;;;;;7871:25:112;:7;-1:-1:-1;;;;;7871:25:112;;7841:55;7837:115;;;7919:22;;;7912:29;;-1:-1:-1;;;;;;7912:29:112;;;7837:115;7968:32;7986:4;7992:7;7968:17;:32::i;2264:344:137:-;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:137;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;14296:213:161:-;14352:6;14382:16;14374:24;;14370:103;;;14421:41;;-1:-1:-1;;;14421:41:161;;14452:2;14421:41;;;14144:36:212;14196:18;;;14189:34;;;14117:18;;14421:41:161;13963:266:212;14370:103:161;-1:-1:-1;14496:5:161;14296:213::o;15237:632:112:-;-1:-1:-1;;;;;;;;;;;15326:47:112;15454:21;:19;:21::i;:::-;15486:33;;15529:44;;;-1:-1:-1;;;15529:44:112;-1:-1:-1;;;;;;15529:44:112;;;-1:-1:-1;;;;;15486:33:112;;15529:44;;;;15429:46;-1:-1:-1;15685:27:112;;-1:-1:-1;15429:46:112;16952:13;;;;;16866:106;15685:27;15681:182;;;15822:30;;;;;;;15316:553;;15237:632;;:::o;13796:1249::-;13870:6;13888:19;13910;:17;:19::i;:::-;13888:41;;14859:12;14848:23;;:8;:23;;;:190;;15015:23;15030:8;15015:12;:23;:::i;:::-;14848:190;;;14897:51;;;;10004:6;14897:8;:51::i;7082:141:113:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:113;;;;;;;;;;;3644:468:112;6929:20:113;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;3894:33:112;::::1;3890:115;;3950:44;::::0;-1:-1:-1;;;3950:44:112;;3991:1:::1;3950:44;::::0;::::1;6403:51:212::0;6376:18;;3950:44:112::1;6257:203:212::0;3890:115:112::1;4014:30:::0;;-1:-1:-1;;;;;4014:30:112::1;-1:-1:-1::0;;;4014:30:112::1;::::0;::::1;;;::::0;;4054:51:::1;-1:-1:-1::0;4085:19:112;4054:10:::1;:51::i;7318:387:110:-:0;7395:4;-1:-1:-1;;;;;;;;;;;7485:22:110;7493:4;7499:7;7485;:22::i;:::-;7480:219;;7523:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7523:31:110;;;;;;;;;:38;;-1:-1:-1;;7523:38:110;7557:4;7523:38;;;7607:12;966:10:118;;887:96;7607:12:110;-1:-1:-1;;;;;7580:40:110;7598:7;-1:-1:-1;;;;;7580:40:110;7592:4;7580:40;;;;;;;;;;7641:4;7634:11;;;;;7480:219;7683:5;7676:12;;;;;7480:219;7401:304;7318:387;;;;:::o;2416:216:115:-;6929:20:113;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;2581:7:115;:15:::1;2591:5:::0;2581:7;:15:::1;:::i;:::-;-1:-1:-1::0;2606:9:115::1;::::0;::::1;:19;2618:7:::0;2606:9;:19:::1;:::i;3485:330:121:-:0;6929:20:113;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;3652:7:121;:14:::1;3662:4:::0;3652:7;:14:::1;:::i;:::-;-1:-1:-1::0;3676:10:121::1;::::0;::::1;:20;3689:7:::0;3676:10;:20:::1;:::i;:::-;-1:-1:-1::0;3777:1:121::1;3761:17:::0;;;3788:16:::1;::::0;;::::1;:20:::0;-1:-1:-1;;3485:330:121:o;5203:1551:156:-;5329:17;;;6283:66;6270:79;;6266:164;;;-1:-1:-1;6381:1:156;;-1:-1:-1;6385:30:156;;-1:-1:-1;6417:1:156;6365:54;;6266:164;6541:24;;;6524:14;6541:24;;;;;;;;;16815:25:212;;;16888:4;16876:17;;16856:18;;;16849:45;;;;16910:18;;;16903:34;;;16953:18;;;16946:34;;;6541:24:156;;16787:19:212;;6541:24:156;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6541:24:156;;-1:-1:-1;;6541:24:156;;;-1:-1:-1;;;;;;;6579:20:156;;6575:113;;-1:-1:-1;6631:1:156;;-1:-1:-1;6635:29:156;;-1:-1:-1;6631:1:156;;-1:-1:-1;6615:62:156;;6575:113;6706:6;-1:-1:-1;6714:20:156;;-1:-1:-1;6714:20:156;;-1:-1:-1;5203:1551:156;;;;;;;;;:::o;7280:532::-;7375:20;7366:5;:29;;;;;;;;:::i;:::-;;7362:444;;7280:532;;:::o;7362:444::-;7471:29;7462:5;:38;;;;;;;;:::i;:::-;;7458:348;;7523:23;;-1:-1:-1;;;7523:23:156;;;;;;;;;;;7458:348;7576:35;7567:5;:44;;;;;;;;:::i;:::-;;7563:243;;7634:46;;-1:-1:-1;;;7634:46:156;;;;;2037:25:212;;;2010:18;;7634:46:156;1891:177:212;7563:243:156;7710:30;7701:5;:39;;;;;;;;:::i;:::-;;7697:109;;7763:32;;-1:-1:-1;;;7763:32:156;;;;;2037:25:212;;;2010:18;;7763:32:156;1891:177:212;3491:202:110;3576:4;-1:-1:-1;;;;;;3599:47:110;;-1:-1:-1;;;3599:47:110;;:87;;-1:-1:-1;;;;;;;;;;1101:40:122;;;3650:36:110;1002:146:122;6928:687:121;6978:7;-1:-1:-1;;;;;;;;;;;6978:7:121;7073:13;:11;:13::i;:::-;7100:18;;7052:34;;-1:-1:-1;7100:22:121;7096:513;;7145:22;;;;;;;;6928:687;-1:-1:-1;;6928:687:121:o;7096:513::-;7442:13;;7473:15;;7469:130;;7515:10;6928:687;-1:-1:-1;;;6928:687:121:o;7469:130::-;7571:13;7564:20;;;;;6928:687;:::o;7836:723::-;7889:7;-1:-1:-1;;;;;;;;;;;7889:7:121;7987:16;:14;:16::i;:::-;8017:21;;7963:40;;-1:-1:-1;8017:25:121;8013:540;;8065:25;;;;;;;;7836:723;-1:-1:-1;;7836:723:121:o;8013:540::-;8377:16;;;;8411:18;;8407:136;;8456:13;7836:723;-1:-1:-1;;;7836:723:121:o;7942:388:110:-;8020:4;-1:-1:-1;;;;;;;;;;;8109:22:110;8117:4;8123:7;8109;:22::i;:::-;8105:219;;;8181:5;8147:14;;;;;;;;;;;-1:-1:-1;;;;;8147:31:110;;;;;;;;;;:39;;-1:-1:-1;;8147:39:110;;;8205:40;966:10:118;;8147:14:110;;8205:40;;8181:5;8205:40;8266:4;8259:11;;;;;1671:281:137;1748:17;-1:-1:-1;;;;;1748:29:137;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:137;;-1:-1:-1;;;;;6421:32:212;;1805:47:137;;;6403:51:212;6376:18;;1805:47:137;6257:203:212;1744:119:137;-1:-1:-1;;;;;;;;;;;1872:73:137;;-1:-1:-1;;;;;;1872:73:137;-1:-1:-1;;;;;1872:73:137;;;;;;;;;;1671:281::o;3916:253:148:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:148;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;:::-;4100:62;3916:253;-1:-1:-1;;;;;3916:253:148:o;6113:122:137:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:137;;;;;;;;;;;5617:111:160;5675:7;5312:5;;;5709;;;5311:36;5306:42;;5701:20;5071:294;8485:120:113;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:113;;;;;;-1:-1:-1;8485:120:113:o;4437:582:148:-;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;4605:408::-;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:148;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:148;;-1:-1:-1;;;;;6421:32:212;;4933:24:148;;;6403:51:212;6376:18;;4933:24:148;6257:203:212;4853:119:148;-1:-1:-1;4992:10:148;4985:17;;5559:434;5690:17;;:21;5686:301;;5894:10;5888:17;5881:4;5869:10;5865:21;5858:48;5686:301;5957:19;;-1:-1:-1;;;5957:19:148;;;;;;;;;;;14:286:212;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:212;;209:43;;199:71;;266:1;263;256:12;698:250;783:1;793:113;807:6;804:1;801:13;793:113;;;883:11;;;877:18;864:11;;;857:39;829:2;822:10;793:113;;;-1:-1:-1;;940:1:212;922:16;;915:27;698:250::o;953:271::-;995:3;1033:5;1027:12;1060:6;1055:3;1048:19;1076:76;1145:6;1138:4;1133:3;1129:14;1122:4;1115:5;1111:16;1076:76;:::i;:::-;1206:2;1185:15;-1:-1:-1;;1181:29:212;1172:39;;;;1213:4;1168:50;;953:271;-1:-1:-1;;953:271:212:o;1229:220::-;1378:2;1367:9;1360:21;1341:4;1398:45;1439:2;1428:9;1424:18;1416:6;1398:45;:::i;1454:173::-;1522:20;;-1:-1:-1;;;;;1571:31:212;;1561:42;;1551:70;;1617:1;1614;1607:12;1551:70;1454:173;;;:::o;1632:254::-;1700:6;1708;1761:2;1749:9;1740:7;1736:23;1732:32;1729:52;;;1777:1;1774;1767:12;1729:52;1800:29;1819:9;1800:29;:::i;:::-;1790:39;1876:2;1861:18;;;;1848:32;;-1:-1:-1;;;1632:254:212:o;2073:328::-;2150:6;2158;2166;2219:2;2207:9;2198:7;2194:23;2190:32;2187:52;;;2235:1;2232;2225:12;2187:52;2258:29;2277:9;2258:29;:::i;:::-;2248:39;;2306:38;2340:2;2329:9;2325:18;2306:38;:::i;:::-;2296:48;;2391:2;2380:9;2376:18;2363:32;2353:42;;2073:328;;;;;:::o;2406:180::-;2465:6;2518:2;2506:9;2497:7;2493:23;2489:32;2486:52;;;2534:1;2531;2524:12;2486:52;-1:-1:-1;2557:23:212;;2406:180;-1:-1:-1;2406:180:212:o;2773:254::-;2841:6;2849;2902:2;2890:9;2881:7;2877:23;2873:32;2870:52;;;2918:1;2915;2908:12;2870:52;2954:9;2941:23;2931:33;;2983:38;3017:2;3006:9;3002:18;2983:38;:::i;:::-;2973:48;;2773:254;;;;;:::o;3221:127::-;3282:10;3277:3;3273:20;3270:1;3263:31;3313:4;3310:1;3303:15;3337:4;3334:1;3327:15;3353:631;3417:5;3447:18;3488:2;3480:6;3477:14;3474:40;;;3494:18;;:::i;:::-;3569:2;3563:9;3537:2;3623:15;;-1:-1:-1;;3619:24:212;;;3645:2;3615:33;3611:42;3599:55;;;3669:18;;;3689:22;;;3666:46;3663:72;;;3715:18;;:::i;:::-;3755:10;3751:2;3744:22;3784:6;3775:15;;3814:6;3806;3799:22;3854:3;3845:6;3840:3;3836:16;3833:25;3830:45;;;3871:1;3868;3861:12;3830:45;3921:6;3916:3;3909:4;3901:6;3897:17;3884:44;3976:1;3969:4;3960:6;3952;3948:19;3944:30;3937:41;;;;3353:631;;;;;:::o;3989:523::-;4066:6;4074;4127:2;4115:9;4106:7;4102:23;4098:32;4095:52;;;4143:1;4140;4133:12;4095:52;4166:29;4185:9;4166:29;:::i;:::-;4156:39;;4246:2;4235:9;4231:18;4218:32;4273:18;4265:6;4262:30;4259:50;;;4305:1;4302;4295:12;4259:50;4328:22;;4381:4;4373:13;;4369:27;-1:-1:-1;4359:55:212;;4410:1;4407;4400:12;4359:55;4433:73;4498:7;4493:2;4480:16;4475:2;4471;4467:11;4433:73;:::i;:::-;4423:83;;;3989:523;;;;;:::o;4517:186::-;4576:6;4629:2;4617:9;4608:7;4604:23;4600:32;4597:52;;;4645:1;4642;4635:12;4597:52;4668:29;4687:9;4668:29;:::i;4708:280::-;4766:6;4819:2;4807:9;4798:7;4794:23;4790:32;4787:52;;;4835:1;4832;4825:12;4787:52;4874:9;4861:23;4924:14;4917:5;4913:26;4906:5;4903:37;4893:65;;4954:1;4951;4944:12;4993:1259;5399:3;5394;5390:13;5382:6;5378:26;5367:9;5360:45;5341:4;5424:2;5462:3;5457:2;5446:9;5442:18;5435:31;5489:46;5530:3;5519:9;5515:19;5507:6;5489:46;:::i;:::-;5583:9;5575:6;5571:22;5566:2;5555:9;5551:18;5544:50;5617:33;5643:6;5635;5617:33;:::i;:::-;5681:2;5666:18;;5659:34;;;-1:-1:-1;;;;;5730:32:212;;5724:3;5709:19;;5702:61;5750:3;5779:19;;5772:35;;;5844:22;;;5838:3;5823:19;;5816:51;5916:13;;5938:22;;;5988:2;6014:15;;;;-1:-1:-1;5976:15:212;;;;-1:-1:-1;6057:169:212;6071:6;6068:1;6065:13;6057:169;;;6132:13;;6120:26;;6201:15;;;;6166:12;;;;6093:1;6086:9;6057:169;;;-1:-1:-1;6243:3:212;;4993:1259;-1:-1:-1;;;;;;;;;;;;4993:1259:212:o;6465:221::-;6508:5;6561:3;6554:4;6546:6;6542:17;6538:27;6528:55;;6579:1;6576;6569:12;6528:55;6601:79;6676:3;6667:6;6654:20;6647:4;6639:6;6635:17;6601:79;:::i;6691:692::-;6797:6;6805;6813;6821;6874:3;6862:9;6853:7;6849:23;6845:33;6842:53;;;6891:1;6888;6881:12;6842:53;6931:9;6918:23;6960:18;7001:2;6993:6;6990:14;6987:34;;;7017:1;7014;7007:12;6987:34;7040:50;7082:7;7073:6;7062:9;7058:22;7040:50;:::i;:::-;7030:60;;7143:2;7132:9;7128:18;7115:32;7099:48;;7172:2;7162:8;7159:16;7156:36;;;7188:1;7185;7178:12;7156:36;;7211:52;7255:7;7244:8;7233:9;7229:24;7211:52;:::i;:::-;7201:62;;;7282:38;7316:2;7305:9;7301:18;7282:38;:::i;:::-;7272:48;;7339:38;7373:2;7362:9;7358:18;7339:38;:::i;:::-;7329:48;;6691:692;;;;;;;:::o;7688:733::-;7776:6;7784;7792;7800;7853:2;7841:9;7832:7;7828:23;7824:32;7821:52;;;7869:1;7866;7859:12;7821:52;7892:29;7911:9;7892:29;:::i;:::-;7882:39;;7968:2;7957:9;7953:18;7940:32;7930:42;;8023:2;8012:9;8008:18;7995:32;8046:18;8087:2;8079:6;8076:14;8073:34;;;8103:1;8100;8093:12;8073:34;8141:6;8130:9;8126:22;8116:32;;8186:7;8179:4;8175:2;8171:13;8167:27;8157:55;;8208:1;8205;8198:12;8157:55;8248:2;8235:16;8274:2;8266:6;8263:14;8260:34;;;8290:1;8287;8280:12;8260:34;8335:7;8330:2;8321:6;8317:2;8313:15;8309:24;8306:37;8303:57;;;8356:1;8353;8346:12;8303:57;7688:733;;;;-1:-1:-1;;8387:2:212;8379:11;;-1:-1:-1;;;7688:733:212:o;8724:693::-;8835:6;8843;8851;8859;8867;8875;8883;8936:3;8924:9;8915:7;8911:23;8907:33;8904:53;;;8953:1;8950;8943:12;8904:53;8976:29;8995:9;8976:29;:::i;:::-;8966:39;;9024:38;9058:2;9047:9;9043:18;9024:38;:::i;:::-;9014:48;;9109:2;9098:9;9094:18;9081:32;9071:42;;9160:2;9149:9;9145:18;9132:32;9122:42;;9214:3;9203:9;9199:19;9186:33;9259:4;9252:5;9248:16;9241:5;9238:27;9228:55;;9279:1;9276;9269:12;9228:55;8724:693;;;;-1:-1:-1;8724:693:212;;;;9302:5;9354:3;9339:19;;9326:33;;-1:-1:-1;9406:3:212;9391:19;;;9378:33;;8724:693;-1:-1:-1;;8724:693:212:o;9422:260::-;9490:6;9498;9551:2;9539:9;9530:7;9526:23;9522:32;9519:52;;;9567:1;9564;9557:12;9519:52;9590:29;9609:9;9590:29;:::i;:::-;9580:39;;9638:38;9672:2;9661:9;9657:18;9638:38;:::i;9687:380::-;9766:1;9762:12;;;;9809;;;9830:61;;9884:4;9876:6;9872:17;9862:27;;9830:61;9937:2;9929:6;9926:14;9906:18;9903:38;9900:161;;9983:10;9978:3;9974:20;9971:1;9964:31;10018:4;10015:1;10008:15;10046:4;10043:1;10036:15;9900:161;;9687:380;;;:::o;10636:662::-;-1:-1:-1;;;;;10915:15:212;;;10897:34;;10962:2;10947:18;;10940:34;;;11010:15;;11005:2;10990:18;;10983:43;11062:3;11057:2;11042:18;;11035:31;;;11082:19;;11075:35;;;10840:4;11103:6;11153;10877:3;11132:19;;11119:49;11218:1;11212:3;11203:6;11192:9;11188:22;11184:32;11177:43;11288:3;11281:2;11277:7;11272:2;11264:6;11260:15;11256:29;11245:9;11241:45;11237:55;11229:63;;10636:662;;;;;;;;:::o;12558:184::-;12628:6;12681:2;12669:9;12660:7;12656:23;12652:32;12649:52;;;12697:1;12694;12687:12;12649:52;-1:-1:-1;12720:16:212;;12558:184;-1:-1:-1;12558:184:212:o;12747:127::-;12808:10;12803:3;12799:20;12796:1;12789:31;12839:4;12836:1;12829:15;12863:4;12860:1;12853:15;12879:176;12946:14;12980:10;;;12992;;;12976:27;;13015:11;;;13012:37;;;13029:18;;:::i;13339:125::-;13404:9;;;13425:10;;;13422:36;;;13438:18;;:::i;14234:179::-;14302:14;14349:10;;;14337;;;14333:27;;14372:12;;;14369:38;;;14387:18;;:::i;14544:518::-;14646:2;14641:3;14638:11;14635:421;;;14682:5;14679:1;14672:16;14726:4;14723:1;14713:18;14796:2;14784:10;14780:19;14777:1;14773:27;14767:4;14763:38;14832:4;14820:10;14817:20;14814:47;;;-1:-1:-1;14855:4:212;14814:47;14910:2;14905:3;14901:12;14898:1;14894:20;14888:4;14884:31;14874:41;;14965:81;14983:2;14976:5;14973:13;14965:81;;;15042:1;15028:16;;15009:1;14998:13;14965:81;;15238:1345;15364:3;15358:10;15391:18;15383:6;15380:30;15377:56;;;15413:18;;:::i;:::-;15442:97;15532:6;15492:38;15524:4;15518:11;15492:38;:::i;:::-;15486:4;15442:97;:::i;:::-;15594:4;;15651:2;15640:14;;15668:1;15663:663;;;;16370:1;16387:6;16384:89;;;-1:-1:-1;16439:19:212;;;16433:26;16384:89;-1:-1:-1;;15195:1:212;15191:11;;;15187:24;15183:29;15173:40;15219:1;15215:11;;;15170:57;16486:81;;15633:944;;15663:663;14491:1;14484:14;;;14528:4;14515:18;;-1:-1:-1;;15699:20:212;;;15817:236;15831:7;15828:1;15825:14;15817:236;;;15920:19;;;15914:26;15899:42;;16012:27;;;;15980:1;15968:14;;;;15847:19;;15817:236;;;15821:3;16081:6;16072:7;16069:19;16066:201;;;16142:19;;;16136:26;-1:-1:-1;;16225:1:212;16221:14;;;16237:3;16217:24;16213:37;16209:42;16194:58;16179:74;;16066:201;;;16313:1;16304:6;16301:1;16297:14;16293:22;16287:4;16280:36;15633:944;;;;;15238:1345;;:::o;16991:127::-;17052:10;17047:3;17043:20;17040:1;17033:31;17083:4;17080:1;17073:15;17107:4;17104:1;17097:15;17123:287;17252:3;17290:6;17284:13;17306:66;17365:6;17360:3;17353:4;17345:6;17341:17;17306:66;:::i;:::-;17388:16;;;;;17123:287;-1:-1:-1;;17123:287:212:o","linkReferences":{},"immutableReferences":{"68763":[{"start":4842,"length":32},{"start":4883,"length":32},{"start":5236,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DOMAIN_SEPARATOR()":"3644e515","TOKEN_BRIDGE_ROLE()":"a94ea30c","UPGRADER_ROLE()":"f72c0d8b","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","acceptDefaultAdminTransfer()":"cefc1429","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","approveAndCall(address,uint256,bytes)":"cae9ca51","balanceOf(address)":"70a08231","beginDefaultAdminTransfer(address)":"634e93da","cancelDefaultAdminTransfer()":"d602b9fd","changeDefaultAdminDelay(uint48)":"649a5ec7","crosschainBurn(address,uint256)":"2b8c49e3","crosschainMint(address,uint256)":"18bf5077","decimals()":"313ce567","defaultAdmin()":"84ef8ffc","defaultAdminDelay()":"cc8463c8","defaultAdminDelayIncreaseWait()":"022d63fb","eip712Domain()":"84b0196e","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(string,string,address,address)":"8f15b414","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","pendingDefaultAdmin()":"cf6eefb7","pendingDefaultAdminDelay()":"a1eda53c","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","proxiableUUID()":"52d1902d","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rollbackDefaultAdminDelay()":"0aa6220b","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"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\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"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\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"CrosschainBurn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"CrosschainMint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_BRIDGE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"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\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"crosschainBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"crosschainMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"initialAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialUpgrader\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"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.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"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.\"},\"CrosschainBurn(address,uint256,address)\":{\"params\":{\"amount\":\"Amount of tokens burned.\",\"from\":\"Address of the account tokens are being burned from.\",\"sender\":\"Address of the caller (msg.sender) who invoked crosschainBurn.\"}},\"CrosschainMint(address,uint256,address)\":{\"params\":{\"amount\":\"Amount of tokens minted.\",\"sender\":\"Address of the caller (msg.sender) who invoked crosschainMint.\",\"to\":\"Address of the account tokens are being minted for.\"}},\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"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.\"},\"approveAndCall(address,uint256,bytes)\":{\"details\":\"The ERC1363 is not used because it is not compatible with the original RLC token contract: - The RLC uses `receiveApproval` while the ERC1363 uses `onTransferReceived`. - The PoCo exposes `receiveApproval` in its interface. - Openzeppelin's implementation of ERC1363 uses Solidity custom errors. This could be changed in the future, but for now, we keep the original interface to insure compatibility with existing Dapps and SDKs.\",\"params\":{\"data\":\"additional data to pass to the spender\",\"spender\":\"address of the spender\",\"value\":\"amount of tokens to approve\"}},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"crosschainBurn(address,uint256)\":{\"details\":\"See {IERC7802-crosschainBurn}. Emits a {IERC7802-CrosschainBurn} event.\"},\"crosschainMint(address,uint256)\":{\"details\":\"See {IERC7802-crosschainMint}. Emits a {IERC7802-CrosschainMint} event.\"},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(string,string,address,address)\":{\"params\":{\"initialAdmin\":\"address of the admin wallet\",\"initialUpgrader\":\"address of the upgrader wallet\",\"name\":\"name of the token\",\"symbol\":\"symbol of the token\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"owner()\":{\"details\":\"Gets the address of the owner.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"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`.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"events\":{\"CrosschainBurn(address,uint256,address)\":{\"notice\":\"Emitted when a crosschain transfer burns tokens.\"},\"CrosschainMint(address,uint256,address)\":{\"notice\":\"Emitted when a crosschain transfer mints tokens.\"}},\"kind\":\"user\",\"methods\":{\"approveAndCall(address,uint256,bytes)\":{\"notice\":\"Approves the spender to spend the specified amount of tokens and calls the `receiveApproval` function on the spender contract. Original code can be found in the RLC token project: https://github.com/iExecBlockchainComputing/rlc-token/blob/master/contracts/RLC.sol#L84-L89\"},\"decimals()\":{\"notice\":\"Uses the same decimals number as the original RLC token.\"},\"initialize(string,string,address,address)\":{\"notice\":\"Initializes the contract with the given parameters.\"}},\"notice\":\"This contract is an upgradeable (UUPS) ERC20 token with cross-chain capabilities. It implements the ERC-7802 (https://eips.ethereum.org/EIPS/eip-7802) standard for cross-chain token transfers. It allows minting and burning of tokens as requested by permitted bridge contracts. To whitelist a token bridge contract, the admin (with `DEFAULT_ADMIN_ROLE`) sends a transaction to grant the role `TOKEN_BRIDGE_ROLE` to the bridge contract address using `grantRole` function.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/RLCCrosschainToken.sol\":\"RLCCrosschainToken\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@createx/contracts/=lib/createx/src/\",\":@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/\",\":@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/\",\":@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/\",\":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/\",\":@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/\",\":@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/\",\":@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":createx/=lib/createx/src/\",\":devtools/=lib/devtools/packages/toolbox-foundry/src/\",\":ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":layerzero-v1/=lib/layerzero-v1/contracts/\",\":layerzero-v2/=lib/layerzero-v2/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/\",\":rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/\",\":solady/=lib/createx/lib/solady/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xca0f8798297e39106cad374524780916b7ea20033641df3a9102aae253099aeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77d5c809873db24e02fc288ad506087853911f5daf0fb27e499333b4e75e3af1\",\"dweb:/ipfs/QmWNqoEj7NH3neSNNfoHwXfynrGqJu5JsvMfHe8fZB7isR\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol\":{\"keccak256\":\"0x583c53a3869e33f3a315d4160e45f29b339411af57e7648d27a9669cfd231e71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9102a3358b3b6c79fdabc6ab8eb7357bc959a25d62d47102e3886e9dc5222859\",\"dweb:/ipfs/QmUbJ22o7QHbWK7fyywxssPghJ8qa6MSCX8tmySusPGAp2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0x776f40d448eba02791172036fcc6dfbe42fd4dec32b18ba49879d6ed474271ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://286b8b7de752a268ce097ce87a0979d1f9c37d052cff0a4b9bd59fd0c34232ec\",\"dweb:/ipfs/QmUti8SGn5TFBNSPAwB2EBmUW6CYCU6sUKgK9iFdFxhjMJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x072ba050880d2447cf73c318fa9e29b91d322c63cc44fc4ae6d9eeb74533704c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://874de6bfd7ff69d8924d6e59200f66a16d24062b2cde348cbb833f76ccc831a8\",\"dweb:/ipfs/Qmc8n3KxW5BeVPRtBAy7FrmxDhP383AJtmMzqn1kcprPvL\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol\":{\"keccak256\":\"0xa62c5b8268051c6784edc81664352b416fa57069e3292ad0c6e97a2c31b68f6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f821026833cfe922ce9e47e09fa93c13c2702f82fac675ddf614ca2958078557\",\"dweb:/ipfs/QmWPDNkDJef1W7ZcJ4Qq8hjyHEUxv9mNnkhsoKKYE3MAQu\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827\",\"dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xd5d8ca01aef5be860ca223ddea39bf3c7467ba1a244fe8dcf26bc435e5ca43d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48ff830d6a98a7e108a2309aff6dac9666b91e4003c2c1857957d7d79c6ac513\",\"dweb:/ipfs/QmNc3u2K11tshKxAmLEqjoxJ6eAFEiPAccwkr1RsWvsF3H\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x2f0ea26703f46fc430ad9202a63f07521d234b9a94a1a7b019f4973bed7a35a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccf228512ceb777b145d339b50b8b6a72393140cdd61bcb7bf842a89230e4fe7\",\"dweb:/ipfs/QmeWaUw193GDphNkPhJnpHQpfJBrv4v2QRbfGTdfYNTiEE\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x5643a5cadd1278581308b20becb48a50946c159fc31c29fc407ea9a61fc865d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d79f305a239207a24fa2174897c8ea8ff1e81cb790d440fd54c89a0e85f63e\",\"dweb:/ipfs/QmT847eeAMnRN3DaG1zsKNMn7qipNAidqv1REnKexPkrfA\"]},\"lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x6bcb2fcfabb3cac0f5fdae3d2ed6e385465940fd47f8e8e6a1f8ff6f0cfb2f49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f6bb73761e518e4a9f91051a52baf711fa2d051694c24a2568df6f12ea5c032\",\"dweb:/ipfs/QmWjvqi5f8MFoLVSSrtVgKGNrRTR9VwQf4yBjEPrZFbh5y\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x81b022028c39007cce9920c394b9cddd1cb9f3a1c0398f254b4a6492df92ad2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0b61b8a5c69b4df993c3d6f94c174ab293aa8698d149bce7be2d88f82929beb\",\"dweb:/ipfs/QmbtacmB1k8ginfrHvAJpjVeqnjYGfXYrkXmMPYEb83z4t\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x4baab1fac32bbb35f8fff58bfa766d5cdf46d2b3f9e0a9c019669516375b2e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5086df4eb774143759240d88b0a27398cb5287ad20cc3dd0b7efffd9392490d8\",\"dweb:/ipfs/QmXjnRum2SUpPWDYCGRJ19unmF59L9LZaCY8aL3KTNYLLu\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xf29e9088951d8a2074d872a733674618fe5c164df21b8b5cf4a6295f523ba7ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://562a1abc7ea505582827ce0c9a2f778360a1a8242742683af179930640020215\",\"dweb:/ipfs/QmPjx5f6KKaPfsDi1uV3ovQN9gHTAcNkMAFJZxE1Adw6VT\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0xcd7427e60cd143d0b9f819f4a23912e4029fe83b6548a194e70f4007a86ecc2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98b14ac384b4a47c276d22dd8d99c85c87280f41fd36b10e87489187a8d55c66\",\"dweb:/ipfs/QmTa3JrEi4ASMZ5gHN8XfQPFHubJNx6j3re7qYWmUMKDqi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xe5295ec6d987e3b73b7078e787dac664a50f5965d6d65c16c2399cc3a1aaaabf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e282e632c6bf23a0862e3e6558356ce7142971f00a401c29de279df9029f2973\",\"dweb:/ipfs/QmbPEWi9yA35ZD13ZxL81JfAiqDwTk7xM7NPvUQCbkhmbY\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x85cf779582f7860b00bba1d259be00e754bfbac3c2339e324d0113d682d9e9f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ddf369affd106e2a9e2b8a22a6ce3da8a6ccda14c6ba5b8c87f6b08169e6318\",\"dweb:/ipfs/QmNadAttd47ycHShxhk33JUJhrbzmyZQ7mHs7WEyG4Qkmp\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol\":{\"keccak256\":\"0x6b124f06f18f780a257d7bc622fb5678ffc380bc4d6c0b4e1d096223a2668096\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27c82df9020aa9839c80a98f565edb3408a9d1d988b26bc4cbeb547735f3ecdf\",\"dweb:/ipfs/QmY6xS6CzS5vTtx82V7Kfk3tqwgSdpx6LXyPCFFRtWiTwZ\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x03f5d1fcbf36a510aa90080cda37805aa22bc3525bf038742683c8b6ea1b8566\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43fbc77da90094d6dd9660248d60bf8c486ba4f86c717048c70d80891ecdf50f\",\"dweb:/ipfs/QmaWXadWeFuWs1QrAzJqzTdmUaXpM7YD1tQXLGx4mW3vUo\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x77ec7f971392aad4657542c952ccb88d8bd05090645bb282c3d8bfa9b1662781\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58c5b2f3961e6ee017a68cc94c8c2949b6bade20c3b2170cc25cafe66fc5924b\",\"dweb:/ipfs/QmacAUjdb1RtFjwVVzsJX5wvQTMsPsY9mKeaB93VRu3TSX\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xfe37358f223eddd65d61bb62b0b7bdb69d7101b5ec8d484292b8c1583a153b8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28dd43f30af3c12ae0fc08dd031b1250e906ef3c95f63f30fac6fd15aee2a662\",\"dweb:/ipfs/QmUkSyWsSRx36w1ti7U6qnGnQgJq16wpMhjeJrnyn9AXwG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xbaffa0bcc92adf28a53cc3b68551fc3632cb8f849a0028cb8d5c06e4677715e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32e6f8f6b2e883c85e6a602c0882d9962ce2f92406961244e86cd974df815912\",\"dweb:/ipfs/Qmahvx6fPpecicq1aUE1JihCxV5ep1bfuPukzrxa8Ub5PS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x093f32ab700c2b05373387263915a75f5455cdb0f09a7630cc621e27b7b50d04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d163e6ef21df143969df5557305e8c643a135c7660a678d0c65dca91772114a0\",\"dweb:/ipfs/QmTZUgiwEro5oLRhbJ2iSWyCqu1JTDekoFHALVUn4eHqYK\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x06871a0948d0fed9316ae59ee4368527e144911f5e284755312b5bfcde8b27ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c30e46d061d8a450c561935a1236b1885aa76ffab93a19b26dcb8868c839843\",\"dweb:/ipfs/QmZbWbeDyixTyYkVtJvuiQYfkQz12pS7zxWZF3Ju9PYwGH\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x104c579d98591d36dfe190bdad391c79c358d399ee18d76e877c30b94d3c07a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://332ab9adbc9a985195d56832159d09417ed5674adbbd6189db74586110aabc59\",\"dweb:/ipfs/QmZNVeVa4b7iKyFbHjvKir45RGBM93T7Yjgg9ye6Hu2umd\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4ee0e04cc52827588793a141d5efb9830f179a17e80867cc332b3a30ceb30fd9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17d8f47fce493b34099ed9005c5aee3012488f063cfe1c34ed8f9e6fc3d576e5\",\"dweb:/ipfs/QmZco2GbZZhEMvG3BovyoGMAFKvfi2LhfNGQLn283LPrXf\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/RLCCrosschainToken.sol\":{\"keccak256\":\"0xc20c9f0eca161ed1322a937ba5c03d9c0d33018756579d876c090fb1ddacc085\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://973c0ee32e23a21349a809ee183e694e45173025861e1418820ed73305d1db3d\",\"dweb:/ipfs/QmcB155mbTtbjUm5Gybr77BMPw5PHubwao3qsXuVbVM4Yd\"]},\"src/interfaces/ITokenSpender.sol\":{\"keccak256\":\"0xb4c0c625fa8f52386684ffdc66fc321ee8d25c668c963c245029d556dc6553c6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f3d1036ffd485f79f000448a502b80a886d8cd7158576bd53f9ebeda413b810c\",\"dweb:/ipfs/QmZjdFrRts6C12VPSH9aVZDGAM81Cm4dhYUsVJWdEkXpFp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"type":"error","name":"AccessControlEnforcedDefaultAdminDelay"},{"inputs":[],"type":"error","name":"AccessControlEnforcedDefaultAdminRules"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"type":"error","name":"AccessControlInvalidDefaultAdmin"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"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":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"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":"address","name":"from","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"CrosschainBurn","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"CrosschainMint","anonymous":false},{"inputs":[],"type":"event","name":"DefaultAdminDelayChangeCanceled","anonymous":false},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48","indexed":false},{"internalType":"uint48","name":"effectSchedule","type":"uint48","indexed":false}],"type":"event","name":"DefaultAdminDelayChangeScheduled","anonymous":false},{"inputs":[],"type":"event","name":"DefaultAdminTransferCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address","indexed":true},{"internalType":"uint48","name":"acceptSchedule","type":"uint48","indexed":false}],"type":"event","name":"DefaultAdminTransferScheduled","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_BRIDGE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptDefaultAdminTransfer"},{"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":[{"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":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"approveAndCall"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"beginDefaultAdminTransfer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelDefaultAdminTransfer"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"changeDefaultAdminDelay"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"crosschainBurn"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"crosschainMint"},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"initialAdmin","type":"address"},{"internalType":"address","name":"initialUpgrader","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"schedule","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"schedule","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"rollbackDefaultAdminDelay"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"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":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"acceptDefaultAdminTransfer()":{"details":"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed."},"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"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."},"approveAndCall(address,uint256,bytes)":{"details":"The ERC1363 is not used because it is not compatible with the original RLC token contract: - The RLC uses `receiveApproval` while the ERC1363 uses `onTransferReceived`. - The PoCo exposes `receiveApproval` in its interface. - Openzeppelin's implementation of ERC1363 uses Solidity custom errors. This could be changed in the future, but for now, we keep the original interface to insure compatibility with existing Dapps and SDKs.","params":{"data":"additional data to pass to the spender","spender":"address of the spender","value":"amount of tokens to approve"}},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"beginDefaultAdminTransfer(address)":{"details":"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event."},"cancelDefaultAdminTransfer()":{"details":"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event."},"changeDefaultAdminDelay(uint48)":{"details":"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"crosschainBurn(address,uint256)":{"details":"See {IERC7802-crosschainBurn}. Emits a {IERC7802-CrosschainBurn} event."},"crosschainMint(address,uint256)":{"details":"See {IERC7802-crosschainMint}. Emits a {IERC7802-CrosschainMint} event."},"defaultAdmin()":{"details":"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder."},"defaultAdminDelay()":{"details":"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}."},"defaultAdminDelayIncreaseWait()":{"details":"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds)."},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(string,string,address,address)":{"params":{"initialAdmin":"address of the admin wallet","initialUpgrader":"address of the upgrader wallet","name":"name of the token","symbol":"symbol of the token"}},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"owner()":{"details":"Gets the address of the owner."},"pendingDefaultAdmin()":{"details":"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced."},"pendingDefaultAdminDelay()":{"details":"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceRole(bytes32,address)":{"details":"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role."},"revokeRole(bytes32,address)":{"details":"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`."},"rollbackDefaultAdminDelay()":{"details":"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"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`."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"approveAndCall(address,uint256,bytes)":{"notice":"Approves the spender to spend the specified amount of tokens and calls the `receiveApproval` function on the spender contract. Original code can be found in the RLC token project: https://github.com/iExecBlockchainComputing/rlc-token/blob/master/contracts/RLC.sol#L84-L89"},"decimals()":{"notice":"Uses the same decimals number as the original RLC token."},"initialize(string,string,address,address)":{"notice":"Initializes the contract with the given parameters."}},"version":1}},"settings":{"remappings":["@createx/contracts/=lib/createx/src/","@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/","@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/","@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/","@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/","@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/","@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","createx/=lib/createx/src/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","layerzero-v1/=lib/layerzero-v1/contracts/","layerzero-v2/=lib/layerzero-v2/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/","rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/","solady/=lib/createx/lib/solady/","solidity-bytes-utils/=lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/RLCCrosschainToken.sol":"RLCCrosschainToken"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xca0f8798297e39106cad374524780916b7ea20033641df3a9102aae253099aeb","urls":["bzz-raw://77d5c809873db24e02fc288ad506087853911f5daf0fb27e499333b4e75e3af1","dweb:/ipfs/QmWNqoEj7NH3neSNNfoHwXfynrGqJu5JsvMfHe8fZB7isR"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol":{"keccak256":"0x583c53a3869e33f3a315d4160e45f29b339411af57e7648d27a9669cfd231e71","urls":["bzz-raw://9102a3358b3b6c79fdabc6ab8eb7357bc959a25d62d47102e3886e9dc5222859","dweb:/ipfs/QmUbJ22o7QHbWK7fyywxssPghJ8qa6MSCX8tmySusPGAp2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63","urls":["bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec","dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0x776f40d448eba02791172036fcc6dfbe42fd4dec32b18ba49879d6ed474271ad","urls":["bzz-raw://286b8b7de752a268ce097ce87a0979d1f9c37d052cff0a4b9bd59fd0c34232ec","dweb:/ipfs/QmUti8SGn5TFBNSPAwB2EBmUW6CYCU6sUKgK9iFdFxhjMJ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x072ba050880d2447cf73c318fa9e29b91d322c63cc44fc4ae6d9eeb74533704c","urls":["bzz-raw://874de6bfd7ff69d8924d6e59200f66a16d24062b2cde348cbb833f76ccc831a8","dweb:/ipfs/Qmc8n3KxW5BeVPRtBAy7FrmxDhP383AJtmMzqn1kcprPvL"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol":{"keccak256":"0xa62c5b8268051c6784edc81664352b416fa57069e3292ad0c6e97a2c31b68f6b","urls":["bzz-raw://f821026833cfe922ce9e47e09fa93c13c2702f82fac675ddf614ca2958078557","dweb:/ipfs/QmWPDNkDJef1W7ZcJ4Qq8hjyHEUxv9mNnkhsoKKYE3MAQu"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol":{"keccak256":"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4","urls":["bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827","dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0xd5d8ca01aef5be860ca223ddea39bf3c7467ba1a244fe8dcf26bc435e5ca43d3","urls":["bzz-raw://48ff830d6a98a7e108a2309aff6dac9666b91e4003c2c1857957d7d79c6ac513","dweb:/ipfs/QmNc3u2K11tshKxAmLEqjoxJ6eAFEiPAccwkr1RsWvsF3H"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x2f0ea26703f46fc430ad9202a63f07521d234b9a94a1a7b019f4973bed7a35a0","urls":["bzz-raw://ccf228512ceb777b145d339b50b8b6a72393140cdd61bcb7bf842a89230e4fe7","dweb:/ipfs/QmeWaUw193GDphNkPhJnpHQpfJBrv4v2QRbfGTdfYNTiEE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x5643a5cadd1278581308b20becb48a50946c159fc31c29fc407ea9a61fc865d1","urls":["bzz-raw://c7d79f305a239207a24fa2174897c8ea8ff1e81cb790d440fd54c89a0e85f63e","dweb:/ipfs/QmT847eeAMnRN3DaG1zsKNMn7qipNAidqv1REnKexPkrfA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol":{"keccak256":"0x6bcb2fcfabb3cac0f5fdae3d2ed6e385465940fd47f8e8e6a1f8ff6f0cfb2f49","urls":["bzz-raw://1f6bb73761e518e4a9f91051a52baf711fa2d051694c24a2568df6f12ea5c032","dweb:/ipfs/QmWjvqi5f8MFoLVSSrtVgKGNrRTR9VwQf4yBjEPrZFbh5y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x81b022028c39007cce9920c394b9cddd1cb9f3a1c0398f254b4a6492df92ad2b","urls":["bzz-raw://e0b61b8a5c69b4df993c3d6f94c174ab293aa8698d149bce7be2d88f82929beb","dweb:/ipfs/QmbtacmB1k8ginfrHvAJpjVeqnjYGfXYrkXmMPYEb83z4t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x4baab1fac32bbb35f8fff58bfa766d5cdf46d2b3f9e0a9c019669516375b2e11","urls":["bzz-raw://5086df4eb774143759240d88b0a27398cb5287ad20cc3dd0b7efffd9392490d8","dweb:/ipfs/QmXjnRum2SUpPWDYCGRJ19unmF59L9LZaCY8aL3KTNYLLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xf29e9088951d8a2074d872a733674618fe5c164df21b8b5cf4a6295f523ba7ad","urls":["bzz-raw://562a1abc7ea505582827ce0c9a2f778360a1a8242742683af179930640020215","dweb:/ipfs/QmPjx5f6KKaPfsDi1uV3ovQN9gHTAcNkMAFJZxE1Adw6VT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol":{"keccak256":"0xcd7427e60cd143d0b9f819f4a23912e4029fe83b6548a194e70f4007a86ecc2c","urls":["bzz-raw://98b14ac384b4a47c276d22dd8d99c85c87280f41fd36b10e87489187a8d55c66","dweb:/ipfs/QmTa3JrEi4ASMZ5gHN8XfQPFHubJNx6j3re7qYWmUMKDqi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xe5295ec6d987e3b73b7078e787dac664a50f5965d6d65c16c2399cc3a1aaaabf","urls":["bzz-raw://e282e632c6bf23a0862e3e6558356ce7142971f00a401c29de279df9029f2973","dweb:/ipfs/QmbPEWi9yA35ZD13ZxL81JfAiqDwTk7xM7NPvUQCbkhmbY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x85cf779582f7860b00bba1d259be00e754bfbac3c2339e324d0113d682d9e9f9","urls":["bzz-raw://2ddf369affd106e2a9e2b8a22a6ce3da8a6ccda14c6ba5b8c87f6b08169e6318","dweb:/ipfs/QmNadAttd47ycHShxhk33JUJhrbzmyZQ7mHs7WEyG4Qkmp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol":{"keccak256":"0x6b124f06f18f780a257d7bc622fb5678ffc380bc4d6c0b4e1d096223a2668096","urls":["bzz-raw://27c82df9020aa9839c80a98f565edb3408a9d1d988b26bc4cbeb547735f3ecdf","dweb:/ipfs/QmY6xS6CzS5vTtx82V7Kfk3tqwgSdpx6LXyPCFFRtWiTwZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x03f5d1fcbf36a510aa90080cda37805aa22bc3525bf038742683c8b6ea1b8566","urls":["bzz-raw://43fbc77da90094d6dd9660248d60bf8c486ba4f86c717048c70d80891ecdf50f","dweb:/ipfs/QmaWXadWeFuWs1QrAzJqzTdmUaXpM7YD1tQXLGx4mW3vUo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x77ec7f971392aad4657542c952ccb88d8bd05090645bb282c3d8bfa9b1662781","urls":["bzz-raw://58c5b2f3961e6ee017a68cc94c8c2949b6bade20c3b2170cc25cafe66fc5924b","dweb:/ipfs/QmacAUjdb1RtFjwVVzsJX5wvQTMsPsY9mKeaB93VRu3TSX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xfe37358f223eddd65d61bb62b0b7bdb69d7101b5ec8d484292b8c1583a153b8a","urls":["bzz-raw://28dd43f30af3c12ae0fc08dd031b1250e906ef3c95f63f30fac6fd15aee2a662","dweb:/ipfs/QmUkSyWsSRx36w1ti7U6qnGnQgJq16wpMhjeJrnyn9AXwG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xbaffa0bcc92adf28a53cc3b68551fc3632cb8f849a0028cb8d5c06e4677715e9","urls":["bzz-raw://32e6f8f6b2e883c85e6a602c0882d9962ce2f92406961244e86cd974df815912","dweb:/ipfs/Qmahvx6fPpecicq1aUE1JihCxV5ep1bfuPukzrxa8Ub5PS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x093f32ab700c2b05373387263915a75f5455cdb0f09a7630cc621e27b7b50d04","urls":["bzz-raw://d163e6ef21df143969df5557305e8c643a135c7660a678d0c65dca91772114a0","dweb:/ipfs/QmTZUgiwEro5oLRhbJ2iSWyCqu1JTDekoFHALVUn4eHqYK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x06871a0948d0fed9316ae59ee4368527e144911f5e284755312b5bfcde8b27ea","urls":["bzz-raw://3c30e46d061d8a450c561935a1236b1885aa76ffab93a19b26dcb8868c839843","dweb:/ipfs/QmZbWbeDyixTyYkVtJvuiQYfkQz12pS7zxWZF3Ju9PYwGH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x104c579d98591d36dfe190bdad391c79c358d399ee18d76e877c30b94d3c07a0","urls":["bzz-raw://332ab9adbc9a985195d56832159d09417ed5674adbbd6189db74586110aabc59","dweb:/ipfs/QmZNVeVa4b7iKyFbHjvKir45RGBM93T7Yjgg9ye6Hu2umd"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4ee0e04cc52827588793a141d5efb9830f179a17e80867cc332b3a30ceb30fd9","urls":["bzz-raw://17d8f47fce493b34099ed9005c5aee3012488f063cfe1c34ed8f9e6fc3d576e5","dweb:/ipfs/QmZco2GbZZhEMvG3BovyoGMAFKvfi2LhfNGQLn283LPrXf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/RLCCrosschainToken.sol":{"keccak256":"0xc20c9f0eca161ed1322a937ba5c03d9c0d33018756579d876c090fb1ddacc085","urls":["bzz-raw://973c0ee32e23a21349a809ee183e694e45173025861e1418820ed73305d1db3d","dweb:/ipfs/QmcB155mbTtbjUm5Gybr77BMPw5PHubwao3qsXuVbVM4Yd"],"license":"Apache-2.0"},"src/interfaces/ITokenSpender.sol":{"keccak256":"0xb4c0c625fa8f52386684ffdc66fc321ee8d25c668c963c245029d556dc6553c6","urls":["bzz-raw://f3d1036ffd485f79f000448a502b80a886d8cd7158576bd53f9ebeda413b810c","dweb:/ipfs/QmZjdFrRts6C12VPSH9aVZDGAM81Cm4dhYUsVJWdEkXpFp"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/RLCCrosschainToken.sol","id":87528,"exportedSymbols":{"AccessControlDefaultAdminRulesUpgradeable":[68475],"ERC20BridgeableUpgradeable":[69833],"ERC20PermitUpgradeable":[69711],"IAccessControl":[70914],"ITokenSpender":[88350],"RLCCrosschainToken":[87527],"UUPSUpgradeable":[68925]},"nodeType":"SourceUnit","src":"111:4605:188","nodes":[{"id":87370,"nodeType":"PragmaDirective","src":"111:24:188","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":87372,"nodeType":"ImportDirective","src":"137:81:188","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":87528,"sourceUnit":70915,"symbolAliases":[{"foreign":{"id":87371,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70914,"src":"145:14:188","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87374,"nodeType":"ImportDirective","src":"219:162:188","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":87528,"sourceUnit":68476,"symbolAliases":[{"foreign":{"id":87373,"name":"AccessControlDefaultAdminRulesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68475,"src":"227:41:188","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87376,"nodeType":"ImportDirective","src":"382:100:188","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":87528,"sourceUnit":68926,"symbolAliases":[{"foreign":{"id":87375,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68925,"src":"390:15:188","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87378,"nodeType":"ImportDirective","src":"483:129:188","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":87528,"sourceUnit":69712,"symbolAliases":[{"foreign":{"id":87377,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69711,"src":"491:22:188","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87380,"nodeType":"ImportDirective","src":"613:143:188","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":87528,"sourceUnit":69834,"symbolAliases":[{"foreign":{"id":87379,"name":"ERC20BridgeableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69833,"src":"621:26:188","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87382,"nodeType":"ImportDirective","src":"757:61:188","nodes":[],"absolutePath":"src/interfaces/ITokenSpender.sol","file":"./interfaces/ITokenSpender.sol","nameLocation":"-1:-1:-1","scope":87528,"sourceUnit":88351,"symbolAliases":[{"foreign":{"id":87381,"name":"ITokenSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88350,"src":"765:13:188","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87527,"nodeType":"ContractDefinition","src":"1319:3396:188","nodes":[{"id":87396,"nodeType":"VariableDeclaration","src":"1483:66:188","nodes":[],"constant":true,"functionSelector":"f72c0d8b","mutability":"constant","name":"UPGRADER_ROLE","nameLocation":"1507:13:188","scope":87527,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1483:7:188","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"55504752414445525f524f4c45","id":87394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1533:15:188","typeDescriptions":{"typeIdentifier":"t_stringliteral_189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3","typeString":"literal_string \"UPGRADER_ROLE\""},"value":"UPGRADER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3","typeString":"literal_string \"UPGRADER_ROLE\""}],"id":87393,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1523:9:188","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":87395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1523:26:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":87401,"nodeType":"VariableDeclaration","src":"1555:74:188","nodes":[],"constant":true,"functionSelector":"a94ea30c","mutability":"constant","name":"TOKEN_BRIDGE_ROLE","nameLocation":"1579:17:188","scope":87527,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1555:7:188","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"544f4b454e5f4252494447455f524f4c45","id":87399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1609:19:188","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978","typeString":"literal_string \"TOKEN_BRIDGE_ROLE\""},"value":"TOKEN_BRIDGE_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978","typeString":"literal_string \"TOKEN_BRIDGE_ROLE\""}],"id":87398,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1599:9:188","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":87400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1599:30:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":87409,"nodeType":"FunctionDefinition","src":"1704:53:188","nodes":[],"body":{"id":87408,"nodeType":"Block","src":"1718:39:188","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87405,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68697,"src":"1728:20:188","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1728:22:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87407,"nodeType":"ExpressionStatement","src":"1728:22:188"}]},"documentation":{"id":87402,"nodeType":"StructuredDocumentation","src":"1636:63:188","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":87403,"nodeType":"ParameterList","parameters":[],"src":"1715:2:188"},"returnParameters":{"id":87404,"nodeType":"ParameterList","parameters":[],"src":"1718:0:188"},"scope":87527,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":87446,"nodeType":"FunctionDefinition","src":"2032:375:188","nodes":[],"body":{"id":87445,"nodeType":"Block","src":"2180:227:188","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87423,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68797,"src":"2190:22:188","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2190:24:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87425,"nodeType":"ExpressionStatement","src":"2190:24:188"},{"expression":{"arguments":[{"hexValue":"30","id":87427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2262:1:188","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":87428,"name":"initialAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87416,"src":"2265:12:188","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87426,"name":"__AccessControlDefaultAdminRules_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67695,"src":"2224:37:188","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint48_$_t_address_$returns$__$","typeString":"function (uint48,address)"}},"id":87429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2224:54:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87430,"nodeType":"ExpressionStatement","src":"2224:54:188"},{"expression":{"arguments":[{"id":87432,"name":"UPGRADER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87396,"src":"2299:13:188","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":87433,"name":"initialUpgrader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87418,"src":"2314:15:188","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87431,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[67938],"referencedDeclaration":67938,"src":"2288:10:188","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":87434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2288:42:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87435,"nodeType":"ExpressionStatement","src":"2288:42:188"},{"expression":{"arguments":[{"id":87437,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87412,"src":"2353:4:188","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":87438,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87414,"src":"2359:6:188","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":87436,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68993,"src":"2340:12:188","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":87439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:26:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87440,"nodeType":"ExpressionStatement","src":"2340:26:188"},{"expression":{"arguments":[{"id":87442,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87412,"src":"2395:4:188","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":87441,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69598,"src":"2376:18:188","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":87443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:24:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87444,"nodeType":"ExpressionStatement","src":"2376:24:188"}]},"documentation":{"id":87410,"nodeType":"StructuredDocumentation","src":"1763:264:188","text":" Initializes the contract with the given parameters.\n @param name name of the token\n @param symbol symbol of the token\n @param initialAdmin address of the admin wallet\n @param initialUpgrader address of the upgrader wallet"},"functionSelector":"8f15b414","implemented":true,"kind":"function","modifiers":[{"id":87421,"kind":"modifierInvocation","modifierName":{"id":87420,"name":"initializer","nameLocations":["2164:11:188"],"nodeType":"IdentifierPath","referencedDeclaration":68583,"src":"2164:11:188"},"nodeType":"ModifierInvocation","src":"2164:11:188"}],"name":"initialize","nameLocation":"2041:10:188","parameters":{"id":87419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87412,"mutability":"mutable","name":"name","nameLocation":"2066:4:188","nodeType":"VariableDeclaration","scope":87446,"src":"2052:18:188","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":87411,"name":"string","nodeType":"ElementaryTypeName","src":"2052:6:188","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":87414,"mutability":"mutable","name":"symbol","nameLocation":"2086:6:188","nodeType":"VariableDeclaration","scope":87446,"src":"2072:20:188","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":87413,"name":"string","nodeType":"ElementaryTypeName","src":"2072:6:188","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":87416,"mutability":"mutable","name":"initialAdmin","nameLocation":"2102:12:188","nodeType":"VariableDeclaration","scope":87446,"src":"2094:20:188","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87415,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:188","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87418,"mutability":"mutable","name":"initialUpgrader","nameLocation":"2124:15:188","nodeType":"VariableDeclaration","scope":87446,"src":"2116:23:188","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87417,"name":"address","nodeType":"ElementaryTypeName","src":"2116:7:188","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2051:89:188"},"returnParameters":{"id":87422,"nodeType":"ParameterList","parameters":[],"src":"2180:0:188"},"scope":87527,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":87477,"nodeType":"FunctionDefinition","src":"3368:234:188","nodes":[],"body":{"id":87476,"nodeType":"Block","src":"3454:148:188","nodes":[],"statements":[{"condition":{"arguments":[{"id":87457,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87449,"src":"3476:7:188","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87458,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87451,"src":"3485:5:188","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":87456,"name":"approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69170,"src":"3468:7:188","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":87459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3468:23:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87475,"nodeType":"IfStatement","src":"3464:132:188","trueBody":{"id":87474,"nodeType":"Block","src":"3493:103:188","statements":[{"expression":{"arguments":[{"expression":{"id":87464,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3546:3:188","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":87465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3550:6:188","memberName":"sender","nodeType":"MemberAccess","src":"3546:10:188","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87466,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87451,"src":"3558:5:188","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":87469,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3573:4:188","typeDescriptions":{"typeIdentifier":"t_contract$_RLCCrosschainToken_$87527","typeString":"contract RLCCrosschainToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RLCCrosschainToken_$87527","typeString":"contract RLCCrosschainToken"}],"id":87468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3565:7:188","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87467,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:188","typeDescriptions":{}}},"id":87470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3565:13:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87471,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87453,"src":"3580:4:188","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":87461,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87449,"src":"3521:7:188","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87460,"name":"ITokenSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88350,"src":"3507:13:188","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITokenSpender_$88350_$","typeString":"type(contract ITokenSpender)"}},"id":87462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3507:22:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITokenSpender_$88350","typeString":"contract ITokenSpender"}},"id":87463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3530:15:188","memberName":"receiveApproval","nodeType":"MemberAccess","referencedDeclaration":88349,"src":"3507:38:188","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,address,bytes memory) external"}},"id":87472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3507:78:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87473,"nodeType":"ExpressionStatement","src":"3507:78:188"}]}}]},"documentation":{"id":87447,"nodeType":"StructuredDocumentation","src":"2413:950:188","text":" Approves the spender to spend the specified amount of tokens and calls the `receiveApproval`\n function on the spender contract. Original code can be found in the RLC token project:\n https://github.com/iExecBlockchainComputing/rlc-token/blob/master/contracts/RLC.sol#L84-L89\n @dev The ERC1363 is not used because it is not compatible with the original RLC token contract:\n - The RLC uses `receiveApproval` while the ERC1363 uses `onTransferReceived`.\n - The PoCo exposes `receiveApproval` in its interface.\n - Openzeppelin's implementation of ERC1363 uses Solidity custom errors.\n This could be changed in the future, but for now, we keep the original interface to insure\n compatibility with existing Dapps and SDKs.\n @param spender address of the spender\n @param value amount of tokens to approve\n @param data additional data to pass to the spender"},"functionSelector":"cae9ca51","implemented":true,"kind":"function","modifiers":[],"name":"approveAndCall","nameLocation":"3377:14:188","parameters":{"id":87454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87449,"mutability":"mutable","name":"spender","nameLocation":"3400:7:188","nodeType":"VariableDeclaration","scope":87477,"src":"3392:15:188","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87448,"name":"address","nodeType":"ElementaryTypeName","src":"3392:7:188","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87451,"mutability":"mutable","name":"value","nameLocation":"3417:5:188","nodeType":"VariableDeclaration","scope":87477,"src":"3409:13:188","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3409:7:188","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":87453,"mutability":"mutable","name":"data","nameLocation":"3439:4:188","nodeType":"VariableDeclaration","scope":87477,"src":"3424:19:188","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":87452,"name":"bytes","nodeType":"ElementaryTypeName","src":"3424:5:188","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3391:53:188"},"returnParameters":{"id":87455,"nodeType":"ParameterList","parameters":[],"src":"3454:0:188"},"scope":87527,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87494,"nodeType":"FunctionDefinition","src":"3669:250:188","nodes":[],"body":{"id":87493,"nodeType":"Block","src":"3859:60:188","nodes":[],"statements":[{"expression":{"arguments":[{"id":87490,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87480,"src":"3900:11:188","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":87488,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3876:5:188","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_RLCCrosschainToken_$87527_$","typeString":"type(contract super RLCCrosschainToken)"}},"id":87489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3882:17:188","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":69778,"src":"3876:23:188","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":87491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3876:36:188","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":87487,"id":87492,"nodeType":"Return","src":"3869:43:188"}]},"baseFunctions":[67759,69778],"documentation":{"id":87478,"nodeType":"StructuredDocumentation","src":"3608:56:188","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3678:17:188","overrides":{"id":87484,"nodeType":"OverrideSpecifier","overrides":[{"id":87482,"name":"AccessControlDefaultAdminRulesUpgradeable","nameLocations":["3761:41:188"],"nodeType":"IdentifierPath","referencedDeclaration":68475,"src":"3761:41:188"},{"id":87483,"name":"ERC20BridgeableUpgradeable","nameLocations":["3804:26:188"],"nodeType":"IdentifierPath","referencedDeclaration":69833,"src":"3804:26:188"}],"src":"3752:79:188"},"parameters":{"id":87481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87480,"mutability":"mutable","name":"interfaceId","nameLocation":"3703:11:188","nodeType":"VariableDeclaration","scope":87494,"src":"3696:18:188","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":87479,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3696:6:188","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3695:20:188"},"returnParameters":{"id":87487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87494,"src":"3849:4:188","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87485,"name":"bool","nodeType":"ElementaryTypeName","src":"3849:4:188","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3848:6:188"},"scope":87527,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":87504,"nodeType":"FunctionDefinition","src":"4005:82:188","nodes":[],"body":{"id":87503,"nodeType":"Block","src":"4062:25:188","nodes":[],"statements":[{"expression":{"hexValue":"39","id":87501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4079:1:188","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"functionReturnParameters":87500,"id":87502,"nodeType":"Return","src":"4072:8:188"}]},"baseFunctions":[69062],"documentation":{"id":87495,"nodeType":"StructuredDocumentation","src":"3925:75:188","text":" Uses the same decimals number as the original RLC token."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"4014:8:188","overrides":{"id":87497,"nodeType":"OverrideSpecifier","overrides":[],"src":"4037:8:188"},"parameters":{"id":87496,"nodeType":"ParameterList","parameters":[],"src":"4022:2:188"},"returnParameters":{"id":87500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87504,"src":"4055:5:188","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":87498,"name":"uint8","nodeType":"ElementaryTypeName","src":"4055:5:188","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4054:7:188"},"scope":87527,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":87515,"nodeType":"FunctionDefinition","src":"4222:103:188","nodes":[],"body":{"id":87514,"nodeType":"Block","src":"4323:2:188","nodes":[],"statements":[]},"baseFunctions":[68879],"documentation":{"id":87505,"nodeType":"StructuredDocumentation","src":"4093:124:188","text":" @dev Authorizes upgrades of the proxy. It can only be called by\n an account with the UPGRADER_ROLE."},"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87511,"name":"UPGRADER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87396,"src":"4308:13:188","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":87512,"kind":"modifierInvocation","modifierName":{"id":87510,"name":"onlyRole","nameLocations":["4299:8:188"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"4299:8:188"},"nodeType":"ModifierInvocation","src":"4299:23:188"}],"name":"_authorizeUpgrade","nameLocation":"4231:17:188","overrides":{"id":87509,"nodeType":"OverrideSpecifier","overrides":[],"src":"4290:8:188"},"parameters":{"id":87508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87515,"src":"4249:7:188","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87506,"name":"address","nodeType":"ElementaryTypeName","src":"4249:7:188","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4248:32:188"},"returnParameters":{"id":87513,"nodeType":"ParameterList","parameters":[],"src":"4323:0:188"},"scope":87527,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":87526,"nodeType":"FunctionDefinition","src":"4612:101:188","nodes":[],"body":{"id":87525,"nodeType":"Block","src":"4711:2:188","nodes":[],"statements":[]},"baseFunctions":[69832],"documentation":{"id":87516,"nodeType":"StructuredDocumentation","src":"4331:276:188","text":" Checks if the caller is a trusted token bridge that is allowed by iExec to call\n `crosschainMint` or `crosschainBurn` functions.\n @dev This function is called by the modifier `onlyTokenBridge` in the\n `ERC20BridgeableUpgradeable` contract."},"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87522,"name":"TOKEN_BRIDGE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87401,"src":"4692:17:188","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":87523,"kind":"modifierInvocation","modifierName":{"id":87521,"name":"onlyRole","nameLocations":["4683:8:188"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"4683:8:188"},"nodeType":"ModifierInvocation","src":"4683:27:188"}],"name":"_checkTokenBridge","nameLocation":"4621:17:188","overrides":{"id":87520,"nodeType":"OverrideSpecifier","overrides":[],"src":"4674:8:188"},"parameters":{"id":87519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87526,"src":"4639:7:188","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87517,"name":"address","nodeType":"ElementaryTypeName","src":"4639:7:188","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4638:21:188"},"returnParameters":{"id":87524,"nodeType":"ParameterList","parameters":[],"src":"4711:0:188"},"scope":87527,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":87384,"name":"UUPSUpgradeable","nameLocations":["1354:15:188"],"nodeType":"IdentifierPath","referencedDeclaration":68925,"src":"1354:15:188"},"id":87385,"nodeType":"InheritanceSpecifier","src":"1354:15:188"},{"baseName":{"id":87386,"name":"AccessControlDefaultAdminRulesUpgradeable","nameLocations":["1375:41:188"],"nodeType":"IdentifierPath","referencedDeclaration":68475,"src":"1375:41:188"},"id":87387,"nodeType":"InheritanceSpecifier","src":"1375:41:188"},{"baseName":{"id":87388,"name":"ERC20PermitUpgradeable","nameLocations":["1422:22:188"],"nodeType":"IdentifierPath","referencedDeclaration":69711,"src":"1422:22:188"},"id":87389,"nodeType":"InheritanceSpecifier","src":"1422:22:188"},{"baseName":{"id":87390,"name":"ERC20BridgeableUpgradeable","nameLocations":["1450:26:188"],"nodeType":"IdentifierPath","referencedDeclaration":69833,"src":"1450:26:188"},"id":87391,"nodeType":"InheritanceSpecifier","src":"1450:26:188"}],"canonicalName":"RLCCrosschainToken","contractDependencies":[],"contractKind":"contract","documentation":{"id":87383,"nodeType":"StructuredDocumentation","src":"820:498:188","text":" This contract is an upgradeable (UUPS) ERC20 token with cross-chain capabilities.\n It implements the ERC-7802 (https://eips.ethereum.org/EIPS/eip-7802) standard for\n cross-chain token transfers. It allows minting and burning of tokens as requested\n by permitted bridge contracts.\n To whitelist a token bridge contract, the admin (with `DEFAULT_ADMIN_ROLE`) sends\n a transaction to grant the role `TOKEN_BRIDGE_ROLE` to the bridge contract address\n using `grantRole` function."},"fullyImplemented":true,"linearizedBaseContracts":[87527,69833,71496,69711,69990,70494,71297,72344,68475,67432,70534,75345,69542,71359,72308,72282,71307,71161,70914,69879,68925,71317,68743],"name":"RLCCrosschainToken","nameLocation":"1328:18:188","scope":87528,"usedErrors":[68492,68495,68770,68775,69577,69584,69893,70841,70844,71074,71077,71082,71329,71334,71339,71348,71353,71358,71554,71567,72818,73111,74886,74891,74896,76976],"usedEvents":[68500,70853,70862,70871,71089,71092,71099,71102,71255,71277,71470,71479,72216,72225]}],"license":"Apache-2.0"},"id":188} \ No newline at end of file diff --git a/artifacts/RLCLiquidityUnifier.sol/RLCLiquidityUnifier.json b/artifacts/RLCLiquidityUnifier.sol/RLCLiquidityUnifier.json new file mode 100644 index 00000000..9b27b0ef --- /dev/null +++ b/artifacts/RLCLiquidityUnifier.sol/RLCLiquidityUnifier.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"rlcToken","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"RLC_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20Metadata"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_BRIDGE_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"acceptDefaultAdminTransfer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"beginDefaultAdminTransfer","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelDefaultAdminTransfer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeDefaultAdminDelay","inputs":[{"name":"newDelay","type":"uint48","internalType":"uint48"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crosschainBurn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crosschainMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"defaultAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"defaultAdminDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"defaultAdminDelayIncreaseWait","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialAdmin","type":"address","internalType":"address"},{"name":"initialUpgrader","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingDefaultAdmin","inputs":[],"outputs":[{"name":"newAdmin","type":"address","internalType":"address"},{"name":"schedule","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"pendingDefaultAdminDelay","inputs":[],"outputs":[{"name":"newDelay","type":"uint48","internalType":"uint48"},{"name":"schedule","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollbackDefaultAdminDelay","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"CrosschainBurn","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CrosschainMint","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DefaultAdminDelayChangeCanceled","inputs":[],"anonymous":false},{"type":"event","name":"DefaultAdminDelayChangeScheduled","inputs":[{"name":"newDelay","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"effectSchedule","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"DefaultAdminTransferCanceled","inputs":[],"anonymous":false},{"type":"event","name":"DefaultAdminTransferScheduled","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"acceptSchedule","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlEnforcedDefaultAdminDelay","inputs":[{"name":"schedule","type":"uint48","internalType":"uint48"}]},{"type":"error","name":"AccessControlEnforcedDefaultAdminRules","inputs":[]},{"type":"error","name":"AccessControlInvalidDefaultAdmin","inputs":[{"name":"defaultAdmin","type":"address","internalType":"address"}]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ERC7802InvalidFromAddress","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"ERC7802InvalidToAddress","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c06040523060805234801562000014575f80fd5b5060405162001cb838038062001cb8833981016040819052620000379162000107565b6200004162000053565b6001600160a01b031660a05262000136565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a45760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f6020828403121562000118575f80fd5b81516001600160a01b03811681146200012f575f80fd5b9392505050565b60805160a051611b44620001745f395f818161049301528181610621015261070e01525f8181610dc201528181610deb0152610f4c0152611b445ff3fe6080604052600436106101af575f3560e01c806384ef8ffc116100e7578063b25dd57211610087578063cf6eefb711610062578063cf6eefb7146104dd578063d547741f14610517578063d602b9fd14610536578063f72c0d8b1461054a575f80fd5b8063b25dd57214610482578063cc8463c8146104b5578063cefc1429146104c9575f80fd5b8063a1eda53c116100c2578063a1eda53c146103cc578063a217fddf146103ff578063a94ea30c14610412578063ad3cb1cc14610445575f80fd5b806384ef8ffc1461036d5780638da5cb5b1461039957806391d14854146103ad575f80fd5b8063313ce567116101525780634f1ef2861161012d5780634f1ef2861461030857806352d1902d1461031b578063634e93da1461032f578063649a5ec71461034e575f80fd5b8063313ce567146102af57806336568abe146102ca578063485cc955146102e9575f80fd5b806318bf50771161018d57806318bf507714610225578063248a9ca3146102445780632b8c49e3146102715780632f2ff15d14610290575f80fd5b806301ffc9a7146101b3578063022d63fb146101e75780630aa6220b1461020f575b5f80fd5b3480156101be575f80fd5b506101d26101cd3660046117d5565b61057d565b60405190151581526020015b60405180910390f35b3480156101f2575f80fd5b50620697805b60405165ffffffffffff90911681526020016101de565b34801561021a575f80fd5b506102236105a7565b005b348015610230575f80fd5b5061022361023f366004611817565b6105bc565b34801561024f575f80fd5b5061026361025e36600461183f565b61068e565b6040519081526020016101de565b34801561027c575f80fd5b5061022361028b366004611817565b6106ae565b34801561029b575f80fd5b506102236102aa366004611856565b610773565b3480156102ba575f80fd5b50604051600981526020016101de565b3480156102d5575f80fd5b506102236102e4366004611856565b61079f565b3480156102f4575f80fd5b50610223610303366004611880565b610861565b6102236103163660046118bc565b61098f565b348015610326575f80fd5b506102636109aa565b34801561033a575f80fd5b50610223610349366004611978565b6109c5565b348015610359575f80fd5b50610223610368366004611991565b6109d8565b348015610378575f80fd5b506103816109eb565b6040516001600160a01b0390911681526020016101de565b3480156103a4575f80fd5b50610381610a06565b3480156103b8575f80fd5b506101d26103c7366004611856565b610a14565b3480156103d7575f80fd5b506103e0610a4a565b6040805165ffffffffffff9384168152929091166020830152016101de565b34801561040a575f80fd5b506102635f81565b34801561041d575f80fd5b506102637fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c97881565b348015610450575f80fd5b50610475604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101de91906119d8565b34801561048d575f80fd5b506103817f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c0575f80fd5b506101f8610ab9565b3480156104d4575f80fd5b50610223610b34565b3480156104e8575f80fd5b506104f1610b73565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016101de565b348015610522575f80fd5b50610223610531366004611856565b610ba0565b348015610541575f80fd5b50610223610bc8565b348015610555575f80fd5b506102637f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b5f6001600160e01b03198216630cccc66560e21b14806105a157506105a182610bda565b92915050565b5f6105b181610bfe565b6105b9610c08565b50565b7fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c9786105e681610bfe565b6001600160a01b0383166106145760405163a5e1125760e01b81525f60048201526024015b60405180910390fd5b6106486001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484610c14565b60405182815233906001600160a01b038516907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04906020015b60405180910390a3505050565b5f9081525f80516020611acf833981519152602052604090206001015490565b7fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c9786106d881610bfe565b6001600160a01b03831661070157604051637d37178d60e01b81525f600482015260240161060b565b6107366001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016843085610c73565b60405182815233906001600160a01b038516907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd490602001610681565b8161079157604051631fe1e13d60e11b815260040160405180910390fd5b61079b8282610cb2565b5050565b5f80516020611aaf833981519152821580156107d357506107be6109eb565b6001600160a01b0316826001600160a01b0316145b15610852575f806107e2610b73565b90925090506001600160a01b038216151580610804575065ffffffffffff8116155b8061081757504265ffffffffffff821610155b1561083f576040516319ca5ebb60e01b815265ffffffffffff8216600482015260240161060b565b5050805465ffffffffffff60a01b191681555b61085c8383610cce565b505050565b5f61086a610d01565b805490915060ff600160401b820416159067ffffffffffffffff165f811580156108915750825b90505f8267ffffffffffffffff1660011480156108ad5750303b155b9050811580156108bb575080155b156108d95760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561090357845460ff60401b1916600160401b1785555b61090b610d29565b6109155f88610d31565b61093f7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e387610d43565b50831561098657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610997610db7565b6109a082610e5b565b61079b8282610e85565b5f6109b3610f41565b505f80516020611a8f83398151915290565b5f6109cf81610bfe565b61079b82610f8a565b5f6109e281610bfe565b61079b82610ffc565b5f80516020611aef833981519152546001600160a01b031690565b5f610a0f6109eb565b905090565b5f9182525f80516020611acf833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f80516020611aef833981519152545f90600160d01b900465ffffffffffff165f80516020611aaf8339815191528115801590610a8f57504265ffffffffffff831610155b610a9a575f80610ab0565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f80516020611aef833981519152545f905f80516020611aaf83398151915290600160d01b900465ffffffffffff168015801590610afe57504265ffffffffffff8216105b610b18578154600160d01b900465ffffffffffff16610b2d565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f610b3d610b73565b509050336001600160a01b03821614610b6b57604051636116401160e11b815233600482015260240161060b565b6105b961106b565b5f80516020611aaf833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b81610bbe57604051631fe1e13d60e11b815260040160405180910390fd5b61079b8282611104565b5f610bd281610bfe565b6105b9611120565b5f6001600160e01b031982166318a4c3c360e11b14806105a157506105a18261112a565b6105b9813361115e565b610c125f80611197565b565b6040516001600160a01b0383811660248301526044820183905261085c91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061126f565b6040516001600160a01b038481166024830152838116604483015260648201839052610cac9186918216906323b872dd90608401610c41565b50505050565b610cbb8261068e565b610cc481610bfe565b610cac8383610d43565b6001600160a01b0381163314610cf75760405163334bd91960e11b815260040160405180910390fd5b61085c82826112db565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105a1565b610c12611332565b610d39611332565b61079b8282611357565b5f5f80516020611aaf83398151915283610da5575f610d606109eb565b6001600160a01b031614610d8757604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b610daf84846113bd565b949350505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e3d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e315f80516020611a8f833981519152546001600160a01b031690565b6001600160a01b031614155b15610c125760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361079b81610bfe565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610edf575060408051601f3d908101601f19168201909252610edc91810190611a0a565b60015b610f0757604051634c9c8ce360e01b81526001600160a01b038316600482015260240161060b565b5f80516020611a8f8339815191528114610f3757604051632a87526960e21b81526004810182905260240161060b565b61085c8383611465565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c125760405163703e46dd60e11b815260040160405180910390fd5b5f610f93610ab9565b610f9c426114ba565b610fa69190611a35565b9050610fb282826114f0565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6110068261157a565b61100f426114ba565b6110199190611a35565b90506110258282611197565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b910160405180910390a15050565b5f80516020611aaf8339815191525f80611083610b73565b915091506110988165ffffffffffff16151590565b15806110ac57504265ffffffffffff821610155b156110d4576040516319ca5ebb60e01b815265ffffffffffff8216600482015260240161060b565b6110e55f6110e06109eb565b6112db565b506110f05f83610d43565b505081546001600160d01b03191690915550565b61110d8261068e565b61111681610bfe565b610cac83836112db565b610c125f806114f0565b5f6001600160e01b03198216637965db0b60e01b14806105a157506301ffc9a760e01b6001600160e01b03198316146105a1565b6111688282610a14565b61079b5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161060b565b5f80516020611aef833981519152545f80516020611aaf83398151915290600160d01b900465ffffffffffff168015611231574265ffffffffffff8216101561120857600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255611231565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f8060205f8451602086015f885af18061128e576040513d5f823e3d81fd5b50505f513d915081156112a55780600114156112b2565b6001600160a01b0384163b155b15610cac57604051635274afe760e01b81526001600160a01b038516600482015260240161060b565b5f5f80516020611aaf8339815191528315801561131057506112fb6109eb565b6001600160a01b0316836001600160a01b0316145b15611328576001810180546001600160a01b03191690555b610daf84846115c8565b61133a611641565b610c1257604051631afcd79f60e31b815260040160405180910390fd5b61135f611332565b5f80516020611aaf8339815191526001600160a01b03821661139657604051636116401160e11b81525f600482015260240161060b565b80546001600160d01b0316600160d01b65ffffffffffff851602178155610cac5f83610d43565b5f5f80516020611acf8339815191526113d68484610a14565b611455575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561140b3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506105a1565b5f9150506105a1565b5092915050565b61146e8261165a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156114b25761085c82826116bd565b61079b61172f565b5f65ffffffffffff8211156114ec576040516306dfcc6560e41b8152603060048201526024810183905260440161060b565b5090565b5f80516020611aaf8339815191525f611507610b73565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061154790508165ffffffffffff16151590565b15610cac576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80611584610ab9565b90508065ffffffffffff168365ffffffffffff16116115ac576115a78382611a54565b6115c1565b6115c165ffffffffffff84166206978061174e565b9392505050565b5f5f80516020611acf8339815191526115e18484610a14565b15611455575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506105a1565b5f61164a610d01565b54600160401b900460ff16919050565b806001600160a01b03163b5f0361168f57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161060b565b5f80516020611a8f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516116d99190611a73565b5f60405180830381855af49150503d805f8114611711576040519150601f19603f3d011682016040523d82523d5f602084013e611716565b606091505b509150915061172685838361175d565b95945050505050565b3415610c125760405163b398979f60e01b815260040160405180910390fd5b5f8282188284100282186115c1565b60608261176d576115a7826117ad565b815115801561178457506001600160a01b0384163b155b1561145e57604051639996b31560e01b81526001600160a01b038516600482015260240161060b565b8051156117bc57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f602082840312156117e5575f80fd5b81356001600160e01b0319811681146115c1575f80fd5b80356001600160a01b0381168114611812575f80fd5b919050565b5f8060408385031215611828575f80fd5b611831836117fc565b946020939093013593505050565b5f6020828403121561184f575f80fd5b5035919050565b5f8060408385031215611867575f80fd5b82359150611877602084016117fc565b90509250929050565b5f8060408385031215611891575f80fd5b61189a836117fc565b9150611877602084016117fc565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156118cd575f80fd5b6118d6836117fc565b9150602083013567ffffffffffffffff808211156118f2575f80fd5b818501915085601f830112611905575f80fd5b813581811115611917576119176118a8565b604051601f8201601f19908116603f0116810190838211818310171561193f5761193f6118a8565b81604052828152886020848701011115611957575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f60208284031215611988575f80fd5b6115c1826117fc565b5f602082840312156119a1575f80fd5b813565ffffffffffff811681146115c1575f80fd5b5f5b838110156119d05781810151838201526020016119b8565b50505f910152565b602081525f82518060208401526119f68160408501602087016119b6565b601f01601f19169190910160400192915050565b5f60208284031215611a1a575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff81811683821601908082111561145e5761145e611a21565b65ffffffffffff82811682821603908082111561145e5761145e611a21565b5f8251611a848184602087016119b6565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a264697066735822122089c4bca2d8dcf23a111760f4649ce33d9e6388acace1a9ea9d25e4e523832d6764736f6c63430008170033","sourceMap":"1448:5942:189:-:0;;;1171:4:114;1128:48;;2035:115:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2075:22;:20;:22::i;:::-;-1:-1:-1;;;;;2107:36:189;;;1448:5942;;7709:422:113;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:113;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:113;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:113;-1:-1:-1;;;;;8033:33:113;;;;;8085:29;;453:50:212;;;8085:29:113;;441:2:212;426:18;8085:29:113;;;;;;;7979:146;7758:373;7709:422::o;14:290:212:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:212;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:212:o;309:200::-;1448:5942:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101af575f3560e01c806384ef8ffc116100e7578063b25dd57211610087578063cf6eefb711610062578063cf6eefb7146104dd578063d547741f14610517578063d602b9fd14610536578063f72c0d8b1461054a575f80fd5b8063b25dd57214610482578063cc8463c8146104b5578063cefc1429146104c9575f80fd5b8063a1eda53c116100c2578063a1eda53c146103cc578063a217fddf146103ff578063a94ea30c14610412578063ad3cb1cc14610445575f80fd5b806384ef8ffc1461036d5780638da5cb5b1461039957806391d14854146103ad575f80fd5b8063313ce567116101525780634f1ef2861161012d5780634f1ef2861461030857806352d1902d1461031b578063634e93da1461032f578063649a5ec71461034e575f80fd5b8063313ce567146102af57806336568abe146102ca578063485cc955146102e9575f80fd5b806318bf50771161018d57806318bf507714610225578063248a9ca3146102445780632b8c49e3146102715780632f2ff15d14610290575f80fd5b806301ffc9a7146101b3578063022d63fb146101e75780630aa6220b1461020f575b5f80fd5b3480156101be575f80fd5b506101d26101cd3660046117d5565b61057d565b60405190151581526020015b60405180910390f35b3480156101f2575f80fd5b50620697805b60405165ffffffffffff90911681526020016101de565b34801561021a575f80fd5b506102236105a7565b005b348015610230575f80fd5b5061022361023f366004611817565b6105bc565b34801561024f575f80fd5b5061026361025e36600461183f565b61068e565b6040519081526020016101de565b34801561027c575f80fd5b5061022361028b366004611817565b6106ae565b34801561029b575f80fd5b506102236102aa366004611856565b610773565b3480156102ba575f80fd5b50604051600981526020016101de565b3480156102d5575f80fd5b506102236102e4366004611856565b61079f565b3480156102f4575f80fd5b50610223610303366004611880565b610861565b6102236103163660046118bc565b61098f565b348015610326575f80fd5b506102636109aa565b34801561033a575f80fd5b50610223610349366004611978565b6109c5565b348015610359575f80fd5b50610223610368366004611991565b6109d8565b348015610378575f80fd5b506103816109eb565b6040516001600160a01b0390911681526020016101de565b3480156103a4575f80fd5b50610381610a06565b3480156103b8575f80fd5b506101d26103c7366004611856565b610a14565b3480156103d7575f80fd5b506103e0610a4a565b6040805165ffffffffffff9384168152929091166020830152016101de565b34801561040a575f80fd5b506102635f81565b34801561041d575f80fd5b506102637fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c97881565b348015610450575f80fd5b50610475604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101de91906119d8565b34801561048d575f80fd5b506103817f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c0575f80fd5b506101f8610ab9565b3480156104d4575f80fd5b50610223610b34565b3480156104e8575f80fd5b506104f1610b73565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016101de565b348015610522575f80fd5b50610223610531366004611856565b610ba0565b348015610541575f80fd5b50610223610bc8565b348015610555575f80fd5b506102637f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b5f6001600160e01b03198216630cccc66560e21b14806105a157506105a182610bda565b92915050565b5f6105b181610bfe565b6105b9610c08565b50565b7fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c9786105e681610bfe565b6001600160a01b0383166106145760405163a5e1125760e01b81525f60048201526024015b60405180910390fd5b6106486001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484610c14565b60405182815233906001600160a01b038516907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04906020015b60405180910390a3505050565b5f9081525f80516020611acf833981519152602052604090206001015490565b7fd7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c9786106d881610bfe565b6001600160a01b03831661070157604051637d37178d60e01b81525f600482015260240161060b565b6107366001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016843085610c73565b60405182815233906001600160a01b038516907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd490602001610681565b8161079157604051631fe1e13d60e11b815260040160405180910390fd5b61079b8282610cb2565b5050565b5f80516020611aaf833981519152821580156107d357506107be6109eb565b6001600160a01b0316826001600160a01b0316145b15610852575f806107e2610b73565b90925090506001600160a01b038216151580610804575065ffffffffffff8116155b8061081757504265ffffffffffff821610155b1561083f576040516319ca5ebb60e01b815265ffffffffffff8216600482015260240161060b565b5050805465ffffffffffff60a01b191681555b61085c8383610cce565b505050565b5f61086a610d01565b805490915060ff600160401b820416159067ffffffffffffffff165f811580156108915750825b90505f8267ffffffffffffffff1660011480156108ad5750303b155b9050811580156108bb575080155b156108d95760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561090357845460ff60401b1916600160401b1785555b61090b610d29565b6109155f88610d31565b61093f7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e387610d43565b50831561098657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610997610db7565b6109a082610e5b565b61079b8282610e85565b5f6109b3610f41565b505f80516020611a8f83398151915290565b5f6109cf81610bfe565b61079b82610f8a565b5f6109e281610bfe565b61079b82610ffc565b5f80516020611aef833981519152546001600160a01b031690565b5f610a0f6109eb565b905090565b5f9182525f80516020611acf833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b5f80516020611aef833981519152545f90600160d01b900465ffffffffffff165f80516020611aaf8339815191528115801590610a8f57504265ffffffffffff831610155b610a9a575f80610ab0565b6001810154600160a01b900465ffffffffffff16825b92509250509091565b5f80516020611aef833981519152545f905f80516020611aaf83398151915290600160d01b900465ffffffffffff168015801590610afe57504265ffffffffffff8216105b610b18578154600160d01b900465ffffffffffff16610b2d565b6001820154600160a01b900465ffffffffffff165b9250505090565b5f610b3d610b73565b509050336001600160a01b03821614610b6b57604051636116401160e11b815233600482015260240161060b565b6105b961106b565b5f80516020611aaf833981519152546001600160a01b03811691600160a01b90910465ffffffffffff1690565b81610bbe57604051631fe1e13d60e11b815260040160405180910390fd5b61079b8282611104565b5f610bd281610bfe565b6105b9611120565b5f6001600160e01b031982166318a4c3c360e11b14806105a157506105a18261112a565b6105b9813361115e565b610c125f80611197565b565b6040516001600160a01b0383811660248301526044820183905261085c91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061126f565b6040516001600160a01b038481166024830152838116604483015260648201839052610cac9186918216906323b872dd90608401610c41565b50505050565b610cbb8261068e565b610cc481610bfe565b610cac8383610d43565b6001600160a01b0381163314610cf75760405163334bd91960e11b815260040160405180910390fd5b61085c82826112db565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006105a1565b610c12611332565b610d39611332565b61079b8282611357565b5f5f80516020611aaf83398151915283610da5575f610d606109eb565b6001600160a01b031614610d8757604051631fe1e13d60e11b815260040160405180910390fd5b6001810180546001600160a01b0319166001600160a01b0385161790555b610daf84846113bd565b949350505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e3d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e315f80516020611a8f833981519152546001600160a01b031690565b6001600160a01b031614155b15610c125760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361079b81610bfe565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610edf575060408051601f3d908101601f19168201909252610edc91810190611a0a565b60015b610f0757604051634c9c8ce360e01b81526001600160a01b038316600482015260240161060b565b5f80516020611a8f8339815191528114610f3757604051632a87526960e21b81526004810182905260240161060b565b61085c8383611465565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c125760405163703e46dd60e11b815260040160405180910390fd5b5f610f93610ab9565b610f9c426114ba565b610fa69190611a35565b9050610fb282826114f0565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b5f6110068261157a565b61100f426114ba565b6110199190611a35565b90506110258282611197565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b910160405180910390a15050565b5f80516020611aaf8339815191525f80611083610b73565b915091506110988165ffffffffffff16151590565b15806110ac57504265ffffffffffff821610155b156110d4576040516319ca5ebb60e01b815265ffffffffffff8216600482015260240161060b565b6110e55f6110e06109eb565b6112db565b506110f05f83610d43565b505081546001600160d01b03191690915550565b61110d8261068e565b61111681610bfe565b610cac83836112db565b610c125f806114f0565b5f6001600160e01b03198216637965db0b60e01b14806105a157506301ffc9a760e01b6001600160e01b03198316146105a1565b6111688282610a14565b61079b5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161060b565b5f80516020611aef833981519152545f80516020611aaf83398151915290600160d01b900465ffffffffffff168015611231574265ffffffffffff8216101561120857600182015482546001600160d01b0316600160a01b90910465ffffffffffff16600160d01b02178255611231565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5905f90a15b5060010180546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b5f8060205f8451602086015f885af18061128e576040513d5f823e3d81fd5b50505f513d915081156112a55780600114156112b2565b6001600160a01b0384163b155b15610cac57604051635274afe760e01b81526001600160a01b038516600482015260240161060b565b5f5f80516020611aaf8339815191528315801561131057506112fb6109eb565b6001600160a01b0316836001600160a01b0316145b15611328576001810180546001600160a01b03191690555b610daf84846115c8565b61133a611641565b610c1257604051631afcd79f60e31b815260040160405180910390fd5b61135f611332565b5f80516020611aaf8339815191526001600160a01b03821661139657604051636116401160e11b81525f600482015260240161060b565b80546001600160d01b0316600160d01b65ffffffffffff851602178155610cac5f83610d43565b5f5f80516020611acf8339815191526113d68484610a14565b611455575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561140b3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506105a1565b5f9150506105a1565b5092915050565b61146e8261165a565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156114b25761085c82826116bd565b61079b61172f565b5f65ffffffffffff8211156114ec576040516306dfcc6560e41b8152603060048201526024810183905260440161060b565b5090565b5f80516020611aaf8339815191525f611507610b73565b835465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617178455915061154790508165ffffffffffff16151590565b15610cac576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109905f90a150505050565b5f80611584610ab9565b90508065ffffffffffff168365ffffffffffff16116115ac576115a78382611a54565b6115c1565b6115c165ffffffffffff84166206978061174e565b9392505050565b5f5f80516020611acf8339815191526115e18484610a14565b15611455575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506105a1565b5f61164a610d01565b54600160401b900460ff16919050565b806001600160a01b03163b5f0361168f57604051634c9c8ce360e01b81526001600160a01b038216600482015260240161060b565b5f80516020611a8f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516116d99190611a73565b5f60405180830381855af49150503d805f8114611711576040519150601f19603f3d011682016040523d82523d5f602084013e611716565b606091505b509150915061172685838361175d565b95945050505050565b3415610c125760405163b398979f60e01b815260040160405180910390fd5b5f8282188284100282186115c1565b60608261176d576115a7826117ad565b815115801561178457506001600160a01b0384163b155b1561145e57604051639996b31560e01b81526001600160a01b038516600482015260240161060b565b8051156117bc57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f602082840312156117e5575f80fd5b81356001600160e01b0319811681146115c1575f80fd5b80356001600160a01b0381168114611812575f80fd5b919050565b5f8060408385031215611828575f80fd5b611831836117fc565b946020939093013593505050565b5f6020828403121561184f575f80fd5b5035919050565b5f8060408385031215611867575f80fd5b82359150611877602084016117fc565b90509250929050565b5f8060408385031215611891575f80fd5b61189a836117fc565b9150611877602084016117fc565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156118cd575f80fd5b6118d6836117fc565b9150602083013567ffffffffffffffff808211156118f2575f80fd5b818501915085601f830112611905575f80fd5b813581811115611917576119176118a8565b604051601f8201601f19908116603f0116810190838211818310171561193f5761193f6118a8565b81604052828152886020848701011115611957575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f60208284031215611988575f80fd5b6115c1826117fc565b5f602082840312156119a1575f80fd5b813565ffffffffffff811681146115c1575f80fd5b5f5b838110156119d05781810151838201526020016119b8565b50505f910152565b602081525f82518060208401526119f68160408501602087016119b6565b601f01601f19169190910160400192915050565b5f60208284031215611a1a575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff81811683821601908082111561145e5761145e611a21565b65ffffffffffff82811682821603908082111561145e5761145e611a21565b5f8251611a848184602087016119b6565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbceef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d869840002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800eef3dac4538c82c8ace4063ab0acd2d15cdb5883aa1dff7c2673abb3d8698401a264697066735822122089c4bca2d8dcf23a111760f4649ce33d9e6388acace1a9ea9d25e4e523832d6764736f6c63430008170033","sourceMap":"1448:5942:189:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6828:276;;;;;;;;;;-1:-1:-1;6828:276:189;;;;;:::i;:::-;;:::i;:::-;;;470:14:212;;463:22;445:41;;433:2;418:18;6828:276:189;;;;;;;;9909:108:112;;;;;;;;;;-1:-1:-1;10004:6:112;9909:108;;;671:14:212;659:27;;;641:46;;629:2;614:18;9909:108:112;497:196:212;13102:126:112;;;;;;;;;;;;;:::i;:::-;;3744:463:189;;;;;;;;;;-1:-1:-1;3744:463:189;;;;;:::i;:::-;;:::i;4807:191:110:-;;;;;;;;;;-1:-1:-1;4807:191:110;;;;;:::i;:::-;;:::i;:::-;;;1466:25:212;;;1454:2;1439:18;4807:191:110;1320:177:212;5474:492:189;;;;;;;;;;-1:-1:-1;5474:492:189;;;;;:::i;:::-;;:::i;4656:276:112:-;;;;;;;;;;-1:-1:-1;4656:276:112;;;;;:::i;:::-;;:::i;6622:75:189:-;;;;;;;;;;-1:-1:-1;6622:75:189;;6689:1;1903:36:212;;1891:2;1876:18;6622:75:189;1761:184:212;5995:682:112;;;;;;;;;;-1:-1:-1;5995:682:112;;;;;:::i;:::-;;:::i;2347:243:189:-;;;;;;;;;;-1:-1:-1;2347:243:189;;;;;:::i;:::-;;:::i;4161:214:114:-;;;;;;:::i;:::-;;:::i;3708:134::-;;;;;;;;;;;;;:::i;10196:150:112:-;;;;;;;;;;-1:-1:-1;10196:150:112;;;;;:::i;:::-;;:::i;12486:145::-;;;;;;;;;;-1:-1:-1;12486:145:112;;;;;:::i;:::-;;:::i;8482:211::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3987:32:212;;;3969:51;;3957:2;3942:18;8482:211:112;3823:203:212;4400:93:112;;;;;;;;;;;;;:::i;3780:207:110:-;;;;;;;;;;-1:-1:-1;3780:207:110;;;;;:::i;:::-;;:::i;9483:368:112:-;;;;;;;;;;;;;:::i;:::-;;;;4211:14:212;4252:15;;;4234:34;;4304:15;;;;4299:2;4284:18;;4277:43;4174:18;9483:368:112;4031:295:212;2398:49:110;;;;;;;;;;-1:-1:-1;2398:49:110;2443:4;2398:49;;1706:74:189;;;;;;;;;;;;1750:30;1706:74;;1819:58:114;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1819:58:114;;;;;;;;;;;;:::i;1919:41:189:-;;;;;;;;;;;;;;;9087:338:112;;;;;;;;;;;;;:::i;11244:344::-;;;;;;;;;;;;;:::i;8751:278::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;5409:32:212;;;5391:51;;5490:14;5478:27;;;5473:2;5458:18;;5451:55;5364:18;8751:278:112;5219:293:212;5032:278:112;;;;;;;;;;-1:-1:-1;5032:278:112;;;;;:::i;:::-;;:::i;10819:128::-;;;;;;;;;;;;;:::i;1634:66:189:-;;;;;;;;;;;;1674:26;1634:66;;6828:276;6989:4;-1:-1:-1;;;;;;7016:41:189;;-1:-1:-1;;;7016:41:189;;:81;;;7061:36;7085:11;7061:23;:36::i;:::-;7009:88;6828:276;-1:-1:-1;;6828:276:189:o;13102:126:112:-;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;13193:28:112::1;:26;:28::i;:::-;13102:126:::0;:::o;3744:463:189:-;1750:30;3272:16:110;3283:4;3272:10;:16::i;:::-;-1:-1:-1;;;;;3918:16:189;::::1;3914:89;;3957:35;::::0;-1:-1:-1;;;3957:35:189;;3989:1:::1;3957:35;::::0;::::1;3969:51:212::0;3942:18;;3957:35:189::1;;;;;;;;3914:89;4113:33;-1:-1:-1::0;;;;;4113:9:189::1;:22;4136:2:::0;4140:5;4113:22:::1;:33::i;:::-;4161:39;::::0;1466:25:212;;;966:10:118;;-1:-1:-1;;;;;4161:39:189;::::1;::::0;::::1;::::0;1454:2:212;1439:18;4161:39:189::1;;;;;;;;3744:463:::0;;;:::o;4807:191:110:-;4872:7;4967:14;;;-1:-1:-1;;;;;;;;;;;4967:14:110;;;;;:24;;;;4807:191::o;5474:492:189:-;1750:30;3272:16:110;3283:4;3272:10;:16::i;:::-;-1:-1:-1;;;;;5650:18:189;::::1;5646:93;;5691:37;::::0;-1:-1:-1;;;5691:37:189;;5725:1:::1;5691:37;::::0;::::1;3969:51:212::0;3942:18;;5691:37:189::1;3823:203:212::0;5646:93:189::1;5849:54;-1:-1:-1::0;;;;;5849:9:189::1;:26;5876:4:::0;5890::::1;5897:5:::0;5849:26:::1;:54::i;:::-;5918:41;::::0;1466:25:212;;;966:10:118;;-1:-1:-1;;;;;5918:41:189;::::1;::::0;::::1;::::0;1454:2:212;1439:18;5918:41:189::1;1320:177:212::0;4656:276:112;4786:4;4782:104;;4835:40;;-1:-1:-1;;;4835:40:112;;;;;;;;;;;4782:104;4895:30;4911:4;4917:7;4895:15;:30::i;:::-;4656:276;;:::o;5995:682::-;-1:-1:-1;;;;;;;;;;;6231:26:112;;:55;;;;;6272:14;:12;:14::i;:::-;-1:-1:-1;;;;;6261:25:112;:7;-1:-1:-1;;;;;6261:25:112;;6231:55;6227:401;;;6303:23;6328:15;6347:21;:19;:21::i;:::-;6302:66;;-1:-1:-1;6302:66:112;-1:-1:-1;;;;;;6386:29:112;;;;;:58;;-1:-1:-1;16952:13:112;;;;6386:58;:91;;;-1:-1:-1;17180:15:112;17169:26;;;;6448:29;6386:91;6382:185;;;6504:48;;-1:-1:-1;;;6504:48:112;;671:14:212;659:27;;6504:48:112;;;641:46:212;614:18;;6504:48:112;497:196:212;6382:185:112;-1:-1:-1;;6580:37:112;;-1:-1:-1;;;;6580:37:112;;;6227:401;6637:33;6656:4;6662:7;6637:18;:33::i;:::-;6114:563;5995:682;;:::o;2347:243:189:-;4158:30:113;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:113;-1:-1:-1;;;4302:15:113;;;4301:16;;4348:14;;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;:16;;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:113;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:113;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:113;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:113;-1:-1:-1;;;5011:22:113;;;4977:67;2443:24:189::1;:22;:24::i;:::-;2477:54;2515:1;2518:12;2477:37;:54::i;:::-;2541:42;1674:26;2567:15;2541:10;:42::i;:::-;;5068:14:113::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:113;;;5140:14;;-1:-1:-1;5852:50:212;;5140:14:113;;5840:2:212;5825:18;5140:14:113;;;;;;;5064:101;4092:1079;;;;;2347:243:189;;:::o;4161:214:114:-;2655:13;:11;:13::i;:::-;4276:36:::1;4294:17;4276;:36::i;:::-;4322:46;4344:17;4363:4;4322:21;:46::i;3708:134::-:0;3777:7;2926:20;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;3708:134:114;:::o;10196:150:112:-;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;10303:36:112::1;10330:8;10303:26;:36::i;12486:145::-:0;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;12590:34:112::1;12615:8;12590:24;:34::i;8482:211::-:0;-1:-1:-1;;;;;;;;;;;8664:22:112;-1:-1:-1;;;;;8664:22:112;;8482:211::o;4400:93::-;4446:7;4472:14;:12;:14::i;:::-;4465:21;;4400:93;:::o;3780:207:110:-;3857:4;3949:14;;;-1:-1:-1;;;;;;;;;;;3949:14:110;;;;;;;;-1:-1:-1;;;;;3949:31:110;;;;;;;;;;;;;;;3780:207::o;9483:368:112:-;-1:-1:-1;;;;;;;;;;;9706:23:112;9548:15;;-1:-1:-1;;;9706:23:112;;;;-1:-1:-1;;;;;;;;;;;16952:13:112;;;;;9747:57;;-1:-1:-1;17180:15:112;17169:26;;;;9775:29;9747:57;9746:98;;9839:1;9842;9746:98;;;9809:15;;;;-1:-1:-1;;;9809:15:112;;;;9826:8;9746:98;9739:105;;;;;9483:368;;:::o;9087:338::-;-1:-1:-1;;;;;;;;;;;9284:23:112;9145:6;;-1:-1:-1;;;;;;;;;;;3245:45:112;-1:-1:-1;;;9284:23:112;;;;16952:13;;;;;9325:56;;-1:-1:-1;17180:15:112;17169:26;;;;9353:28;9324:94;;9403:15;;-1:-1:-1;;;9403:15:112;;;;9324:94;;;9385:15;;;;-1:-1:-1;;;9385:15:112;;;;9324:94;9317:101;;;;9087:338;:::o;11244:344::-;11308:23;11337:21;:19;:21::i;:::-;-1:-1:-1;11307:51:112;-1:-1:-1;966:10:118;-1:-1:-1;;;;;11372:31:112;;;11368:175;;11486:46;;-1:-1:-1;;;11486:46:112;;966:10:118;11486:46:112;;;3969:51:212;3942:18;;11486:46:112;3823:203:212;11368:175:112;11552:29;:27;:29::i;8751:278::-;-1:-1:-1;;;;;;;;;;;8967:22:112;-1:-1:-1;;;;;8967:22:112;;;-1:-1:-1;;;8991:30:112;;;;;;8751:278::o;5032:::-;5163:4;5159:104;;5212:40;;-1:-1:-1;;;5212:40:112;;;;;;;;;;;5159:104;5272:31;5289:4;5295:7;5272:16;:31::i;10819:128::-;2443:4:110;3272:16;2443:4;3272:10;:16::i;:::-;10911:29:112::1;:27;:29::i;4146:219::-:0;4231:4;-1:-1:-1;;;;;;4254:64:112;;-1:-1:-1;;;4254:64:112;;:104;;;4322:36;4346:11;4322:23;:36::i;4196:103:110:-;4262:30;4273:4;966:10:118;4262::110;:30::i;13355:94:112:-;13420:22;13437:1;13440;13420:16;:22::i;:::-;13355:94::o;1219:160:147:-;1328:43;;-1:-1:-1;;;;;6105:32:212;;;1328:43:147;;;6087:51:212;6154:18;;;6147:34;;;1301:71:147;;1321:5;;1343:14;;;;;6060:18:212;;1328:43:147;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:43:147;;;;;;;;;;;1301:19;:71::i;1618:188::-;1745:53;;-1:-1:-1;;;;;6450:15:212;;;1745:53:147;;;6432:34:212;6502:15;;;6482:18;;;6475:43;6534:18;;;6527:34;;;1718:81:147;;1738:5;;1760:18;;;;;6367::212;;1745:53:147;6192:375:212;1718:81:147;1618:188;;;;:::o;5294:136:110:-;5368:18;5381:4;5368:12;:18::i;:::-;3272:16;3283:4;3272:10;:16::i;:::-;5398:25:::1;5409:4;5415:7;5398:10;:25::i;6396:245::-:0;-1:-1:-1;;;;;6489:34:110;;966:10:118;6489:34:110;6485:102;;6546:30;;-1:-1:-1;;;6546:30:110;;;;;;;;;;;6485:102;6597:37;6609:4;6615:18;6597:11;:37::i;9071:205:113:-;9129:30;;3147:66;9186:27;8819:122;2970:67:114;6929:20:113;:18;:20::i;3416:222:112:-;6929:20:113;:18;:20::i;:::-;3549:82:112::1;3597:12;3611:19;3549:47;:82::i;7105:475::-:0;7191:4;-1:-1:-1;;;;;;;;;;;7314:4:112;7310:216;;7386:1;7360:14;:12;:14::i;:::-;-1:-1:-1;;;;;7360:28:112;;7356:114;;7415:40;;-1:-1:-1;;;7415:40:112;;;;;;;;;;;7356:114;7483:22;;;:32;;-1:-1:-1;;;;;;7483:32:112;-1:-1:-1;;;;;7483:32:112;;;;;7310:216;7542:31;7559:4;7565:7;7542:16;:31::i;:::-;7535:38;7105:475;-1:-1:-1;;;;7105:475:112:o;4578:312:114:-;4658:4;-1:-1:-1;;;;;4667:6:114;4650:23;;;:120;;;4764:6;-1:-1:-1;;;;;4728:42:114;:32;-1:-1:-1;;;;;;;;;;;1519:53:137;-1:-1:-1;;;;;1519:53:137;;1441:138;4728:32:114;-1:-1:-1;;;;;4728:42:114;;;4650:120;4633:251;;;4844:29;;-1:-1:-1;;;4844:29:114;;;;;;;;;;;7290:98:189;1674:26;3272:16:110;3283:4;3272:10;:16::i;6032:538:114:-;6149:17;-1:-1:-1;;;;;6131:50:114;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6131:52:114;;;;;;;;-1:-1:-1;;6131:52:114;;;;;;;;;;;;:::i;:::-;;;6127:437;;6493:60;;-1:-1:-1;;;6493:60:114;;-1:-1:-1;;;;;3987:32:212;;6493:60:114;;;3969:51:212;3942:18;;6493:60:114;3823:203:212;6127:437:114;-1:-1:-1;;;;;;;;;;;6225:40:114;;6221:120;;6292:34;;-1:-1:-1;;;6292:34:114;;;;;1466:25:212;;;1439:18;;6292:34:114;1320:177:212;6221:120:114;6354:54;6384:17;6403:4;6354:29;:54::i;5007:213::-;5081:4;-1:-1:-1;;;;;5090:6:114;5073:23;;5069:145;;5174:29;;-1:-1:-1;;;5174:29:114;;;;;;;;;;;10473:288:112;10554:18;10612:19;:17;:19::i;:::-;10575:34;10593:15;10575:17;:34::i;:::-;:56;;;;:::i;:::-;10554:77;;10641:46;10665:8;10675:11;10641:23;:46::i;:::-;10702:52;;671:14:212;659:27;;641:46;;-1:-1:-1;;;;;10702:52:112;;;;;629:2:212;614:18;10702:52:112;;;;;;;10544:217;10473:288;:::o;12756:::-;12834:18;12892:26;12909:8;12892:16;:26::i;:::-;12855:34;12873:15;12855:17;:34::i;:::-;:63;;;;:::i;:::-;12834:84;;12928:39;12945:8;12955:11;12928:16;:39::i;:::-;12982:55;;;4211:14:212;4252:15;;;4234:34;;4304:15;;4299:2;4284:18;;4277:43;12982:55:112;;4174:18:212;12982:55:112;;;;;;;12824:220;12756:288;:::o;11716:581::-;-1:-1:-1;;;;;;;;;;;11782:47:112;;11923:21;:19;:21::i;:::-;11885:59;;;;11959:24;11974:8;16952:13;;;;;16866:106;11959:24;11958:25;:58;;;-1:-1:-1;17180:15:112;17169:26;;;;11987:29;11958:58;11954:144;;;12039:48;;-1:-1:-1;;;12039:48:112;;671:14:212;659:27;;12039:48:112;;;641:46:212;614:18;;12039:48:112;497:196:212;11954:144:112;12107:47;2443:4:110;12139:14:112;:12;:14::i;:::-;12107:11;:47::i;:::-;-1:-1:-1;12164:40:112;2443:4:110;12195:8:112;12164:10;:40::i;:::-;-1:-1:-1;;12214:29:112;;-1:-1:-1;;;;;;12253:37:112;;;;-1:-1:-1;11716:581:112:o;5710:138:110:-;5785:18;5798:4;5785:12;:18::i;:::-;3272:16;3283:4;3272:10;:16::i;:::-;5815:26:::1;5827:4;5833:7;5815:11;:26::i;11075:111:112:-:0;11141:38;11173:1;11177;11141:23;:38::i;3491:202:110:-;3576:4;-1:-1:-1;;;;;;3599:47:110;;-1:-1:-1;;;3599:47:110;;:87;;-1:-1:-1;;;;;;;;;;1101:40:122;;;3650:36:110;1002:146:122;4429:197:110;4517:22;4525:4;4531:7;4517;:22::i;:::-;4512:108;;4562:47;;-1:-1:-1;;;4562:47:110;;-1:-1:-1;;;;;6105:32:212;;4562:47:110;;;6087:51:212;6154:18;;;6147:34;;;6060:18;;4562:47:110;5913:274:212;16023:698:112;-1:-1:-1;;;;;;;;;;;16228:23:112;-1:-1:-1;;;;;;;;;;;3245:45:112;-1:-1:-1;;;16228:23:112;;;;16952:13;;16262:369;;17180:15;17169:26;;;;16309:312;;;16429:15;;;;16411:33;;-1:-1:-1;;;;;16411:33:112;-1:-1:-1;;;16429:15:112;;;;;-1:-1:-1;;;16411:33:112;;;;16309:312;;;16573:33;;;;;;;16309:312;-1:-1:-1;16641:15:112;;:26;;-1:-1:-1;;;;;16677:37:112;-1:-1:-1;;;16641:26:112;;;;;-1:-1:-1;;;;;16677:37:112;;-1:-1:-1;;;16677:37:112;;;;;;;;;;;;;;16023:698::o;8370:720:147:-;8450:18;8478:19;8616:4;8613:1;8606:4;8600:11;8593:4;8587;8583:15;8580:1;8573:5;8566;8561:60;8673:7;8663:176;;8717:4;8711:11;8762:16;8759:1;8754:3;8739:40;8808:16;8803:3;8796:29;8663:176;-1:-1:-1;;8916:1:147;8910:8;8866:16;;-1:-1:-1;8942:15:147;;:68;;8994:11;9009:1;8994:16;;8942:68;;;-1:-1:-1;;;;;8960:26:147;;;:31;8942:68;8938:146;;;9033:40;;-1:-1:-1;;;9033:40:147;;-1:-1:-1;;;;;3987:32:212;;9033:40:147;;;3969:51:212;3942:18;;9033:40:147;3823:203:212;7631:376:112;7718:4;-1:-1:-1;;;;;;;;;;;7841:26:112;;:55;;;;;7882:14;:12;:14::i;:::-;-1:-1:-1;;;;;7871:25:112;:7;-1:-1:-1;;;;;7871:25:112;;7841:55;7837:115;;;7919:22;;;7912:29;;-1:-1:-1;;;;;;7912:29:112;;;7837:115;7968:32;7986:4;7992:7;7968:17;:32::i;7082:141:113:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:113;;;;;;;;;;;3644:468:112;6929:20:113;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;3894:33:112;::::1;3890:115;;3950:44;::::0;-1:-1:-1;;;3950:44:112;;3991:1:::1;3950:44;::::0;::::1;3969:51:212::0;3942:18;;3950:44:112::1;3823:203:212::0;3890:115:112::1;4014:30:::0;;-1:-1:-1;;;;;4014:30:112::1;-1:-1:-1::0;;;4014:30:112::1;::::0;::::1;;;::::0;;4054:51:::1;-1:-1:-1::0;4085:19:112;4054:10:::1;:51::i;7318:387:110:-:0;7395:4;-1:-1:-1;;;;;;;;;;;7485:22:110;7493:4;7499:7;7485;:22::i;:::-;7480:219;;7523:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7523:31:110;;;;;;;;;:38;;-1:-1:-1;;7523:38:110;7557:4;7523:38;;;7607:12;966:10:118;;887:96;7607:12:110;-1:-1:-1;;;;;7580:40:110;7598:7;-1:-1:-1;;;;;7580:40:110;7592:4;7580:40;;;;;;;;;;7641:4;7634:11;;;;;7480:219;7683:5;7676:12;;;;;7480:219;7401:304;7318:387;;;;:::o;2264:344:137:-;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:137;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;2454:148::-;2573:18;:16;:18::i;14296:213:161:-;14352:6;14382:16;14374:24;;14370:103;;;14421:41;;-1:-1:-1;;;14421:41:161;;14452:2;14421:41;;;7534:36:212;7586:18;;;7579:34;;;7507:18;;14421:41:161;7353:266:212;14370:103:161;-1:-1:-1;14496:5:161;14296:213::o;15237:632:112:-;-1:-1:-1;;;;;;;;;;;15326:47:112;15454:21;:19;:21::i;:::-;15486:33;;15529:44;;;-1:-1:-1;;;15529:44:112;-1:-1:-1;;;;;;15529:44:112;;;-1:-1:-1;;;;;15486:33:112;;15529:44;;;;15429:46;-1:-1:-1;15685:27:112;;-1:-1:-1;15429:46:112;16952:13;;;;;16866:106;15685:27;15681:182;;;15822:30;;;;;;;15316:553;;15237:632;;:::o;13796:1249::-;13870:6;13888:19;13910;:17;:19::i;:::-;13888:41;;14859:12;14848:23;;:8;:23;;;:190;;15015:23;15030:8;15015:12;:23;:::i;:::-;14848:190;;;14897:51;;;;10004:6;14897:8;:51::i;:::-;14829:209;13796:1249;-1:-1:-1;;;13796:1249:112:o;7942:388:110:-;8020:4;-1:-1:-1;;;;;;;;;;;8109:22:110;8117:4;8123:7;8109;:22::i;:::-;8105:219;;;8181:5;8147:14;;;;;;;;;;;-1:-1:-1;;;;;8147:31:110;;;;;;;;;;:39;;-1:-1:-1;;8147:39:110;;;8205:40;966:10:118;;8147:14:110;;8205:40;;8181:5;8205:40;8266:4;8259:11;;;;;8485:120:113;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:113;;;;;;-1:-1:-1;8485:120:113:o;1671:281:137:-;1748:17;-1:-1:-1;;;;;1748:29:137;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:137;;-1:-1:-1;;;;;3987:32:212;;1805:47:137;;;3969:51:212;3942:18;;1805:47:137;3823:203:212;1744:119:137;-1:-1:-1;;;;;;;;;;;1872:73:137;;-1:-1:-1;;;;;;1872:73:137;-1:-1:-1;;;;;1872:73:137;;;;;;;;;;1671:281::o;3916:253:148:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:148;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;:::-;4100:62;3916:253;-1:-1:-1;;;;;3916:253:148:o;6113:122:137:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:137;;;;;;;;;;;5617:111:160;5675:7;5312:5;;;5709;;;5311:36;5306:42;;5701:20;5071:294;4437:582:148;4581:12;4610:7;4605:408;;4633:19;4641:10;4633:7;:19::i;4605:408::-;4857:17;;:22;:49;;;;-1:-1:-1;;;;;;4883:18:148;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:148;;-1:-1:-1;;;;;3987:32:212;;4933:24:148;;;3969:51:212;3942:18;;4933:24:148;3823:203:212;5559:434:148;5690:17;;:21;5686:301;;5894:10;5888:17;5881:4;5869:10;5865:21;5858:48;5686:301;5957:19;;-1:-1:-1;;;5957:19:148;;;;;;;;;;;14:286:212;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:212;;209:43;;199:71;;266:1;263;256:12;698:173;766:20;;-1:-1:-1;;;;;815:31:212;;805:42;;795:70;;861:1;858;851:12;795:70;698:173;;;:::o;876:254::-;944:6;952;1005:2;993:9;984:7;980:23;976:32;973:52;;;1021:1;1018;1011:12;973:52;1044:29;1063:9;1044:29;:::i;:::-;1034:39;1120:2;1105:18;;;;1092:32;;-1:-1:-1;;;876:254:212:o;1135:180::-;1194:6;1247:2;1235:9;1226:7;1222:23;1218:32;1215:52;;;1263:1;1260;1253:12;1215:52;-1:-1:-1;1286:23:212;;1135:180;-1:-1:-1;1135:180:212:o;1502:254::-;1570:6;1578;1631:2;1619:9;1610:7;1606:23;1602:32;1599:52;;;1647:1;1644;1637:12;1599:52;1683:9;1670:23;1660:33;;1712:38;1746:2;1735:9;1731:18;1712:38;:::i;:::-;1702:48;;1502:254;;;;;:::o;1950:260::-;2018:6;2026;2079:2;2067:9;2058:7;2054:23;2050:32;2047:52;;;2095:1;2092;2085:12;2047:52;2118:29;2137:9;2118:29;:::i;:::-;2108:39;;2166:38;2200:2;2189:9;2185:18;2166:38;:::i;2215:127::-;2276:10;2271:3;2267:20;2264:1;2257:31;2307:4;2304:1;2297:15;2331:4;2328:1;2321:15;2347:995;2424:6;2432;2485:2;2473:9;2464:7;2460:23;2456:32;2453:52;;;2501:1;2498;2491:12;2453:52;2524:29;2543:9;2524:29;:::i;:::-;2514:39;;2604:2;2593:9;2589:18;2576:32;2627:18;2668:2;2660:6;2657:14;2654:34;;;2684:1;2681;2674:12;2654:34;2722:6;2711:9;2707:22;2697:32;;2767:7;2760:4;2756:2;2752:13;2748:27;2738:55;;2789:1;2786;2779:12;2738:55;2825:2;2812:16;2847:2;2843;2840:10;2837:36;;;2853:18;;:::i;:::-;2928:2;2922:9;2896:2;2982:13;;-1:-1:-1;;2978:22:212;;;3002:2;2974:31;2970:40;2958:53;;;3026:18;;;3046:22;;;3023:46;3020:72;;;3072:18;;:::i;:::-;3112:10;3108:2;3101:22;3147:2;3139:6;3132:18;3187:7;3182:2;3177;3173;3169:11;3165:20;3162:33;3159:53;;;3208:1;3205;3198:12;3159:53;3264:2;3259;3255;3251:11;3246:2;3238:6;3234:15;3221:46;3309:1;3304:2;3299;3291:6;3287:15;3283:24;3276:35;3330:6;3320:16;;;;;;;2347:995;;;;;:::o;3347:186::-;3406:6;3459:2;3447:9;3438:7;3434:23;3430:32;3427:52;;;3475:1;3472;3465:12;3427:52;3498:29;3517:9;3498:29;:::i;3538:280::-;3596:6;3649:2;3637:9;3628:7;3624:23;3620:32;3617:52;;;3665:1;3662;3655:12;3617:52;3704:9;3691:23;3754:14;3747:5;3743:26;3736:5;3733:37;3723:65;;3784:1;3781;3774:12;4331:250;4416:1;4426:113;4440:6;4437:1;4434:13;4426:113;;;4516:11;;;4510:18;4497:11;;;4490:39;4462:2;4455:10;4426:113;;;-1:-1:-1;;4573:1:212;4555:16;;4548:27;4331:250::o;4586:396::-;4735:2;4724:9;4717:21;4698:4;4767:6;4761:13;4810:6;4805:2;4794:9;4790:18;4783:34;4826:79;4898:6;4893:2;4882:9;4878:18;4873:2;4865:6;4861:15;4826:79;:::i;:::-;4966:2;4945:15;-1:-1:-1;;4941:29:212;4926:45;;;;4973:2;4922:54;;4586:396;-1:-1:-1;;4586:396:212:o;6572:184::-;6642:6;6695:2;6683:9;6674:7;6670:23;6666:32;6663:52;;;6711:1;6708;6701:12;6663:52;-1:-1:-1;6734:16:212;;6572:184;-1:-1:-1;6572:184:212:o;6761:127::-;6822:10;6817:3;6813:20;6810:1;6803:31;6853:4;6850:1;6843:15;6877:4;6874:1;6867:15;6893:176;6960:14;6994:10;;;7006;;;6990:27;;7029:11;;;7026:37;;;7043:18;;:::i;7624:179::-;7692:14;7739:10;;;7727;;;7723:27;;7762:12;;;7759:38;;;7777:18;;:::i;7808:287::-;7937:3;7975:6;7969:13;7991:66;8050:6;8045:3;8038:4;8030:6;8026:17;7991:66;:::i;:::-;8073:16;;;;;7808:287;-1:-1:-1;;7808:287:212:o","linkReferences":{},"immutableReferences":{"68763":[{"start":3522,"length":32},{"start":3563,"length":32},{"start":3916,"length":32}],"87572":[{"start":1171,"length":32},{"start":1569,"length":32},{"start":1806,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","RLC_TOKEN()":"b25dd572","TOKEN_BRIDGE_ROLE()":"a94ea30c","UPGRADER_ROLE()":"f72c0d8b","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","acceptDefaultAdminTransfer()":"cefc1429","beginDefaultAdminTransfer(address)":"634e93da","cancelDefaultAdminTransfer()":"d602b9fd","changeDefaultAdminDelay(uint48)":"649a5ec7","crosschainBurn(address,uint256)":"2b8c49e3","crosschainMint(address,uint256)":"18bf5077","decimals()":"313ce567","defaultAdmin()":"84ef8ffc","defaultAdminDelay()":"cc8463c8","defaultAdminDelayIncreaseWait()":"022d63fb","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,address)":"485cc955","owner()":"8da5cb5b","pendingDefaultAdmin()":"cf6eefb7","pendingDefaultAdminDelay()":"a1eda53c","proxiableUUID()":"52d1902d","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rollbackDefaultAdminDelay()":"0aa6220b","supportsInterface(bytes4)":"01ffc9a7","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rlcToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"ERC7802InvalidFromAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"ERC7802InvalidToAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"CrosschainBurn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"CrosschainMint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RLC_TOKEN\",\"outputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_BRIDGE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"crosschainBurn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"crosschainMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAdmin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialUpgrader\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract facilitates cross-chain liquidity unification by allowing the minting and burning of tokens on the RLC token contract. All bridges should interact with this contract to perform RLC transfers. The implementation is inspired by the OpenZeppelin ERC20Bridgeable contract without being an ERC20 token itself. Functions are overridden to lock/unlock tokens on an external ERC20 contract. ERC20Bridgeable is not used directly because it embarks the ERC20 token logic, which is not needed here.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"ERC7802InvalidFromAddress(address)\":[{\"details\":\"Error indicating that the provided 'from' address is invalid for ERC-7802 operations.\",\"params\":{\"addr\":\"The invalid address.\"}}],\"ERC7802InvalidToAddress(address)\":[{\"details\":\"Error indicating that the provided 'to' address is invalid for ERC-7802 operations.\",\"params\":{\"addr\":\"The invalid address.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"CrosschainBurn(address,uint256,address)\":{\"params\":{\"amount\":\"Amount of tokens burned.\",\"from\":\"Address of the account tokens are being burned from.\",\"sender\":\"Address of the caller (msg.sender) who invoked crosschainBurn.\"}},\"CrosschainMint(address,uint256,address)\":{\"params\":{\"amount\":\"Amount of tokens minted.\",\"sender\":\"Address of the caller (msg.sender) who invoked crosschainMint.\",\"to\":\"Address of the account tokens are being minted for.\"}},\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"crosschainBurn(address,uint256)\":{\"custom:security\":\"Only authorized bridge contracts can call this function\",\"details\":\"See {IERC7802-crosschainBurn}. Locks RLC tokens by transferring them from the sender to this contract's reserve. This function is called when tokens are being sent to another chain via the bridge. Emits a {CrosschainBurn} event indicating tokens were locked for cross-chain transfer. Cross-chain flow: 1. The user approves this contract to spend RLC tokens on their behalf. 2. The user initiates a cross-chain transfer through the bridge. 3. The bridge calls this function to lock tokens on the source chain. 4. Tokens are transferred from the sender's account to this contract (locked). Requirements: - Caller must have TOKEN_BRIDGE_ROLE (typically the LayerZero bridge contract) - `from` address must have approved this contract to spend at least `value` tokens - `from` address must have sufficient RLC token balance\",\"params\":{\"from\":\"The address to lock RLC tokens from (must have approved this contract)\",\"value\":\"The amount of RLC tokens to lock in this contract\"}},\"crosschainMint(address,uint256)\":{\"custom:security\":\"Only authorized bridge contracts can call this function\",\"details\":\"See {IERC7802-crosschainMint}. Unlocks RLC tokens from this contract's balance and transfers them to the recipient. This function is called when tokens are being received from another chain via the bridge. Emits a {CrosschainMint} event indicating tokens were unlocked for cross-chain transfer. Cross-chain flow: 1. Tokens are burned/locked on the source chain. 2. The bridge calls this function to unlock the equivalent tokens amount on the destination chain. 3. Tokens are transferred from this contract's balance to the recipient. Requirements: - Caller must have TOKEN_BRIDGE_ROLE (typically the LayerZero bridge contract) - Contract must have sufficient RLC token balance to fulfill the transfer - `to` address must be valid (non-zero)\",\"params\":{\"to\":\"The address to receive the unlocked RLC tokens\",\"value\":\"The amount of RLC tokens to unlock and transfer\"}},\"decimals()\":{\"custom:bridge-compatibility\":\"Required by LayerZero OFT standard\",\"details\":\"This function provides LayerZero bridge compatibility by exposing the decimal precision of the underlying RLC token. LayerZero's OFT (Omnichain Fungible Token) standard requires this information to properly handle token amounts across different chains with potentially different decimal representations.\",\"returns\":{\"_0\":\"The decimal places of the RLC token (typically 9 for RLC)\"}},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address,address)\":{\"params\":{\"initialAdmin\":\"address of the admin wallet\",\"initialUpgrader\":\"address of the upgrader wallet\"}},\"owner()\":{\"details\":\"Gets the address of the owner.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"RLC_TOKEN\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"events\":{\"CrosschainBurn(address,uint256,address)\":{\"notice\":\"Emitted when a crosschain transfer burns tokens.\"},\"CrosschainMint(address,uint256,address)\":{\"notice\":\"Emitted when a crosschain transfer mints tokens.\"}},\"kind\":\"user\",\"methods\":{\"decimals()\":{\"notice\":\"Returns the number of decimal places used by the underlying RLC token\"},\"initialize(address,address)\":{\"notice\":\"Initializes the contract with the given parameters.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/RLCLiquidityUnifier.sol\":\"RLCLiquidityUnifier\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@createx/contracts/=lib/createx/src/\",\":@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/\",\":@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/\",\":@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/\",\":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/\",\":@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/\",\":@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/\",\":@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":createx/=lib/createx/src/\",\":devtools/=lib/devtools/packages/toolbox-foundry/src/\",\":ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":layerzero-v1/=lib/layerzero-v1/contracts/\",\":layerzero-v2/=lib/layerzero-v2/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/\",\":rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/\",\":solady/=lib/createx/lib/solady/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xca0f8798297e39106cad374524780916b7ea20033641df3a9102aae253099aeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77d5c809873db24e02fc288ad506087853911f5daf0fb27e499333b4e75e3af1\",\"dweb:/ipfs/QmWNqoEj7NH3neSNNfoHwXfynrGqJu5JsvMfHe8fZB7isR\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol\":{\"keccak256\":\"0x583c53a3869e33f3a315d4160e45f29b339411af57e7648d27a9669cfd231e71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9102a3358b3b6c79fdabc6ab8eb7357bc959a25d62d47102e3886e9dc5222859\",\"dweb:/ipfs/QmUbJ22o7QHbWK7fyywxssPghJ8qa6MSCX8tmySusPGAp2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec\",\"dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x2f0ea26703f46fc430ad9202a63f07521d234b9a94a1a7b019f4973bed7a35a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ccf228512ceb777b145d339b50b8b6a72393140cdd61bcb7bf842a89230e4fe7\",\"dweb:/ipfs/QmeWaUw193GDphNkPhJnpHQpfJBrv4v2QRbfGTdfYNTiEE\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x5643a5cadd1278581308b20becb48a50946c159fc31c29fc407ea9a61fc865d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d79f305a239207a24fa2174897c8ea8ff1e81cb790d440fd54c89a0e85f63e\",\"dweb:/ipfs/QmT847eeAMnRN3DaG1zsKNMn7qipNAidqv1REnKexPkrfA\"]},\"lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x6bcb2fcfabb3cac0f5fdae3d2ed6e385465940fd47f8e8e6a1f8ff6f0cfb2f49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f6bb73761e518e4a9f91051a52baf711fa2d051694c24a2568df6f12ea5c032\",\"dweb:/ipfs/QmWjvqi5f8MFoLVSSrtVgKGNrRTR9VwQf4yBjEPrZFbh5y\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xc15298eb2b9ba5e18a8c9d12f93ad17a3e162a5c1d9b85f54c8adb5827b0d4da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f3c3d8f81d2daf1231890a6a2f897be365d6a479b53dcd52ec2527b5d3faf41\",\"dweb:/ipfs/QmeNdkd6u4at9pd2GAyyqxzrVGGvxfLpGmAKnFoYM5ya2e\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x81b022028c39007cce9920c394b9cddd1cb9f3a1c0398f254b4a6492df92ad2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0b61b8a5c69b4df993c3d6f94c174ab293aa8698d149bce7be2d88f82929beb\",\"dweb:/ipfs/QmbtacmB1k8ginfrHvAJpjVeqnjYGfXYrkXmMPYEb83z4t\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x4baab1fac32bbb35f8fff58bfa766d5cdf46d2b3f9e0a9c019669516375b2e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5086df4eb774143759240d88b0a27398cb5287ad20cc3dd0b7efffd9392490d8\",\"dweb:/ipfs/QmXjnRum2SUpPWDYCGRJ19unmF59L9LZaCY8aL3KTNYLLu\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xb5d81383d40f4006d1ce4bbad0064e7a930e17302cbe2a745e09cb403f042733\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fc4a5681c2f00f41f49260a36ae6bbe1121dd93d470ea24d51d556eff2980be\",\"dweb:/ipfs/QmUBW6TwVWtGP96ka9TfuGivd27kH8CtkXD8RQAAecSFiR\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0xcd7427e60cd143d0b9f819f4a23912e4029fe83b6548a194e70f4007a86ecc2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98b14ac384b4a47c276d22dd8d99c85c87280f41fd36b10e87489187a8d55c66\",\"dweb:/ipfs/QmTa3JrEi4ASMZ5gHN8XfQPFHubJNx6j3re7qYWmUMKDqi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xe5295ec6d987e3b73b7078e787dac664a50f5965d6d65c16c2399cc3a1aaaabf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e282e632c6bf23a0862e3e6558356ce7142971f00a401c29de279df9029f2973\",\"dweb:/ipfs/QmbPEWi9yA35ZD13ZxL81JfAiqDwTk7xM7NPvUQCbkhmbY\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol\":{\"keccak256\":\"0x6b124f06f18f780a257d7bc622fb5678ffc380bc4d6c0b4e1d096223a2668096\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27c82df9020aa9839c80a98f565edb3408a9d1d988b26bc4cbeb547735f3ecdf\",\"dweb:/ipfs/QmY6xS6CzS5vTtx82V7Kfk3tqwgSdpx6LXyPCFFRtWiTwZ\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x03f5d1fcbf36a510aa90080cda37805aa22bc3525bf038742683c8b6ea1b8566\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43fbc77da90094d6dd9660248d60bf8c486ba4f86c717048c70d80891ecdf50f\",\"dweb:/ipfs/QmaWXadWeFuWs1QrAzJqzTdmUaXpM7YD1tQXLGx4mW3vUo\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x77ec7f971392aad4657542c952ccb88d8bd05090645bb282c3d8bfa9b1662781\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58c5b2f3961e6ee017a68cc94c8c2949b6bade20c3b2170cc25cafe66fc5924b\",\"dweb:/ipfs/QmacAUjdb1RtFjwVVzsJX5wvQTMsPsY9mKeaB93VRu3TSX\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xfe37358f223eddd65d61bb62b0b7bdb69d7101b5ec8d484292b8c1583a153b8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28dd43f30af3c12ae0fc08dd031b1250e906ef3c95f63f30fac6fd15aee2a662\",\"dweb:/ipfs/QmUkSyWsSRx36w1ti7U6qnGnQgJq16wpMhjeJrnyn9AXwG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xbaffa0bcc92adf28a53cc3b68551fc3632cb8f849a0028cb8d5c06e4677715e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32e6f8f6b2e883c85e6a602c0882d9962ce2f92406961244e86cd974df815912\",\"dweb:/ipfs/Qmahvx6fPpecicq1aUE1JihCxV5ep1bfuPukzrxa8Ub5PS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x06871a0948d0fed9316ae59ee4368527e144911f5e284755312b5bfcde8b27ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c30e46d061d8a450c561935a1236b1885aa76ffab93a19b26dcb8868c839843\",\"dweb:/ipfs/QmZbWbeDyixTyYkVtJvuiQYfkQz12pS7zxWZF3Ju9PYwGH\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4ee0e04cc52827588793a141d5efb9830f179a17e80867cc332b3a30ceb30fd9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17d8f47fce493b34099ed9005c5aee3012488f063cfe1c34ed8f9e6fc3d576e5\",\"dweb:/ipfs/QmZco2GbZZhEMvG3BovyoGMAFKvfi2LhfNGQLn283LPrXf\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"src/RLCLiquidityUnifier.sol\":{\"keccak256\":\"0x331104f0912e63e8b620f4fe3789df0df78ebe05c0db8b263d3c580c7f769ef2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://75b4b2cd30e47c9ef2860224941239c666194490f97c493dcd16a2e4ce27cdbc\",\"dweb:/ipfs/QmZpNkS1TMYDPVFvodyBrwMhMRLfa2oz3BFNi9WiNHw9yD\"]},\"src/interfaces/IRLCLiquidityUnifier.sol\":{\"keccak256\":\"0x4898c431b37bef3f4792707fcacfb28f8c5ae348fa959495a2e64ff203ce4522\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b859d6efd0a6729a216ed8d6f579982c8098a419183abd6bbef14b738ccdd93a\",\"dweb:/ipfs/QmfPojN6ynQABbYY9RZFDdaMLemZwT6JH1e6EQuQ3DF7uC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rlcToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"type":"error","name":"AccessControlEnforcedDefaultAdminDelay"},{"inputs":[],"type":"error","name":"AccessControlEnforcedDefaultAdminRules"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"type":"error","name":"AccessControlInvalidDefaultAdmin"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"ERC7802InvalidFromAddress"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"type":"error","name":"ERC7802InvalidToAddress"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"CrosschainBurn","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"CrosschainMint","anonymous":false},{"inputs":[],"type":"event","name":"DefaultAdminDelayChangeCanceled","anonymous":false},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48","indexed":false},{"internalType":"uint48","name":"effectSchedule","type":"uint48","indexed":false}],"type":"event","name":"DefaultAdminDelayChangeScheduled","anonymous":false},{"inputs":[],"type":"event","name":"DefaultAdminTransferCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address","indexed":true},{"internalType":"uint48","name":"acceptSchedule","type":"uint48","indexed":false}],"type":"event","name":"DefaultAdminTransferScheduled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RLC_TOKEN","outputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_BRIDGE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptDefaultAdminTransfer"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"beginDefaultAdminTransfer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelDefaultAdminTransfer"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"changeDefaultAdminDelay"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"crosschainBurn"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"crosschainMint"},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"initialAdmin","type":"address"},{"internalType":"address","name":"initialUpgrader","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"schedule","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"schedule","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"rollbackDefaultAdminDelay"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"acceptDefaultAdminTransfer()":{"details":"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed."},"beginDefaultAdminTransfer(address)":{"details":"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event."},"cancelDefaultAdminTransfer()":{"details":"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event."},"changeDefaultAdminDelay(uint48)":{"details":"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"crosschainBurn(address,uint256)":{"custom:security":"Only authorized bridge contracts can call this function","details":"See {IERC7802-crosschainBurn}. Locks RLC tokens by transferring them from the sender to this contract's reserve. This function is called when tokens are being sent to another chain via the bridge. Emits a {CrosschainBurn} event indicating tokens were locked for cross-chain transfer. Cross-chain flow: 1. The user approves this contract to spend RLC tokens on their behalf. 2. The user initiates a cross-chain transfer through the bridge. 3. The bridge calls this function to lock tokens on the source chain. 4. Tokens are transferred from the sender's account to this contract (locked). Requirements: - Caller must have TOKEN_BRIDGE_ROLE (typically the LayerZero bridge contract) - `from` address must have approved this contract to spend at least `value` tokens - `from` address must have sufficient RLC token balance","params":{"from":"The address to lock RLC tokens from (must have approved this contract)","value":"The amount of RLC tokens to lock in this contract"}},"crosschainMint(address,uint256)":{"custom:security":"Only authorized bridge contracts can call this function","details":"See {IERC7802-crosschainMint}. Unlocks RLC tokens from this contract's balance and transfers them to the recipient. This function is called when tokens are being received from another chain via the bridge. Emits a {CrosschainMint} event indicating tokens were unlocked for cross-chain transfer. Cross-chain flow: 1. Tokens are burned/locked on the source chain. 2. The bridge calls this function to unlock the equivalent tokens amount on the destination chain. 3. Tokens are transferred from this contract's balance to the recipient. Requirements: - Caller must have TOKEN_BRIDGE_ROLE (typically the LayerZero bridge contract) - Contract must have sufficient RLC token balance to fulfill the transfer - `to` address must be valid (non-zero)","params":{"to":"The address to receive the unlocked RLC tokens","value":"The amount of RLC tokens to unlock and transfer"}},"decimals()":{"custom:bridge-compatibility":"Required by LayerZero OFT standard","details":"This function provides LayerZero bridge compatibility by exposing the decimal precision of the underlying RLC token. LayerZero's OFT (Omnichain Fungible Token) standard requires this information to properly handle token amounts across different chains with potentially different decimal representations.","returns":{"_0":"The decimal places of the RLC token (typically 9 for RLC)"}},"defaultAdmin()":{"details":"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder."},"defaultAdminDelay()":{"details":"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}."},"defaultAdminDelayIncreaseWait()":{"details":"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds)."},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address,address)":{"params":{"initialAdmin":"address of the admin wallet","initialUpgrader":"address of the upgrader wallet"}},"owner()":{"details":"Gets the address of the owner."},"pendingDefaultAdmin()":{"details":"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced."},"pendingDefaultAdminDelay()":{"details":"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceRole(bytes32,address)":{"details":"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role."},"revokeRole(bytes32,address)":{"details":"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`."},"rollbackDefaultAdminDelay()":{"details":"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"decimals()":{"notice":"Returns the number of decimal places used by the underlying RLC token"},"initialize(address,address)":{"notice":"Initializes the contract with the given parameters."}},"version":1}},"settings":{"remappings":["@createx/contracts/=lib/createx/src/","@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/","@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/","@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/","@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/","@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/","@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","createx/=lib/createx/src/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","layerzero-v1/=lib/layerzero-v1/contracts/","layerzero-v2/=lib/layerzero-v2/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/","rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/","solady/=lib/createx/lib/solady/","solidity-bytes-utils/=lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/RLCLiquidityUnifier.sol":"RLCLiquidityUnifier"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xca0f8798297e39106cad374524780916b7ea20033641df3a9102aae253099aeb","urls":["bzz-raw://77d5c809873db24e02fc288ad506087853911f5daf0fb27e499333b4e75e3af1","dweb:/ipfs/QmWNqoEj7NH3neSNNfoHwXfynrGqJu5JsvMfHe8fZB7isR"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol":{"keccak256":"0x583c53a3869e33f3a315d4160e45f29b339411af57e7648d27a9669cfd231e71","urls":["bzz-raw://9102a3358b3b6c79fdabc6ab8eb7357bc959a25d62d47102e3886e9dc5222859","dweb:/ipfs/QmUbJ22o7QHbWK7fyywxssPghJ8qa6MSCX8tmySusPGAp2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63","urls":["bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec","dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x2f0ea26703f46fc430ad9202a63f07521d234b9a94a1a7b019f4973bed7a35a0","urls":["bzz-raw://ccf228512ceb777b145d339b50b8b6a72393140cdd61bcb7bf842a89230e4fe7","dweb:/ipfs/QmeWaUw193GDphNkPhJnpHQpfJBrv4v2QRbfGTdfYNTiEE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x5643a5cadd1278581308b20becb48a50946c159fc31c29fc407ea9a61fc865d1","urls":["bzz-raw://c7d79f305a239207a24fa2174897c8ea8ff1e81cb790d440fd54c89a0e85f63e","dweb:/ipfs/QmT847eeAMnRN3DaG1zsKNMn7qipNAidqv1REnKexPkrfA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sol":{"keccak256":"0x6bcb2fcfabb3cac0f5fdae3d2ed6e385465940fd47f8e8e6a1f8ff6f0cfb2f49","urls":["bzz-raw://1f6bb73761e518e4a9f91051a52baf711fa2d051694c24a2568df6f12ea5c032","dweb:/ipfs/QmWjvqi5f8MFoLVSSrtVgKGNrRTR9VwQf4yBjEPrZFbh5y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0xc15298eb2b9ba5e18a8c9d12f93ad17a3e162a5c1d9b85f54c8adb5827b0d4da","urls":["bzz-raw://1f3c3d8f81d2daf1231890a6a2f897be365d6a479b53dcd52ec2527b5d3faf41","dweb:/ipfs/QmeNdkd6u4at9pd2GAyyqxzrVGGvxfLpGmAKnFoYM5ya2e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x81b022028c39007cce9920c394b9cddd1cb9f3a1c0398f254b4a6492df92ad2b","urls":["bzz-raw://e0b61b8a5c69b4df993c3d6f94c174ab293aa8698d149bce7be2d88f82929beb","dweb:/ipfs/QmbtacmB1k8ginfrHvAJpjVeqnjYGfXYrkXmMPYEb83z4t"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x4baab1fac32bbb35f8fff58bfa766d5cdf46d2b3f9e0a9c019669516375b2e11","urls":["bzz-raw://5086df4eb774143759240d88b0a27398cb5287ad20cc3dd0b7efffd9392490d8","dweb:/ipfs/QmXjnRum2SUpPWDYCGRJ19unmF59L9LZaCY8aL3KTNYLLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xb5d81383d40f4006d1ce4bbad0064e7a930e17302cbe2a745e09cb403f042733","urls":["bzz-raw://3fc4a5681c2f00f41f49260a36ae6bbe1121dd93d470ea24d51d556eff2980be","dweb:/ipfs/QmUBW6TwVWtGP96ka9TfuGivd27kH8CtkXD8RQAAecSFiR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol":{"keccak256":"0xcd7427e60cd143d0b9f819f4a23912e4029fe83b6548a194e70f4007a86ecc2c","urls":["bzz-raw://98b14ac384b4a47c276d22dd8d99c85c87280f41fd36b10e87489187a8d55c66","dweb:/ipfs/QmTa3JrEi4ASMZ5gHN8XfQPFHubJNx6j3re7qYWmUMKDqi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xe5295ec6d987e3b73b7078e787dac664a50f5965d6d65c16c2399cc3a1aaaabf","urls":["bzz-raw://e282e632c6bf23a0862e3e6558356ce7142971f00a401c29de279df9029f2973","dweb:/ipfs/QmbPEWi9yA35ZD13ZxL81JfAiqDwTk7xM7NPvUQCbkhmbY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol":{"keccak256":"0x6b124f06f18f780a257d7bc622fb5678ffc380bc4d6c0b4e1d096223a2668096","urls":["bzz-raw://27c82df9020aa9839c80a98f565edb3408a9d1d988b26bc4cbeb547735f3ecdf","dweb:/ipfs/QmY6xS6CzS5vTtx82V7Kfk3tqwgSdpx6LXyPCFFRtWiTwZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x03f5d1fcbf36a510aa90080cda37805aa22bc3525bf038742683c8b6ea1b8566","urls":["bzz-raw://43fbc77da90094d6dd9660248d60bf8c486ba4f86c717048c70d80891ecdf50f","dweb:/ipfs/QmaWXadWeFuWs1QrAzJqzTdmUaXpM7YD1tQXLGx4mW3vUo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x77ec7f971392aad4657542c952ccb88d8bd05090645bb282c3d8bfa9b1662781","urls":["bzz-raw://58c5b2f3961e6ee017a68cc94c8c2949b6bade20c3b2170cc25cafe66fc5924b","dweb:/ipfs/QmacAUjdb1RtFjwVVzsJX5wvQTMsPsY9mKeaB93VRu3TSX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xfe37358f223eddd65d61bb62b0b7bdb69d7101b5ec8d484292b8c1583a153b8a","urls":["bzz-raw://28dd43f30af3c12ae0fc08dd031b1250e906ef3c95f63f30fac6fd15aee2a662","dweb:/ipfs/QmUkSyWsSRx36w1ti7U6qnGnQgJq16wpMhjeJrnyn9AXwG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xbaffa0bcc92adf28a53cc3b68551fc3632cb8f849a0028cb8d5c06e4677715e9","urls":["bzz-raw://32e6f8f6b2e883c85e6a602c0882d9962ce2f92406961244e86cd974df815912","dweb:/ipfs/Qmahvx6fPpecicq1aUE1JihCxV5ep1bfuPukzrxa8Ub5PS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x06871a0948d0fed9316ae59ee4368527e144911f5e284755312b5bfcde8b27ea","urls":["bzz-raw://3c30e46d061d8a450c561935a1236b1885aa76ffab93a19b26dcb8868c839843","dweb:/ipfs/QmZbWbeDyixTyYkVtJvuiQYfkQz12pS7zxWZF3Ju9PYwGH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4ee0e04cc52827588793a141d5efb9830f179a17e80867cc332b3a30ceb30fd9","urls":["bzz-raw://17d8f47fce493b34099ed9005c5aee3012488f063cfe1c34ed8f9e6fc3d576e5","dweb:/ipfs/QmZco2GbZZhEMvG3BovyoGMAFKvfi2LhfNGQLn283LPrXf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"src/RLCLiquidityUnifier.sol":{"keccak256":"0x331104f0912e63e8b620f4fe3789df0df78ebe05c0db8b263d3c580c7f769ef2","urls":["bzz-raw://75b4b2cd30e47c9ef2860224941239c666194490f97c493dcd16a2e4ce27cdbc","dweb:/ipfs/QmZpNkS1TMYDPVFvodyBrwMhMRLfa2oz3BFNi9WiNHw9yD"],"license":"Apache-2.0"},"src/interfaces/IRLCLiquidityUnifier.sol":{"keccak256":"0x4898c431b37bef3f4792707fcacfb28f8c5ae348fa959495a2e64ff203ce4522","urls":["bzz-raw://b859d6efd0a6729a216ed8d6f579982c8098a419183abd6bbef14b738ccdd93a","dweb:/ipfs/QmfPojN6ynQABbYY9RZFDdaMLemZwT6JH1e6EQuQ3DF7uC"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/RLCLiquidityUnifier.sol","id":87746,"exportedSymbols":{"AccessControlDefaultAdminRulesUpgradeable":[68475],"IERC165":[75345],"IERC20Metadata":[72308],"IERC7802":[71496],"IRLCLiquidityUnifier":[88335],"RLCLiquidityUnifier":[87745],"SafeERC20":[72808],"UUPSUpgradeable":[68925]},"nodeType":"SourceUnit","src":"111:7280:189","nodes":[{"id":87529,"nodeType":"PragmaDirective","src":"111:24:189","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":87531,"nodeType":"ImportDirective","src":"137:97:189","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":87746,"sourceUnit":72309,"symbolAliases":[{"foreign":{"id":87530,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72308,"src":"145:14:189","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87533,"nodeType":"ImportDirective","src":"235:82:189","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":87746,"sourceUnit":72809,"symbolAliases":[{"foreign":{"id":87532,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72808,"src":"243:9:189","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87535,"nodeType":"ImportDirective","src":"318:162:189","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/extensions/AccessControlDefaultAdminRulesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":87746,"sourceUnit":68476,"symbolAliases":[{"foreign":{"id":87534,"name":"AccessControlDefaultAdminRulesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68475,"src":"326:41:189","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87537,"nodeType":"ImportDirective","src":"481:100:189","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":87746,"sourceUnit":68926,"symbolAliases":[{"foreign":{"id":87536,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68925,"src":"489:15:189","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87539,"nodeType":"ImportDirective","src":"582:97:189","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":87746,"sourceUnit":72309,"symbolAliases":[{"foreign":{"id":87538,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72308,"src":"590:14:189","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87541,"nodeType":"ImportDirective","src":"680:71:189","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol","file":"@openzeppelin/contracts/interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":87746,"sourceUnit":71248,"symbolAliases":[{"foreign":{"id":87540,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75345,"src":"688:7:189","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87543,"nodeType":"ImportDirective","src":"752:79:189","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC7802.sol","file":"@openzeppelin/contracts/interfaces/draft-IERC7802.sol","nameLocation":"-1:-1:-1","scope":87746,"sourceUnit":71497,"symbolAliases":[{"foreign":{"id":87542,"name":"IERC7802","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71496,"src":"760:8:189","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87545,"nodeType":"ImportDirective","src":"832:75:189","nodes":[],"absolutePath":"src/interfaces/IRLCLiquidityUnifier.sol","file":"./interfaces/IRLCLiquidityUnifier.sol","nameLocation":"-1:-1:-1","scope":87746,"sourceUnit":88336,"symbolAliases":[{"foreign":{"id":87544,"name":"IRLCLiquidityUnifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88335,"src":"840:20:189","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":87745,"nodeType":"ContractDefinition","src":"1448:5942:189","nodes":[{"id":87558,"nodeType":"UsingForDirective","src":"1593:35:189","nodes":[],"global":false,"libraryName":{"id":87555,"name":"SafeERC20","nameLocations":["1599:9:189"],"nodeType":"IdentifierPath","referencedDeclaration":72808,"src":"1599:9:189"},"typeName":{"id":87557,"nodeType":"UserDefinedTypeName","pathNode":{"id":87556,"name":"IERC20Metadata","nameLocations":["1613:14:189"],"nodeType":"IdentifierPath","referencedDeclaration":72308,"src":"1613:14:189"},"referencedDeclaration":72308,"src":"1613:14:189","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}}},{"id":87563,"nodeType":"VariableDeclaration","src":"1634:66:189","nodes":[],"constant":true,"functionSelector":"f72c0d8b","mutability":"constant","name":"UPGRADER_ROLE","nameLocation":"1658:13:189","scope":87745,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1634:7:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"55504752414445525f524f4c45","id":87561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1684:15:189","typeDescriptions":{"typeIdentifier":"t_stringliteral_189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3","typeString":"literal_string \"UPGRADER_ROLE\""},"value":"UPGRADER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3","typeString":"literal_string \"UPGRADER_ROLE\""}],"id":87560,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1674:9:189","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":87562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1674:26:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":87568,"nodeType":"VariableDeclaration","src":"1706:74:189","nodes":[],"constant":true,"functionSelector":"a94ea30c","mutability":"constant","name":"TOKEN_BRIDGE_ROLE","nameLocation":"1730:17:189","scope":87745,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":87564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1706:7:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"544f4b454e5f4252494447455f524f4c45","id":87566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1760:19:189","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978","typeString":"literal_string \"TOKEN_BRIDGE_ROLE\""},"value":"TOKEN_BRIDGE_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7c4527c99f13bf6a80d3bc15ebce76f7f8256ab4fbf63363b10858db314c978","typeString":"literal_string \"TOKEN_BRIDGE_ROLE\""}],"id":87565,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1750:9:189","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":87567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:30:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":87572,"nodeType":"VariableDeclaration","src":"1919:41:189","nodes":[],"baseFunctions":[88328],"constant":false,"documentation":{"id":87569,"nodeType":"StructuredDocumentation","src":"1787:76:189","text":" @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"b25dd572","mutability":"immutable","name":"RLC_TOKEN","nameLocation":"1951:9:189","scope":87745,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"},"typeName":{"id":87571,"nodeType":"UserDefinedTypeName","pathNode":{"id":87570,"name":"IERC20Metadata","nameLocations":["1919:14:189"],"nodeType":"IdentifierPath","referencedDeclaration":72308,"src":"1919:14:189"},"referencedDeclaration":72308,"src":"1919:14:189","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}},"visibility":"public"},{"id":87588,"nodeType":"FunctionDefinition","src":"2035:115:189","nodes":[],"body":{"id":87587,"nodeType":"Block","src":"2065:85:189","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87578,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68697,"src":"2075:20:189","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2075:22:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87580,"nodeType":"ExpressionStatement","src":"2075:22:189"},{"expression":{"id":87585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":87581,"name":"RLC_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87572,"src":"2107:9:189","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":87583,"name":"rlcToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87575,"src":"2134:8:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87582,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72308,"src":"2119:14:189","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$72308_$","typeString":"type(contract IERC20Metadata)"}},"id":87584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2119:24:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}},"src":"2107:36:189","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}},"id":87586,"nodeType":"ExpressionStatement","src":"2107:36:189"}]},"documentation":{"id":87573,"nodeType":"StructuredDocumentation","src":"1967:63:189","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":87576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87575,"mutability":"mutable","name":"rlcToken","nameLocation":"2055:8:189","nodeType":"VariableDeclaration","scope":87588,"src":"2047:16:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87574,"name":"address","nodeType":"ElementaryTypeName","src":"2047:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2046:18:189"},"returnParameters":{"id":87577,"nodeType":"ParameterList","parameters":[],"src":"2065:0:189"},"scope":87745,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":87612,"nodeType":"FunctionDefinition","src":"2347:243:189","nodes":[],"body":{"id":87611,"nodeType":"Block","src":"2433:157:189","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":87598,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68797,"src":"2443:22:189","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":87599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:24:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87600,"nodeType":"ExpressionStatement","src":"2443:24:189"},{"expression":{"arguments":[{"hexValue":"30","id":87602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2515:1:189","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":87603,"name":"initialAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87591,"src":"2518:12:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87601,"name":"__AccessControlDefaultAdminRules_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67695,"src":"2477:37:189","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint48_$_t_address_$returns$__$","typeString":"function (uint48,address)"}},"id":87604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2477:54:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87605,"nodeType":"ExpressionStatement","src":"2477:54:189"},{"expression":{"arguments":[{"id":87607,"name":"UPGRADER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87563,"src":"2552:13:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":87608,"name":"initialUpgrader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87593,"src":"2567:15:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87606,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[67938],"referencedDeclaration":67938,"src":"2541:10:189","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":87609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2541:42:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87610,"nodeType":"ExpressionStatement","src":"2541:42:189"}]},"documentation":{"id":87589,"nodeType":"StructuredDocumentation","src":"2156:186:189","text":" Initializes the contract with the given parameters.\n @param initialAdmin address of the admin wallet\n @param initialUpgrader address of the upgrader wallet"},"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":87596,"kind":"modifierInvocation","modifierName":{"id":87595,"name":"initializer","nameLocations":["2421:11:189"],"nodeType":"IdentifierPath","referencedDeclaration":68583,"src":"2421:11:189"},"nodeType":"ModifierInvocation","src":"2421:11:189"}],"name":"initialize","nameLocation":"2356:10:189","parameters":{"id":87594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87591,"mutability":"mutable","name":"initialAdmin","nameLocation":"2375:12:189","nodeType":"VariableDeclaration","scope":87612,"src":"2367:20:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87590,"name":"address","nodeType":"ElementaryTypeName","src":"2367:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87593,"mutability":"mutable","name":"initialUpgrader","nameLocation":"2397:15:189","nodeType":"VariableDeclaration","scope":87612,"src":"2389:23:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87592,"name":"address","nodeType":"ElementaryTypeName","src":"2389:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2366:47:189"},"returnParameters":{"id":87597,"nodeType":"ParameterList","parameters":[],"src":"2433:0:189"},"scope":87745,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":87654,"nodeType":"FunctionDefinition","src":"3744:463:189","nodes":[],"body":{"id":87653,"nodeType":"Block","src":"3841:366:189","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87624,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87615,"src":"3918:2:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":87627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3932:1:189","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3924:7:189","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87625,"name":"address","nodeType":"ElementaryTypeName","src":"3924:7:189","typeDescriptions":{}}},"id":87628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3924:10:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3918:16:189","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87638,"nodeType":"IfStatement","src":"3914:89:189","trueBody":{"id":87637,"nodeType":"Block","src":"3936:67:189","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":87633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3989:1:189","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3981:7:189","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87631,"name":"address","nodeType":"ElementaryTypeName","src":"3981:7:189","typeDescriptions":{}}},"id":87634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3981:10:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87630,"name":"ERC7802InvalidToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88316,"src":"3957:23:189","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":87635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3957:35:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87636,"nodeType":"RevertStatement","src":"3950:42:189"}]}},{"expression":{"arguments":[{"id":87642,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87615,"src":"4136:2:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87643,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87617,"src":"4140:5:189","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":87639,"name":"RLC_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87572,"src":"4113:9:189","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}},"id":87641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4123:12:189","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":72389,"src":"4113:22:189","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$72282_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$72282_$","typeString":"function (contract IERC20,address,uint256)"}},"id":87644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4113:33:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87645,"nodeType":"ExpressionStatement","src":"4113:33:189"},{"eventCall":{"arguments":[{"id":87647,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87615,"src":"4176:2:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87648,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87617,"src":"4180:5:189","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":87649,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69861,"src":"4187:10:189","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":87650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4187:12:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87646,"name":"CrosschainMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71470,"src":"4161:14:189","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":87651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4161:39:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87652,"nodeType":"EmitStatement","src":"4156:44:189"}]},"baseFunctions":[71487],"documentation":{"id":87613,"nodeType":"StructuredDocumentation","src":"2651:1088:189","text":" @dev See {IERC7802-crosschainMint}.\n Unlocks RLC tokens from this contract's balance and transfers them to the recipient.\n This function is called when tokens are being received from another chain via the bridge.\n Emits a {CrosschainMint} event indicating tokens were unlocked for cross-chain transfer.\n Cross-chain flow:\n 1. Tokens are burned/locked on the source chain.\n 2. The bridge calls this function to unlock the equivalent tokens amount on the destination chain.\n 3. Tokens are transferred from this contract's balance to the recipient.\n Requirements:\n - Caller must have TOKEN_BRIDGE_ROLE (typically the LayerZero bridge contract)\n - Contract must have sufficient RLC token balance to fulfill the transfer\n - `to` address must be valid (non-zero)\n @custom:security Only authorized bridge contracts can call this function\n @param to The address to receive the unlocked RLC tokens\n @param value The amount of RLC tokens to unlock and transfer"},"functionSelector":"18bf5077","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87621,"name":"TOKEN_BRIDGE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87568,"src":"3822:17:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":87622,"kind":"modifierInvocation","modifierName":{"id":87620,"name":"onlyRole","nameLocations":["3813:8:189"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"3813:8:189"},"nodeType":"ModifierInvocation","src":"3813:27:189"}],"name":"crosschainMint","nameLocation":"3753:14:189","overrides":{"id":87619,"nodeType":"OverrideSpecifier","overrides":[],"src":"3804:8:189"},"parameters":{"id":87618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87615,"mutability":"mutable","name":"to","nameLocation":"3776:2:189","nodeType":"VariableDeclaration","scope":87654,"src":"3768:10:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87614,"name":"address","nodeType":"ElementaryTypeName","src":"3768:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87617,"mutability":"mutable","name":"value","nameLocation":"3788:5:189","nodeType":"VariableDeclaration","scope":87654,"src":"3780:13:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87616,"name":"uint256","nodeType":"ElementaryTypeName","src":"3780:7:189","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3767:27:189"},"returnParameters":{"id":87623,"nodeType":"ParameterList","parameters":[],"src":"3841:0:189"},"scope":87745,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87700,"nodeType":"FunctionDefinition","src":"5474:492:189","nodes":[],"body":{"id":87699,"nodeType":"Block","src":"5573:393:189","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":87671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87666,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87657,"src":"5650:4:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":87669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5666:1:189","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5658:7:189","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87667,"name":"address","nodeType":"ElementaryTypeName","src":"5658:7:189","typeDescriptions":{}}},"id":87670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:10:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5650:18:189","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":87680,"nodeType":"IfStatement","src":"5646:93:189","trueBody":{"id":87679,"nodeType":"Block","src":"5670:69:189","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":87675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5725:1:189","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":87674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5717:7:189","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87673,"name":"address","nodeType":"ElementaryTypeName","src":"5717:7:189","typeDescriptions":{}}},"id":87676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5717:10:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87672,"name":"ERC7802InvalidFromAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88321,"src":"5691:25:189","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":87677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5691:37:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87678,"nodeType":"RevertStatement","src":"5684:44:189"}]}},{"expression":{"arguments":[{"id":87684,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87657,"src":"5876:4:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":87687,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5890:4:189","typeDescriptions":{"typeIdentifier":"t_contract$_RLCLiquidityUnifier_$87745","typeString":"contract RLCLiquidityUnifier"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RLCLiquidityUnifier_$87745","typeString":"contract RLCLiquidityUnifier"}],"id":87686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5882:7:189","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":87685,"name":"address","nodeType":"ElementaryTypeName","src":"5882:7:189","typeDescriptions":{}}},"id":87688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5882:13:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87689,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87659,"src":"5897:5:189","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":87681,"name":"RLC_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87572,"src":"5849:9:189","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Metadata_$72308","typeString":"contract IERC20Metadata"}},"id":87683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5859:16:189","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":72416,"src":"5849:26:189","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$72282_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$72282_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":87690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5849:54:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87691,"nodeType":"ExpressionStatement","src":"5849:54:189"},{"eventCall":{"arguments":[{"id":87693,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87657,"src":"5933:4:189","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":87694,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87659,"src":"5939:5:189","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":87695,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69861,"src":"5946:10:189","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":87696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5946:12:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87692,"name":"CrosschainBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71479,"src":"5918:14:189","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":87697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5918:41:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87698,"nodeType":"EmitStatement","src":"5913:46:189"}]},"baseFunctions":[71495],"documentation":{"id":87655,"nodeType":"StructuredDocumentation","src":"4213:1202:189","text":" @dev See {IERC7802-crosschainBurn}.\n Locks RLC tokens by transferring them from the sender to this contract's reserve.\n This function is called when tokens are being sent to another chain via the bridge.\n Emits a {CrosschainBurn} event indicating tokens were locked for cross-chain transfer.\n Cross-chain flow:\n 1. The user approves this contract to spend RLC tokens on their behalf.\n 2. The user initiates a cross-chain transfer through the bridge.\n 3. The bridge calls this function to lock tokens on the source chain.\n 4. Tokens are transferred from the sender's account to this contract (locked).\n Requirements:\n - Caller must have TOKEN_BRIDGE_ROLE (typically the LayerZero bridge contract)\n - `from` address must have approved this contract to spend at least `value` tokens\n - `from` address must have sufficient RLC token balance\n @custom:security Only authorized bridge contracts can call this function\n @param from The address to lock RLC tokens from (must have approved this contract)\n @param value The amount of RLC tokens to lock in this contract"},"functionSelector":"2b8c49e3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87663,"name":"TOKEN_BRIDGE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87568,"src":"5554:17:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":87664,"kind":"modifierInvocation","modifierName":{"id":87662,"name":"onlyRole","nameLocations":["5545:8:189"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"5545:8:189"},"nodeType":"ModifierInvocation","src":"5545:27:189"}],"name":"crosschainBurn","nameLocation":"5483:14:189","overrides":{"id":87661,"nodeType":"OverrideSpecifier","overrides":[],"src":"5536:8:189"},"parameters":{"id":87660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87657,"mutability":"mutable","name":"from","nameLocation":"5506:4:189","nodeType":"VariableDeclaration","scope":87700,"src":"5498:12:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87656,"name":"address","nodeType":"ElementaryTypeName","src":"5498:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":87659,"mutability":"mutable","name":"value","nameLocation":"5520:5:189","nodeType":"VariableDeclaration","scope":87700,"src":"5512:13:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87658,"name":"uint256","nodeType":"ElementaryTypeName","src":"5512:7:189","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5497:29:189"},"returnParameters":{"id":87665,"nodeType":"ParameterList","parameters":[],"src":"5573:0:189"},"scope":87745,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":87709,"nodeType":"FunctionDefinition","src":"6622:75:189","nodes":[],"body":{"id":87708,"nodeType":"Block","src":"6672:25:189","nodes":[],"statements":[{"expression":{"hexValue":"39","id":87706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6689:1:189","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"functionReturnParameters":87705,"id":87707,"nodeType":"Return","src":"6682:8:189"}]},"baseFunctions":[88334],"documentation":{"id":87701,"nodeType":"StructuredDocumentation","src":"6026:591:189","text":" @notice Returns the number of decimal places used by the underlying RLC token\n @return The decimal places of the RLC token (typically 9 for RLC)\n @dev This function provides LayerZero bridge compatibility by exposing the decimal\n precision of the underlying RLC token. LayerZero's OFT (Omnichain Fungible Token)\n standard requires this information to properly handle token amounts across different\n chains with potentially different decimal representations.\n @custom:bridge-compatibility Required by LayerZero OFT standard"},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"6631:8:189","parameters":{"id":87702,"nodeType":"ParameterList","parameters":[],"src":"6639:2:189"},"returnParameters":{"id":87705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87709,"src":"6665:5:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":87703,"name":"uint8","nodeType":"ElementaryTypeName","src":"6665:5:189","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6664:7:189"},"scope":87745,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":87733,"nodeType":"FunctionDefinition","src":"6828:276:189","nodes":[],"body":{"id":87732,"nodeType":"Block","src":"6999:105:189","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":87730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":87725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":87720,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87712,"src":"7016:11:189","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":87722,"name":"IERC7802","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71496,"src":"7036:8:189","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC7802_$71496_$","typeString":"type(contract IERC7802)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC7802_$71496_$","typeString":"type(contract IERC7802)"}],"id":87721,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7031:4:189","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":87723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7031:14:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC7802_$71496","typeString":"type(contract IERC7802)"}},"id":87724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7046:11:189","memberName":"interfaceId","nodeType":"MemberAccess","src":"7031:26:189","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7016:41:189","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":87728,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87712,"src":"7085:11:189","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":87726,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"7061:5:189","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_RLCLiquidityUnifier_$87745_$","typeString":"type(contract super RLCLiquidityUnifier)"}},"id":87727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7067:17:189","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":67759,"src":"7061:23:189","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":87729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7061:36:189","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7016:81:189","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":87719,"id":87731,"nodeType":"Return","src":"7009:88:189"}]},"baseFunctions":[67759,75344],"documentation":{"id":87710,"nodeType":"StructuredDocumentation","src":"6767:56:189","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6837:17:189","overrides":{"id":87716,"nodeType":"OverrideSpecifier","overrides":[{"id":87714,"name":"AccessControlDefaultAdminRulesUpgradeable","nameLocations":["6920:41:189"],"nodeType":"IdentifierPath","referencedDeclaration":68475,"src":"6920:41:189"},{"id":87715,"name":"IERC165","nameLocations":["6963:7:189"],"nodeType":"IdentifierPath","referencedDeclaration":75345,"src":"6963:7:189"}],"src":"6911:60:189"},"parameters":{"id":87713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87712,"mutability":"mutable","name":"interfaceId","nameLocation":"6862:11:189","nodeType":"VariableDeclaration","scope":87733,"src":"6855:18:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":87711,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6855:6:189","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6854:20:189"},"returnParameters":{"id":87719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":87733,"src":"6989:4:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":87717,"name":"bool","nodeType":"ElementaryTypeName","src":"6989:4:189","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6988:6:189"},"scope":87745,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":87744,"nodeType":"FunctionDefinition","src":"7290:98:189","nodes":[],"body":{"id":87743,"nodeType":"Block","src":"7386:2:189","nodes":[],"statements":[]},"baseFunctions":[68879],"documentation":{"id":87734,"nodeType":"StructuredDocumentation","src":"7161:124:189","text":" @dev Authorizes upgrades of the proxy. It can only be called by\n an account with the UPGRADER_ROLE."},"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":87740,"name":"UPGRADER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87563,"src":"7371:13:189","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":87741,"kind":"modifierInvocation","modifierName":{"id":87739,"name":"onlyRole","nameLocations":["7362:8:189"],"nodeType":"IdentifierPath","referencedDeclaration":67127,"src":"7362:8:189"},"nodeType":"ModifierInvocation","src":"7362:23:189"}],"name":"_authorizeUpgrade","nameLocation":"7299:17:189","overrides":{"id":87738,"nodeType":"OverrideSpecifier","overrides":[],"src":"7353:8:189"},"parameters":{"id":87737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87736,"mutability":"mutable","name":"newImplementation","nameLocation":"7325:17:189","nodeType":"VariableDeclaration","scope":87744,"src":"7317:25:189","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":87735,"name":"address","nodeType":"ElementaryTypeName","src":"7317:7:189","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7316:27:189"},"returnParameters":{"id":87742,"nodeType":"ParameterList","parameters":[],"src":"7386:0:189"},"scope":87745,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":87547,"name":"UUPSUpgradeable","nameLocations":["1484:15:189"],"nodeType":"IdentifierPath","referencedDeclaration":68925,"src":"1484:15:189"},"id":87548,"nodeType":"InheritanceSpecifier","src":"1484:15:189"},{"baseName":{"id":87549,"name":"AccessControlDefaultAdminRulesUpgradeable","nameLocations":["1505:41:189"],"nodeType":"IdentifierPath","referencedDeclaration":68475,"src":"1505:41:189"},"id":87550,"nodeType":"InheritanceSpecifier","src":"1505:41:189"},{"baseName":{"id":87551,"name":"IRLCLiquidityUnifier","nameLocations":["1552:20:189"],"nodeType":"IdentifierPath","referencedDeclaration":88335,"src":"1552:20:189"},"id":87552,"nodeType":"InheritanceSpecifier","src":"1552:20:189"},{"baseName":{"id":87553,"name":"IERC7802","nameLocations":["1578:8:189"],"nodeType":"IdentifierPath","referencedDeclaration":71496,"src":"1578:8:189"},"id":87554,"nodeType":"InheritanceSpecifier","src":"1578:8:189"}],"canonicalName":"RLCLiquidityUnifier","contractDependencies":[],"contractKind":"contract","documentation":{"id":87546,"nodeType":"StructuredDocumentation","src":"909:538:189","text":" @dev This contract facilitates cross-chain liquidity unification by allowing\n the minting and burning of tokens on the RLC token contract. All bridges\n should interact with this contract to perform RLC transfers.\n The implementation is inspired by the OpenZeppelin ERC20Bridgeable contract\n without being an ERC20 token itself. Functions are overridden to lock/unlock\n tokens on an external ERC20 contract. ERC20Bridgeable is not used directly\n because it embarks the ERC20 token logic, which is not needed here."},"fullyImplemented":true,"linearizedBaseContracts":[87745,71496,88335,68475,67432,70534,75345,71307,71161,70914,69879,68925,71317,68743],"name":"RLCLiquidityUnifier","nameLocation":"1457:19:189","scope":87746,"usedErrors":[68492,68495,68770,68775,70841,70844,71074,71077,71082,71554,71567,72356,72818,73111,76976,88316,88321],"usedEvents":[68500,70853,70862,70871,71089,71092,71099,71102,71255,71470,71479]}],"license":"Apache-2.0"},"id":189} \ No newline at end of file diff --git a/foundry.toml b/foundry.toml index f9c7bded..97ff0d62 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,7 +1,7 @@ [profile.default] solc = "0.8.23" src = "src" -out = "out" +out = "artifacts" libs = ["lib"] fs_permissions = [{ access = "read-write", path = "./" }] optimizer = true diff --git a/slither.config.json b/slither.config.json index 90cbe8bb..5692414f 100644 --- a/slither.config.json +++ b/slither.config.json @@ -1,4 +1,5 @@ { "filter_paths": "(lib/|test/|script/|src/interfaces/|src/mocks/)", - "solc_args": "--optimize --via-ir" + "solc_args": "--optimize --via-ir", + "foundry_out_directory": "artifacts" }