Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save nunofernandes-plight/1127e62e67b7307262d60b41cadd124a to your computer and use it in GitHub Desktop.
Save nunofernandes-plight/1127e62e67b7307262d60b41cadd124a to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.19+commit.7dd6d404.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;
library TestsAccounts {
function getAccount(uint index) pure public returns (address) {
return address(0);
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;
library Assert {
event AssertionEvent(
bool passed,
string message,
string methodName
);
event AssertionEventUint(
bool passed,
string message,
string methodName,
uint256 returned,
uint256 expected
);
event AssertionEventInt(
bool passed,
string message,
string methodName,
int256 returned,
int256 expected
);
event AssertionEventBool(
bool passed,
string message,
string methodName,
bool returned,
bool expected
);
event AssertionEventAddress(
bool passed,
string message,
string methodName,
address returned,
address expected
);
event AssertionEventBytes32(
bool passed,
string message,
string methodName,
bytes32 returned,
bytes32 expected
);
event AssertionEventString(
bool passed,
string message,
string methodName,
string returned,
string expected
);
event AssertionEventUintInt(
bool passed,
string message,
string methodName,
uint256 returned,
int256 expected
);
event AssertionEventIntUint(
bool passed,
string message,
string methodName,
int256 returned,
uint256 expected
);
function ok(bool a, string memory message) public returns (bool result) {
result = a;
emit AssertionEvent(result, message, "ok");
}
function equal(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventUint(result, message, "equal", a, b);
}
function equal(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventInt(result, message, "equal", a, b);
}
function equal(bool a, bool b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventBool(result, message, "equal", a, b);
}
// TODO: only for certain versions of solc
//function equal(fixed a, fixed b, string message) public returns (bool result) {
// result = (a == b);
// emit AssertionEvent(result, message);
//}
// TODO: only for certain versions of solc
//function equal(ufixed a, ufixed b, string message) public returns (bool result) {
// result = (a == b);
// emit AssertionEvent(result, message);
//}
function equal(address a, address b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventAddress(result, message, "equal", a, b);
}
function equal(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventBytes32(result, message, "equal", a, b);
}
function equal(string memory a, string memory b, string memory message) public returns (bool result) {
result = (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)));
emit AssertionEventString(result, message, "equal", a, b);
}
function notEqual(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventUint(result, message, "notEqual", a, b);
}
function notEqual(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventInt(result, message, "notEqual", a, b);
}
function notEqual(bool a, bool b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventBool(result, message, "notEqual", a, b);
}
// TODO: only for certain versions of solc
//function notEqual(fixed a, fixed b, string message) public returns (bool result) {
// result = (a != b);
// emit AssertionEvent(result, message);
//}
// TODO: only for certain versions of solc
//function notEqual(ufixed a, ufixed b, string message) public returns (bool result) {
// result = (a != b);
// emit AssertionEvent(result, message);
//}
function notEqual(address a, address b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventAddress(result, message, "notEqual", a, b);
}
function notEqual(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventBytes32(result, message, "notEqual", a, b);
}
function notEqual(string memory a, string memory b, string memory message) public returns (bool result) {
result = (keccak256(abi.encodePacked(a)) != keccak256(abi.encodePacked(b)));
emit AssertionEventString(result, message, "notEqual", a, b);
}
/*----------------- Greater than --------------------*/
function greaterThan(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a > b);
emit AssertionEventUint(result, message, "greaterThan", a, b);
}
function greaterThan(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a > b);
emit AssertionEventInt(result, message, "greaterThan", a, b);
}
// TODO: safely compare between uint and int
function greaterThan(uint256 a, int256 b, string memory message) public returns (bool result) {
if(b < int(0)) {
// int is negative uint "a" always greater
result = true;
} else {
result = (a > uint(b));
}
emit AssertionEventUintInt(result, message, "greaterThan", a, b);
}
function greaterThan(int256 a, uint256 b, string memory message) public returns (bool result) {
if(a < int(0)) {
// int is negative uint "b" always greater
result = false;
} else {
result = (uint(a) > b);
}
emit AssertionEventIntUint(result, message, "greaterThan", a, b);
}
/*----------------- Lesser than --------------------*/
function lesserThan(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a < b);
emit AssertionEventUint(result, message, "lesserThan", a, b);
}
function lesserThan(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a < b);
emit AssertionEventInt(result, message, "lesserThan", a, b);
}
// TODO: safely compare between uint and int
function lesserThan(uint256 a, int256 b, string memory message) public returns (bool result) {
if(b < int(0)) {
// int is negative int "b" always lesser
result = false;
} else {
result = (a < uint(b));
}
emit AssertionEventUintInt(result, message, "lesserThan", a, b);
}
function lesserThan(int256 a, uint256 b, string memory message) public returns (bool result) {
if(a < int(0)) {
// int is negative int "a" always lesser
result = true;
} else {
result = (uint(a) < b);
}
emit AssertionEventIntUint(result, message, "lesserThan", a, b);
}
}
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
},
{
"files": "*.yml",
"options": {}
},
{
"files": "*.yaml",
"options": {}
},
{
"files": "*.toml",
"options": {}
},
{
"files": "*.json",
"options": {}
},
{
"files": "*.js",
"options": {}
},
{
"files": "*.ts",
"options": {}
}
]
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_220": {
"entryPoint": null,
"id": 220,
"parameterSlots": 1,
"returnSlots": 0
},
"@_38": {
"entryPoint": null,
"id": 38,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_address_fromMemory": {
"entryPoint": 316,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address_fromMemory": {
"entryPoint": 339,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 389,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 406,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 270,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 238,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 233,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 290,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1551:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:5",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:5",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:5"
},
"nodeType": "YulFunctionCall",
"src": "67:9:5"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:5"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:5",
"type": ""
}
],
"src": "7:75:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:5"
},
"nodeType": "YulFunctionCall",
"src": "187:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:5"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:5"
},
"nodeType": "YulFunctionCall",
"src": "310:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:5"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:5",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:5"
},
"nodeType": "YulFunctionCall",
"src": "400:54:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:5"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:5",
"type": ""
}
],
"src": "334:126:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:5"
},
"nodeType": "YulFunctionCall",
"src": "532:24:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:5"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:5",
"type": ""
}
],
"src": "466:96:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:5"
},
"nodeType": "YulFunctionCall",
"src": "670:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:5"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:5"
},
"nodeType": "YulFunctionCall",
"src": "641:24:5"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:5"
},
"nodeType": "YulFunctionCall",
"src": "631:35:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:5"
},
"nodeType": "YulFunctionCall",
"src": "624:43:5"
},
"nodeType": "YulIf",
"src": "621:63:5"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:5",
"type": ""
}
],
"src": "568:122:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "759:80:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "769:22:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "784:6:5"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "778:5:5"
},
"nodeType": "YulFunctionCall",
"src": "778:13:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "769:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "827:5:5"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "800:26:5"
},
"nodeType": "YulFunctionCall",
"src": "800:33:5"
},
"nodeType": "YulExpressionStatement",
"src": "800:33:5"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "737:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "745:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "753:5:5",
"type": ""
}
],
"src": "696:143:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "922:274:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "968:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "970:77:5"
},
"nodeType": "YulFunctionCall",
"src": "970:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "970:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "943:7:5"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "952:9:5"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "939:3:5"
},
"nodeType": "YulFunctionCall",
"src": "939:23:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "964:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "935:3:5"
},
"nodeType": "YulFunctionCall",
"src": "935:32:5"
},
"nodeType": "YulIf",
"src": "932:119:5"
},
{
"nodeType": "YulBlock",
"src": "1061:128:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1076:15:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1090:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1080:6:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1105:74:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1151:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1162:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1147:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1147:22:5"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1171:7:5"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "1115:31:5"
},
"nodeType": "YulFunctionCall",
"src": "1115:64:5"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1105:6:5"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "892:9:5",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "903:7:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "915:6:5",
"type": ""
}
],
"src": "845:351:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1267:53:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1284:3:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1307:5:5"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1289:17:5"
},
"nodeType": "YulFunctionCall",
"src": "1289:24:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1277:6:5"
},
"nodeType": "YulFunctionCall",
"src": "1277:37:5"
},
"nodeType": "YulExpressionStatement",
"src": "1277:37:5"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1255:5:5",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1262:3:5",
"type": ""
}
],
"src": "1202:118:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1424:124:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1434:26:5",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1446:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1457:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1442:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1442:18:5"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1434:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1514:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1527:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1538:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1523:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1523:17:5"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "1470:43:5"
},
"nodeType": "YulFunctionCall",
"src": "1470:71:5"
},
"nodeType": "YulExpressionStatement",
"src": "1470:71:5"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1396:9:5",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1408:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1419:4:5",
"type": ""
}
],
"src": "1326:222:5"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 5,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60a06040523480156200001157600080fd5b506040516200107f3803806200107f833981810160405281019062000037919062000153565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517fd7f73334000000000000000000000000000000000000000000000000000000008152600401620000a4919062000196565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050620001b3565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200011b82620000ee565b9050919050565b6200012d816200010e565b81146200013957600080fd5b50565b6000815190506200014d8162000122565b92915050565b6000602082840312156200016c576200016b620000e9565b5b60006200017c848285016200013c565b91505092915050565b62000190816200010e565b82525050565b6000602082019050620001ad600083018462000185565b92915050565b608051610ea9620001d660003960008181610264015261030b0152610ea96000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806301ffc9a71461005c57806334a077981461008c57806385572ffb146100aa578063b0f479a1146100c6578063e1214815146100e4575b600080fd5b61007660048036038101906100719190610440565b610102565b6040516100839190610488565b60405180910390f35b6100946101d4565b6040516100a19190610533565b60405180910390f35b6100c460048036038101906100bf9190610579565b610262565b005b6100ce610307565b6040516100db9190610603565b60405180910390f35b6100ec61032f565b6040516100f99190610603565b60405180910390f35b60007f85572ffb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806101cd57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600180546101e19061064d565b80601f016020809104026020016040519081016040528092919081815260200182805461020d9061064d565b801561025a5780601f1061022f5761010080835404028352916020019161025a565b820191906000526020600020905b81548152906001019060200180831161023d57829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102f257336040517fd7f733340000000000000000000000000000000000000000000000000000000081526004016102e99190610603565b60405180910390fd5b610304816102ff90610a8d565b610353565b50565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806040015180602001905181019061036b9190610ade565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606001518060200190518101906103c29190610bac565b600190816103d09190610da1565b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61041d816103e8565b811461042857600080fd5b50565b60008135905061043a81610414565b92915050565b600060208284031215610456576104556103de565b5b60006104648482850161042b565b91505092915050565b60008115159050919050565b6104828161046d565b82525050565b600060208201905061049d6000830184610479565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104dd5780820151818401526020810190506104c2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610505826104a3565b61050f81856104ae565b935061051f8185602086016104bf565b610528816104e9565b840191505092915050565b6000602082019050818103600083015261054d81846104fa565b905092915050565b600080fd5b600060a082840312156105705761056f610555565b5b81905092915050565b60006020828403121561058f5761058e6103de565b5b600082013567ffffffffffffffff8111156105ad576105ac6103e3565b5b6105b98482850161055a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105ed826105c2565b9050919050565b6105fd816105e2565b82525050565b600060208201905061061860008301846105f4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061066557607f821691505b6020821081036106785761067761061e565b5b50919050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6106bb826104e9565b810181811067ffffffffffffffff821117156106da576106d9610683565b5b80604052505050565b60006106ed6103d4565b90506106f982826106b2565b919050565b600080fd5b6000819050919050565b61071681610703565b811461072157600080fd5b50565b6000813590506107338161070d565b92915050565b600067ffffffffffffffff82169050919050565b61075681610739565b811461076157600080fd5b50565b6000813590506107738161074d565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561079e5761079d610683565b5b6107a7826104e9565b9050602081019050919050565b82818337600083830152505050565b60006107d66107d184610783565b6106e3565b9050828152602081018484840111156107f2576107f161077e565b5b6107fd8482856107b4565b509392505050565b600082601f83011261081a57610819610779565b5b813561082a8482602086016107c3565b91505092915050565b600067ffffffffffffffff82111561084e5761084d610683565b5b602082029050602081019050919050565b600080fd5b61086d816105e2565b811461087857600080fd5b50565b60008135905061088a81610864565b92915050565b6000819050919050565b6108a381610890565b81146108ae57600080fd5b50565b6000813590506108c08161089a565b92915050565b6000604082840312156108dc576108db61067e565b5b6108e660406106e3565b905060006108f68482850161087b565b600083015250602061090a848285016108b1565b60208301525092915050565b600061092961092484610833565b6106e3565b9050808382526020820190506040840283018581111561094c5761094b61085f565b5b835b81811015610975578061096188826108c6565b84526020840193505060408101905061094e565b5050509392505050565b600082601f83011261099457610993610779565b5b81356109a4848260208601610916565b91505092915050565b600060a082840312156109c3576109c261067e565b5b6109cd60a06106e3565b905060006109dd84828501610724565b60008301525060206109f184828501610764565b602083015250604082013567ffffffffffffffff811115610a1557610a146106fe565b5b610a2184828501610805565b604083015250606082013567ffffffffffffffff811115610a4557610a446106fe565b5b610a5184828501610805565b606083015250608082013567ffffffffffffffff811115610a7557610a746106fe565b5b610a818482850161097f565b60808301525092915050565b6000610a9936836109ad565b9050919050565b6000610aab826105c2565b9050919050565b610abb81610aa0565b8114610ac657600080fd5b50565b600081519050610ad881610ab2565b92915050565b600060208284031215610af457610af36103de565b5b6000610b0284828501610ac9565b91505092915050565b600067ffffffffffffffff821115610b2657610b25610683565b5b610b2f826104e9565b9050602081019050919050565b6000610b4f610b4a84610b0b565b6106e3565b905082815260208101848484011115610b6b57610b6a61077e565b5b610b768482856104bf565b509392505050565b600082601f830112610b9357610b92610779565b5b8151610ba3848260208601610b3c565b91505092915050565b600060208284031215610bc257610bc16103de565b5b600082015167ffffffffffffffff811115610be057610bdf6103e3565b5b610bec84828501610b7e565b91505092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302610c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610c1a565b610c618683610c1a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000610c9e610c99610c9484610890565b610c79565b610890565b9050919050565b6000819050919050565b610cb883610c83565b610ccc610cc482610ca5565b848454610c27565b825550505050565b600090565b610ce1610cd4565b610cec818484610caf565b505050565b5b81811015610d1057610d05600082610cd9565b600181019050610cf2565b5050565b601f821115610d5557610d2681610bf5565b610d2f84610c0a565b81016020851015610d3e578190505b610d52610d4a85610c0a565b830182610cf1565b50505b505050565b600082821c905092915050565b6000610d7860001984600802610d5a565b1980831691505092915050565b6000610d918383610d67565b9150826002028217905092915050565b610daa826104a3565b67ffffffffffffffff811115610dc357610dc2610683565b5b610dcd825461064d565b610dd8828285610d14565b600060209050601f831160018114610e0b5760008415610df9578287015190505b610e038582610d85565b865550610e6b565b601f198416610e1986610bf5565b60005b82811015610e4157848901518255600182019150602085019450602081019050610e1c565b86831015610e5e5784890151610e5a601f891682610d67565b8355505b6001600288020188555050505b50505050505056fea264697066735822122067e552e9fac852f58ee5feb4655837e84191ef58217e067a9035376a49e37bf364736f6c63430008130033",
"opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x107F CODESIZE SUB DUP1 PUSH3 0x107F DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x153 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0xAD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xD7F7333400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xA4 SWAP2 SWAP1 PUSH3 0x196 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH3 0x1B3 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x11B DUP3 PUSH3 0xEE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x12D DUP2 PUSH3 0x10E JUMP JUMPDEST DUP2 EQ PUSH3 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x14D DUP2 PUSH3 0x122 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x16C JUMPI PUSH3 0x16B PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x17C DUP5 DUP3 DUP6 ADD PUSH3 0x13C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x190 DUP2 PUSH3 0x10E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x1AD PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x185 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xEA9 PUSH3 0x1D6 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x264 ADD MSTORE PUSH2 0x30B ADD MSTORE PUSH2 0xEA9 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x34A07798 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x85572FFB EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xB0F479A1 EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0xE1214815 EQ PUSH2 0xE4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x440 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x488 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x94 PUSH2 0x1D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x533 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x579 JUMP JUMPDEST PUSH2 0x262 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCE PUSH2 0x307 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDB SWAP2 SWAP1 PUSH2 0x603 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEC PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF9 SWAP2 SWAP1 PUSH2 0x603 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x85572FFB00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1CD JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x1E1 SWAP1 PUSH2 0x64D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x20D SWAP1 PUSH2 0x64D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x25A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x22F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x25A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x23D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2F2 JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0xD7F7333400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x603 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x304 DUP2 PUSH2 0x2FF SWAP1 PUSH2 0xA8D JUMP JUMPDEST PUSH2 0x353 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x36B SWAP2 SWAP1 PUSH2 0xADE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 DUP2 PUSH2 0x3D0 SWAP2 SWAP1 PUSH2 0xDA1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x41D DUP2 PUSH2 0x3E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x43A DUP2 PUSH2 0x414 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x456 JUMPI PUSH2 0x455 PUSH2 0x3DE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x464 DUP5 DUP3 DUP6 ADD PUSH2 0x42B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x46D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x49D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4DD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x505 DUP3 PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0x50F DUP2 DUP6 PUSH2 0x4AE JUMP JUMPDEST SWAP4 POP PUSH2 0x51F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4BF JUMP JUMPDEST PUSH2 0x528 DUP2 PUSH2 0x4E9 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x54D DUP2 DUP5 PUSH2 0x4FA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x570 JUMPI PUSH2 0x56F PUSH2 0x555 JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58F JUMPI PUSH2 0x58E PUSH2 0x3DE JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5AD JUMPI PUSH2 0x5AC PUSH2 0x3E3 JUMP JUMPDEST JUMPDEST PUSH2 0x5B9 DUP5 DUP3 DUP6 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5ED DUP3 PUSH2 0x5C2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5FD DUP2 PUSH2 0x5E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x618 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x665 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x678 JUMPI PUSH2 0x677 PUSH2 0x61E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x6BB DUP3 PUSH2 0x4E9 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x6DA JUMPI PUSH2 0x6D9 PUSH2 0x683 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6ED PUSH2 0x3D4 JUMP JUMPDEST SWAP1 POP PUSH2 0x6F9 DUP3 DUP3 PUSH2 0x6B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x716 DUP2 PUSH2 0x703 JUMP JUMPDEST DUP2 EQ PUSH2 0x721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x733 DUP2 PUSH2 0x70D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x756 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x773 DUP2 PUSH2 0x74D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x79E JUMPI PUSH2 0x79D PUSH2 0x683 JUMP JUMPDEST JUMPDEST PUSH2 0x7A7 DUP3 PUSH2 0x4E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D6 PUSH2 0x7D1 DUP5 PUSH2 0x783 JUMP JUMPDEST PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x7F2 JUMPI PUSH2 0x7F1 PUSH2 0x77E JUMP JUMPDEST JUMPDEST PUSH2 0x7FD DUP5 DUP3 DUP6 PUSH2 0x7B4 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x81A JUMPI PUSH2 0x819 PUSH2 0x779 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x82A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x84E JUMPI PUSH2 0x84D PUSH2 0x683 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x86D DUP2 PUSH2 0x5E2 JUMP JUMPDEST DUP2 EQ PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x88A DUP2 PUSH2 0x864 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8A3 DUP2 PUSH2 0x890 JUMP JUMPDEST DUP2 EQ PUSH2 0x8AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x8C0 DUP2 PUSH2 0x89A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8DC JUMPI PUSH2 0x8DB PUSH2 0x67E JUMP JUMPDEST JUMPDEST PUSH2 0x8E6 PUSH1 0x40 PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x8F6 DUP5 DUP3 DUP6 ADD PUSH2 0x87B JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x90A DUP5 DUP3 DUP6 ADD PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 PUSH2 0x924 DUP5 PUSH2 0x833 JUMP JUMPDEST PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x40 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x94C JUMPI PUSH2 0x94B PUSH2 0x85F JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x975 JUMPI DUP1 PUSH2 0x961 DUP9 DUP3 PUSH2 0x8C6 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x40 DUP2 ADD SWAP1 POP PUSH2 0x94E JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x994 JUMPI PUSH2 0x993 PUSH2 0x779 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x9A4 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x916 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C3 JUMPI PUSH2 0x9C2 PUSH2 0x67E JUMP JUMPDEST JUMPDEST PUSH2 0x9CD PUSH1 0xA0 PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9DD DUP5 DUP3 DUP6 ADD PUSH2 0x724 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x9F1 DUP5 DUP3 DUP6 ADD PUSH2 0x764 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA15 JUMPI PUSH2 0xA14 PUSH2 0x6FE JUMP JUMPDEST JUMPDEST PUSH2 0xA21 DUP5 DUP3 DUP6 ADD PUSH2 0x805 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA45 JUMPI PUSH2 0xA44 PUSH2 0x6FE JUMP JUMPDEST JUMPDEST PUSH2 0xA51 DUP5 DUP3 DUP6 ADD PUSH2 0x805 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH2 0xA74 PUSH2 0x6FE JUMP JUMPDEST JUMPDEST PUSH2 0xA81 DUP5 DUP3 DUP6 ADD PUSH2 0x97F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA99 CALLDATASIZE DUP4 PUSH2 0x9AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB DUP3 PUSH2 0x5C2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xABB DUP2 PUSH2 0xAA0 JUMP JUMPDEST DUP2 EQ PUSH2 0xAC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xAD8 DUP2 PUSH2 0xAB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAF4 JUMPI PUSH2 0xAF3 PUSH2 0x3DE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB02 DUP5 DUP3 DUP6 ADD PUSH2 0xAC9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB26 JUMPI PUSH2 0xB25 PUSH2 0x683 JUMP JUMPDEST JUMPDEST PUSH2 0xB2F DUP3 PUSH2 0x4E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB4F PUSH2 0xB4A DUP5 PUSH2 0xB0B JUMP JUMPDEST PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xB6B JUMPI PUSH2 0xB6A PUSH2 0x77E JUMP JUMPDEST JUMPDEST PUSH2 0xB76 DUP5 DUP3 DUP6 PUSH2 0x4BF JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB93 JUMPI PUSH2 0xB92 PUSH2 0x779 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0xBA3 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xB3C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBC2 JUMPI PUSH2 0xBC1 PUSH2 0x3DE JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBE0 JUMPI PUSH2 0xBDF PUSH2 0x3E3 JUMP JUMPDEST JUMPDEST PUSH2 0xBEC DUP5 DUP3 DUP6 ADD PUSH2 0xB7E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0xC57 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0xC61 DUP7 DUP4 PUSH2 0xC1A JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9E PUSH2 0xC99 PUSH2 0xC94 DUP5 PUSH2 0x890 JUMP JUMPDEST PUSH2 0xC79 JUMP JUMPDEST PUSH2 0x890 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCB8 DUP4 PUSH2 0xC83 JUMP JUMPDEST PUSH2 0xCCC PUSH2 0xCC4 DUP3 PUSH2 0xCA5 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0xC27 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0xCE1 PUSH2 0xCD4 JUMP JUMPDEST PUSH2 0xCEC DUP2 DUP5 DUP5 PUSH2 0xCAF JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD10 JUMPI PUSH2 0xD05 PUSH1 0x0 DUP3 PUSH2 0xCD9 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0xCF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD55 JUMPI PUSH2 0xD26 DUP2 PUSH2 0xBF5 JUMP JUMPDEST PUSH2 0xD2F DUP5 PUSH2 0xC0A JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0xD3E JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0xD52 PUSH2 0xD4A DUP6 PUSH2 0xC0A JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0xCF1 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD78 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0xD5A JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP4 DUP4 PUSH2 0xD67 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDAA DUP3 PUSH2 0x4A3 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC3 JUMPI PUSH2 0xDC2 PUSH2 0x683 JUMP JUMPDEST JUMPDEST PUSH2 0xDCD DUP3 SLOAD PUSH2 0x64D JUMP JUMPDEST PUSH2 0xDD8 DUP3 DUP3 DUP6 PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xE0B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xDF9 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0xE03 DUP6 DUP3 PUSH2 0xD85 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0xE6B JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0xE19 DUP7 PUSH2 0xBF5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xE41 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xE1C JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0xE5E JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0xE5A PUSH1 0x1F DUP10 AND DUP3 PUSH2 0xD67 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0xE552E9FAC852F58E 0xE5 INVALID 0xB4 PUSH6 0x5837E84191EF PC 0x21 PUSH31 0x67A9035376A49E37BF364736F6C6343000813003300000000000000000000 ",
"sourceMap": "250:393:4:-:0;;;372:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;413:6;556:1:0;538:20;;:6;:20;;;534:58;;589:1;567:25;;;;;;;;;;;:::i;:::-;;;;;;;;534:58;609:6;598:17;;;;;;;;;;500:120;372:51:4;250:393;;88:117:5;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:222::-;1419:4;1457:2;1446:9;1442:18;1434:26;;1470:71;1538:1;1527:9;1523:17;1514:6;1470:71;:::i;:::-;1326:222;;;;:::o;250:393:4:-;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_ccipReceive_250": {
"entryPoint": 851,
"id": 250,
"parameterSlots": 1,
"returnSlots": 0
},
"@ccipReceive_77": {
"entryPoint": 610,
"id": 77,
"parameterSlots": 1,
"returnSlots": 0
},
"@getRouter_96": {
"entryPoint": 775,
"id": 96,
"parameterSlots": 0,
"returnSlots": 1
},
"@latestMessage_211": {
"entryPoint": 468,
"id": 211,
"parameterSlots": 0,
"returnSlots": 0
},
"@latestSender_209": {
"entryPoint": 815,
"id": 209,
"parameterSlots": 0,
"returnSlots": 0
},
"@supportsInterface_62": {
"entryPoint": 258,
"id": 62,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 2326,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_bytes_memory_ptr": {
"entryPoint": 1987,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 2876,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 2171,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_address_payable_fromMemory": {
"entryPoint": 2761,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 2431,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32": {
"entryPoint": 1828,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4": {
"entryPoint": 1067,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes_memory_ptr": {
"entryPoint": 2053,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 2942,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_Any2EVMMessage_$152_calldata_ptr": {
"entryPoint": 1370,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_Any2EVMMessage_$152_memory_ptr": {
"entryPoint": 2477,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_EVMTokenAmount_$139_memory_ptr": {
"entryPoint": 2246,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 2225,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint64": {
"entryPoint": 1892,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address_payable_fromMemory": {
"entryPoint": 2782,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes4": {
"entryPoint": 1088,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptr_fromMemory": {
"entryPoint": 2988,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_struct$_Any2EVMMessage_$152_calldata_ptr": {
"entryPoint": 1401,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1524,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 1145,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1274,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 1539,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 1160,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1331,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1763,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 980,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 2099,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_bytes_memory_ptr": {
"entryPoint": 1923,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 2827,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 3061,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 1187,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 1198,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 3348,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_address": {
"entryPoint": 1506,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_address_payable": {
"entryPoint": 2720,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 1133,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 1795,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes4": {
"entryPoint": 1000,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1474,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2192,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint64": {
"entryPoint": 1849,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 3313,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_struct$_Any2EVMMessage_$152_calldata_ptr_to_t_struct$_Any2EVMMessage_$152_memory_ptr": {
"entryPoint": 2701,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 3203,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 3489,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"copy_calldata_to_memory_with_cleanup": {
"entryPoint": 1972,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 1215,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 3082,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 1613,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 3461,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1714,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 3193,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 3431,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 1566,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1667,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 3237,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1913,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d": {
"entryPoint": 1365,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f": {
"entryPoint": 1662,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421": {
"entryPoint": 1790,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 2143,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1918,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 995,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 990,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1257,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 3098,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 3418,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 3289,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 3111,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 3247,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 2148,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address_payable": {
"entryPoint": 2738,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes32": {
"entryPoint": 1805,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes4": {
"entryPoint": 1044,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 2202,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint64": {
"entryPoint": 1869,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 3284,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:19770:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:5",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:5",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:5"
},
"nodeType": "YulFunctionCall",
"src": "67:9:5"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:5"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:5",
"type": ""
}
],
"src": "7:75:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:5"
},
"nodeType": "YulFunctionCall",
"src": "187:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:5"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:5"
},
"nodeType": "YulFunctionCall",
"src": "310:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:5"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "378:105:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "388:89:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "403:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "410:66:5",
"type": "",
"value": "0xffffffff00000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "399:3:5"
},
"nodeType": "YulFunctionCall",
"src": "399:78:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "388:7:5"
}
]
}
]
},
"name": "cleanup_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "360:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "370:7:5",
"type": ""
}
],
"src": "334:149:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "531:78:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "587:16:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "596:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "599:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "589:6:5"
},
"nodeType": "YulFunctionCall",
"src": "589:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "589:12:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "554:5:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "578:5:5"
}
],
"functionName": {
"name": "cleanup_t_bytes4",
"nodeType": "YulIdentifier",
"src": "561:16:5"
},
"nodeType": "YulFunctionCall",
"src": "561:23:5"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "551:2:5"
},
"nodeType": "YulFunctionCall",
"src": "551:34:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "544:6:5"
},
"nodeType": "YulFunctionCall",
"src": "544:42:5"
},
"nodeType": "YulIf",
"src": "541:62:5"
}
]
},
"name": "validator_revert_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "524:5:5",
"type": ""
}
],
"src": "489:120:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "666:86:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "676:29:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "698:6:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "685:12:5"
},
"nodeType": "YulFunctionCall",
"src": "685:20:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "676:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "740:5:5"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nodeType": "YulIdentifier",
"src": "714:25:5"
},
"nodeType": "YulFunctionCall",
"src": "714:32:5"
},
"nodeType": "YulExpressionStatement",
"src": "714:32:5"
}
]
},
"name": "abi_decode_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "644:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "652:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "660:5:5",
"type": ""
}
],
"src": "615:137:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "823:262:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "869:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "871:77:5"
},
"nodeType": "YulFunctionCall",
"src": "871:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "871:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "844:7:5"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "853:9:5"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "840:3:5"
},
"nodeType": "YulFunctionCall",
"src": "840:23:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "865:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "836:3:5"
},
"nodeType": "YulFunctionCall",
"src": "836:32:5"
},
"nodeType": "YulIf",
"src": "833:119:5"
},
{
"nodeType": "YulBlock",
"src": "962:116:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "977:15:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "991:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "981:6:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1006:62:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1040:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1051:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1036:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1036:22:5"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1060:7:5"
}
],
"functionName": {
"name": "abi_decode_t_bytes4",
"nodeType": "YulIdentifier",
"src": "1016:19:5"
},
"nodeType": "YulFunctionCall",
"src": "1016:52:5"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1006:6:5"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "793:9:5",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "804:7:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "816:6:5",
"type": ""
}
],
"src": "758:327:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1133:48:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1143:32:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1168:5:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1161:6:5"
},
"nodeType": "YulFunctionCall",
"src": "1161:13:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1154:6:5"
},
"nodeType": "YulFunctionCall",
"src": "1154:21:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1143:7:5"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1115:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1125:7:5",
"type": ""
}
],
"src": "1091:90:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1246:50:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1263:3:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1283:5:5"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "1268:14:5"
},
"nodeType": "YulFunctionCall",
"src": "1268:21:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1256:6:5"
},
"nodeType": "YulFunctionCall",
"src": "1256:34:5"
},
"nodeType": "YulExpressionStatement",
"src": "1256:34:5"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1234:5:5",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1241:3:5",
"type": ""
}
],
"src": "1187:109:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1394:118:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1404:26:5",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1416:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1427:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1412:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1412:18:5"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1404:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1478:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1491:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1502:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1487:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1487:17:5"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "1440:37:5"
},
"nodeType": "YulFunctionCall",
"src": "1440:65:5"
},
"nodeType": "YulExpressionStatement",
"src": "1440:65:5"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1366:9:5",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1378:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1389:4:5",
"type": ""
}
],
"src": "1302:210:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1577:40:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1588:22:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1604:5:5"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1598:5:5"
},
"nodeType": "YulFunctionCall",
"src": "1598:12:5"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1588:6:5"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1560:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1570:6:5",
"type": ""
}
],
"src": "1518:99:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1719:73:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1736:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1741:6:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1729:6:5"
},
"nodeType": "YulFunctionCall",
"src": "1729:19:5"
},
"nodeType": "YulExpressionStatement",
"src": "1729:19:5"
},
{
"nodeType": "YulAssignment",
"src": "1757:29:5",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1776:3:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1781:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1772:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1772:14:5"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1757:11:5"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1691:3:5",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1696:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1707:11:5",
"type": ""
}
],
"src": "1623:169:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1860:184:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1870:10:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1879:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1874:1:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1939:63:5",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1964:3:5"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1969:1:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1960:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1960:11:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1983:3:5"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1988:1:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1979:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1979:11:5"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1973:5:5"
},
"nodeType": "YulFunctionCall",
"src": "1973:18:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1953:6:5"
},
"nodeType": "YulFunctionCall",
"src": "1953:39:5"
},
"nodeType": "YulExpressionStatement",
"src": "1953:39:5"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1900:1:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1903:6:5"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1897:2:5"
},
"nodeType": "YulFunctionCall",
"src": "1897:13:5"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1911:19:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1913:15:5",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1922:1:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1925:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1918:3:5"
},
"nodeType": "YulFunctionCall",
"src": "1918:10:5"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1913:1:5"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1893:3:5",
"statements": []
},
"src": "1889:113:5"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2022:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2027:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2018:3:5"
},
"nodeType": "YulFunctionCall",
"src": "2018:16:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2036:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2011:6:5"
},
"nodeType": "YulFunctionCall",
"src": "2011:27:5"
},
"nodeType": "YulExpressionStatement",
"src": "2011:27:5"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1842:3:5",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1847:3:5",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1852:6:5",
"type": ""
}
],
"src": "1798:246:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2098:54:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2108:38:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2126:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2133:2:5",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2122:3:5"
},
"nodeType": "YulFunctionCall",
"src": "2122:14:5"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2142:2:5",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "2138:3:5"
},
"nodeType": "YulFunctionCall",
"src": "2138:7:5"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2118:3:5"
},
"nodeType": "YulFunctionCall",
"src": "2118:28:5"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "2108:6:5"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2081:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "2091:6:5",
"type": ""
}
],
"src": "2050:102:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2250:285:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2260:53:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2307:5:5"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2274:32:5"
},
"nodeType": "YulFunctionCall",
"src": "2274:39:5"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2264:6:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2322:78:5",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2388:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2393:6:5"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2329:58:5"
},
"nodeType": "YulFunctionCall",
"src": "2329:71:5"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2322:3:5"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2448:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2455:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2444:3:5"
},
"nodeType": "YulFunctionCall",
"src": "2444:16:5"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2462:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2467:6:5"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "2409:34:5"
},
"nodeType": "YulFunctionCall",
"src": "2409:65:5"
},
"nodeType": "YulExpressionStatement",
"src": "2409:65:5"
},
{
"nodeType": "YulAssignment",
"src": "2483:46:5",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2494:3:5"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2521:6:5"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2499:21:5"
},
"nodeType": "YulFunctionCall",
"src": "2499:29:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2490:3:5"
},
"nodeType": "YulFunctionCall",
"src": "2490:39:5"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2483:3:5"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2231:5:5",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2238:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2246:3:5",
"type": ""
}
],
"src": "2158:377:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2659:195:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2669:26:5",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2681:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2692:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2677:3:5"
},
"nodeType": "YulFunctionCall",
"src": "2677:18:5"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2669:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2716:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2727:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2712:3:5"
},
"nodeType": "YulFunctionCall",
"src": "2712:17:5"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2735:4:5"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2741:9:5"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2731:3:5"
},
"nodeType": "YulFunctionCall",
"src": "2731:20:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2705:6:5"
},
"nodeType": "YulFunctionCall",
"src": "2705:47:5"
},
"nodeType": "YulExpressionStatement",
"src": "2705:47:5"
},
{
"nodeType": "YulAssignment",
"src": "2761:86:5",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2833:6:5"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2842:4:5"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2769:63:5"
},
"nodeType": "YulFunctionCall",
"src": "2769:78:5"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2761:4:5"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2631:9:5",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2643:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2654:4:5",
"type": ""
}
],
"src": "2541:313:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2949:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2966:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2969:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2959:6:5"
},
"nodeType": "YulFunctionCall",
"src": "2959:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "2959:12:5"
}
]
},
"name": "revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d",
"nodeType": "YulFunctionDefinition",
"src": "2860:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3104:153:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3144:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d",
"nodeType": "YulIdentifier",
"src": "3146:77:5"
},
"nodeType": "YulFunctionCall",
"src": "3146:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "3146:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3125:3:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3130:6:5"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3121:3:5"
},
"nodeType": "YulFunctionCall",
"src": "3121:16:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3139:3:5",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3117:3:5"
},
"nodeType": "YulFunctionCall",
"src": "3117:26:5"
},
"nodeType": "YulIf",
"src": "3114:113:5"
},
{
"nodeType": "YulAssignment",
"src": "3236:15:5",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3245:6:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3236:5:5"
}
]
}
]
},
"name": "abi_decode_t_struct$_Any2EVMMessage_$152_calldata_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3082:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3090:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3098:5:5",
"type": ""
}
],
"src": "3019:238:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3362:456:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3408:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3410:77:5"
},
"nodeType": "YulFunctionCall",
"src": "3410:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "3410:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3383:7:5"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3392:9:5"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3379:3:5"
},
"nodeType": "YulFunctionCall",
"src": "3379:23:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3404:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3375:3:5"
},
"nodeType": "YulFunctionCall",
"src": "3375:32:5"
},
"nodeType": "YulIf",
"src": "3372:119:5"
},
{
"nodeType": "YulBlock",
"src": "3501:310:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3516:45:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3547:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3558:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3543:3:5"
},
"nodeType": "YulFunctionCall",
"src": "3543:17:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3530:12:5"
},
"nodeType": "YulFunctionCall",
"src": "3530:31:5"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3520:6:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3608:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3610:77:5"
},
"nodeType": "YulFunctionCall",
"src": "3610:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "3610:79:5"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3580:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3588:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3577:2:5"
},
"nodeType": "YulFunctionCall",
"src": "3577:30:5"
},
"nodeType": "YulIf",
"src": "3574:117:5"
},
{
"nodeType": "YulAssignment",
"src": "3705:96:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3773:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3784:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3769:3:5"
},
"nodeType": "YulFunctionCall",
"src": "3769:22:5"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3793:7:5"
}
],
"functionName": {
"name": "abi_decode_t_struct$_Any2EVMMessage_$152_calldata_ptr",
"nodeType": "YulIdentifier",
"src": "3715:53:5"
},
"nodeType": "YulFunctionCall",
"src": "3715:86:5"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3705:6:5"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_Any2EVMMessage_$152_calldata_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3332:9:5",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3343:7:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3355:6:5",
"type": ""
}
],
"src": "3263:555:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3869:81:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3879:65:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3894:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3901:42:5",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3890:3:5"
},
"nodeType": "YulFunctionCall",
"src": "3890:54:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3879:7:5"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3851:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3861:7:5",
"type": ""
}
],
"src": "3824:126:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4001:51:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4011:35:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4040:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "4022:17:5"
},
"nodeType": "YulFunctionCall",
"src": "4022:24:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4011:7:5"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3983:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3993:7:5",
"type": ""
}
],
"src": "3956:96:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4123:53:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4140:3:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4163:5:5"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "4145:17:5"
},
"nodeType": "YulFunctionCall",
"src": "4145:24:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4133:6:5"
},
"nodeType": "YulFunctionCall",
"src": "4133:37:5"
},
"nodeType": "YulExpressionStatement",
"src": "4133:37:5"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4111:5:5",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4118:3:5",
"type": ""
}
],
"src": "4058:118:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4280:124:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4290:26:5",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4302:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4313:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4298:3:5"
},
"nodeType": "YulFunctionCall",
"src": "4298:18:5"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4290:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4370:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4383:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4394:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4379:3:5"
},
"nodeType": "YulFunctionCall",
"src": "4379:17:5"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "4326:43:5"
},
"nodeType": "YulFunctionCall",
"src": "4326:71:5"
},
"nodeType": "YulExpressionStatement",
"src": "4326:71:5"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4252:9:5",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4264:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4275:4:5",
"type": ""
}
],
"src": "4182:222:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4438:152:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4455:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4458:77:5",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4448:6:5"
},
"nodeType": "YulFunctionCall",
"src": "4448:88:5"
},
"nodeType": "YulExpressionStatement",
"src": "4448:88:5"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4552:1:5",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4555:4:5",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4545:6:5"
},
"nodeType": "YulFunctionCall",
"src": "4545:15:5"
},
"nodeType": "YulExpressionStatement",
"src": "4545:15:5"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4576:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4579:4:5",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4569:6:5"
},
"nodeType": "YulFunctionCall",
"src": "4569:15:5"
},
"nodeType": "YulExpressionStatement",
"src": "4569:15:5"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "4410:180:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4647:269:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4657:22:5",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4671:4:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4677:1:5",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "4667:3:5"
},
"nodeType": "YulFunctionCall",
"src": "4667:12:5"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4657:6:5"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4688:38:5",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4718:4:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4724:1:5",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4714:3:5"
},
"nodeType": "YulFunctionCall",
"src": "4714:12:5"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "4692:18:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4765:51:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4779:27:5",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4793:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4801:4:5",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4789:3:5"
},
"nodeType": "YulFunctionCall",
"src": "4789:17:5"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4779:6:5"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4745:18:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4738:6:5"
},
"nodeType": "YulFunctionCall",
"src": "4738:26:5"
},
"nodeType": "YulIf",
"src": "4735:81:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4868:42:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "4882:16:5"
},
"nodeType": "YulFunctionCall",
"src": "4882:18:5"
},
"nodeType": "YulExpressionStatement",
"src": "4882:18:5"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4832:18:5"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4855:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4863:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4852:2:5"
},
"nodeType": "YulFunctionCall",
"src": "4852:14:5"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4829:2:5"
},
"nodeType": "YulFunctionCall",
"src": "4829:38:5"
},
"nodeType": "YulIf",
"src": "4826:84:5"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "4631:4:5",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4640:6:5",
"type": ""
}
],
"src": "4596:320:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5011:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5028:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5031:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5021:6:5"
},
"nodeType": "YulFunctionCall",
"src": "5021:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "5021:12:5"
}
]
},
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulFunctionDefinition",
"src": "4922:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5073:152:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5090:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5093:77:5",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5083:6:5"
},
"nodeType": "YulFunctionCall",
"src": "5083:88:5"
},
"nodeType": "YulExpressionStatement",
"src": "5083:88:5"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5187:1:5",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5190:4:5",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5180:6:5"
},
"nodeType": "YulFunctionCall",
"src": "5180:15:5"
},
"nodeType": "YulExpressionStatement",
"src": "5180:15:5"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5211:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5214:4:5",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5204:6:5"
},
"nodeType": "YulFunctionCall",
"src": "5204:15:5"
},
"nodeType": "YulExpressionStatement",
"src": "5204:15:5"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "5045:180:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5274:238:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5284:58:5",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5306:6:5"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5336:4:5"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "5314:21:5"
},
"nodeType": "YulFunctionCall",
"src": "5314:27:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5302:3:5"
},
"nodeType": "YulFunctionCall",
"src": "5302:40:5"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "5288:10:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5453:22:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "5455:16:5"
},
"nodeType": "YulFunctionCall",
"src": "5455:18:5"
},
"nodeType": "YulExpressionStatement",
"src": "5455:18:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "5396:10:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5408:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5393:2:5"
},
"nodeType": "YulFunctionCall",
"src": "5393:34:5"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "5432:10:5"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5444:6:5"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5429:2:5"
},
"nodeType": "YulFunctionCall",
"src": "5429:22:5"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "5390:2:5"
},
"nodeType": "YulFunctionCall",
"src": "5390:62:5"
},
"nodeType": "YulIf",
"src": "5387:88:5"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5491:2:5",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "5495:10:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5484:6:5"
},
"nodeType": "YulFunctionCall",
"src": "5484:22:5"
},
"nodeType": "YulExpressionStatement",
"src": "5484:22:5"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5260:6:5",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "5268:4:5",
"type": ""
}
],
"src": "5231:281:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5559:88:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5569:30:5",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "5579:18:5"
},
"nodeType": "YulFunctionCall",
"src": "5579:20:5"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5569:6:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5628:6:5"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5636:4:5"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "5608:19:5"
},
"nodeType": "YulFunctionCall",
"src": "5608:33:5"
},
"nodeType": "YulExpressionStatement",
"src": "5608:33:5"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "5543:4:5",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5552:6:5",
"type": ""
}
],
"src": "5518:129:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5742:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5759:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5762:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5752:6:5"
},
"nodeType": "YulFunctionCall",
"src": "5752:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "5752:12:5"
}
]
},
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nodeType": "YulFunctionDefinition",
"src": "5653:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5821:32:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5831:16:5",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5842:5:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5831:7:5"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5803:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5813:7:5",
"type": ""
}
],
"src": "5776:77:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5902:79:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5959:16:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5968:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5971:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5961:6:5"
},
"nodeType": "YulFunctionCall",
"src": "5961:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "5961:12:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5925:5:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5950:5:5"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "5932:17:5"
},
"nodeType": "YulFunctionCall",
"src": "5932:24:5"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "5922:2:5"
},
"nodeType": "YulFunctionCall",
"src": "5922:35:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5915:6:5"
},
"nodeType": "YulFunctionCall",
"src": "5915:43:5"
},
"nodeType": "YulIf",
"src": "5912:63:5"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5895:5:5",
"type": ""
}
],
"src": "5859:122:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6039:87:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6049:29:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6071:6:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6058:12:5"
},
"nodeType": "YulFunctionCall",
"src": "6058:20:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6049:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6114:5:5"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "6087:26:5"
},
"nodeType": "YulFunctionCall",
"src": "6087:33:5"
},
"nodeType": "YulExpressionStatement",
"src": "6087:33:5"
}
]
},
"name": "abi_decode_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6017:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6025:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6033:5:5",
"type": ""
}
],
"src": "5987:139:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6176:57:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6186:41:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6201:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6208:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6197:3:5"
},
"nodeType": "YulFunctionCall",
"src": "6197:30:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6186:7:5"
}
]
}
]
},
"name": "cleanup_t_uint64",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6158:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6168:7:5",
"type": ""
}
],
"src": "6132:101:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6281:78:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6337:16:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6346:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6349:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6339:6:5"
},
"nodeType": "YulFunctionCall",
"src": "6339:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "6339:12:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6304:5:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6328:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint64",
"nodeType": "YulIdentifier",
"src": "6311:16:5"
},
"nodeType": "YulFunctionCall",
"src": "6311:23:5"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6301:2:5"
},
"nodeType": "YulFunctionCall",
"src": "6301:34:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6294:6:5"
},
"nodeType": "YulFunctionCall",
"src": "6294:42:5"
},
"nodeType": "YulIf",
"src": "6291:62:5"
}
]
},
"name": "validator_revert_t_uint64",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6274:5:5",
"type": ""
}
],
"src": "6239:120:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6416:86:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6426:29:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6448:6:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6435:12:5"
},
"nodeType": "YulFunctionCall",
"src": "6435:20:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6426:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6490:5:5"
}
],
"functionName": {
"name": "validator_revert_t_uint64",
"nodeType": "YulIdentifier",
"src": "6464:25:5"
},
"nodeType": "YulFunctionCall",
"src": "6464:32:5"
},
"nodeType": "YulExpressionStatement",
"src": "6464:32:5"
}
]
},
"name": "abi_decode_t_uint64",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6394:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6402:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6410:5:5",
"type": ""
}
],
"src": "6365:137:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6597:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6614:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6617:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6607:6:5"
},
"nodeType": "YulFunctionCall",
"src": "6607:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "6607:12:5"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "6508:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6720:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6737:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6740:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6730:6:5"
},
"nodeType": "YulFunctionCall",
"src": "6730:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "6730:12:5"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "6631:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6820:241:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6925:22:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "6927:16:5"
},
"nodeType": "YulFunctionCall",
"src": "6927:18:5"
},
"nodeType": "YulExpressionStatement",
"src": "6927:18:5"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6897:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6905:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6894:2:5"
},
"nodeType": "YulFunctionCall",
"src": "6894:30:5"
},
"nodeType": "YulIf",
"src": "6891:56:5"
},
{
"nodeType": "YulAssignment",
"src": "6957:37:5",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6987:6:5"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "6965:21:5"
},
"nodeType": "YulFunctionCall",
"src": "6965:29:5"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "6957:4:5"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7031:23:5",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7043:4:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7049:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7039:3:5"
},
"nodeType": "YulFunctionCall",
"src": "7039:15:5"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7031:4:5"
}
]
}
]
},
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6804:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "6815:4:5",
"type": ""
}
],
"src": "6754:307:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7131:82:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "7154:3:5"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "7159:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7164:6:5"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "7141:12:5"
},
"nodeType": "YulFunctionCall",
"src": "7141:30:5"
},
"nodeType": "YulExpressionStatement",
"src": "7141:30:5"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "7191:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7196:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7187:3:5"
},
"nodeType": "YulFunctionCall",
"src": "7187:16:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7205:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7180:6:5"
},
"nodeType": "YulFunctionCall",
"src": "7180:27:5"
},
"nodeType": "YulExpressionStatement",
"src": "7180:27:5"
}
]
},
"name": "copy_calldata_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "7113:3:5",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "7118:3:5",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7123:6:5",
"type": ""
}
],
"src": "7067:146:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7302:340:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7312:74:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7378:6:5"
}
],
"functionName": {
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7337:40:5"
},
"nodeType": "YulFunctionCall",
"src": "7337:48:5"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "7321:15:5"
},
"nodeType": "YulFunctionCall",
"src": "7321:65:5"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7312:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7402:5:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7409:6:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7395:6:5"
},
"nodeType": "YulFunctionCall",
"src": "7395:21:5"
},
"nodeType": "YulExpressionStatement",
"src": "7395:21:5"
},
{
"nodeType": "YulVariableDeclaration",
"src": "7425:27:5",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7440:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7447:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7436:3:5"
},
"nodeType": "YulFunctionCall",
"src": "7436:16:5"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "7429:3:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7490:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "7492:77:5"
},
"nodeType": "YulFunctionCall",
"src": "7492:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "7492:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "7471:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7476:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7467:3:5"
},
"nodeType": "YulFunctionCall",
"src": "7467:16:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7485:3:5"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7464:2:5"
},
"nodeType": "YulFunctionCall",
"src": "7464:25:5"
},
"nodeType": "YulIf",
"src": "7461:112:5"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "7619:3:5"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "7624:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7629:6:5"
}
],
"functionName": {
"name": "copy_calldata_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "7582:36:5"
},
"nodeType": "YulFunctionCall",
"src": "7582:54:5"
},
"nodeType": "YulExpressionStatement",
"src": "7582:54:5"
}
]
},
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "7275:3:5",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7280:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7288:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "7296:5:5",
"type": ""
}
],
"src": "7219:423:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7722:277:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "7771:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "7773:77:5"
},
"nodeType": "YulFunctionCall",
"src": "7773:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "7773:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7750:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7758:4:5",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7746:3:5"
},
"nodeType": "YulFunctionCall",
"src": "7746:17:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7765:3:5"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "7742:3:5"
},
"nodeType": "YulFunctionCall",
"src": "7742:27:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "7735:6:5"
},
"nodeType": "YulFunctionCall",
"src": "7735:35:5"
},
"nodeType": "YulIf",
"src": "7732:122:5"
},
{
"nodeType": "YulVariableDeclaration",
"src": "7863:34:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7890:6:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "7877:12:5"
},
"nodeType": "YulFunctionCall",
"src": "7877:20:5"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7867:6:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7906:87:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7966:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7974:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7962:3:5"
},
"nodeType": "YulFunctionCall",
"src": "7962:17:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7981:6:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7989:3:5"
}
],
"functionName": {
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7915:46:5"
},
"nodeType": "YulFunctionCall",
"src": "7915:78:5"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "7906:5:5"
}
]
}
]
},
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "7700:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7708:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "7716:5:5",
"type": ""
}
],
"src": "7661:338:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8118:229:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8223:22:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "8225:16:5"
},
"nodeType": "YulFunctionCall",
"src": "8225:18:5"
},
"nodeType": "YulExpressionStatement",
"src": "8225:18:5"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8195:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8203:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "8192:2:5"
},
"nodeType": "YulFunctionCall",
"src": "8192:30:5"
},
"nodeType": "YulIf",
"src": "8189:56:5"
},
{
"nodeType": "YulAssignment",
"src": "8255:25:5",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8267:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8275:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "8263:3:5"
},
"nodeType": "YulFunctionCall",
"src": "8263:17:5"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8255:4:5"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8317:23:5",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8329:4:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8335:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8325:3:5"
},
"nodeType": "YulFunctionCall",
"src": "8325:15:5"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8317:4:5"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "8102:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "8113:4:5",
"type": ""
}
],
"src": "8005:342:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8442:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8459:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8462:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8452:6:5"
},
"nodeType": "YulFunctionCall",
"src": "8452:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "8452:12:5"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "8353:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8519:79:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8576:16:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8585:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8588:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8578:6:5"
},
"nodeType": "YulFunctionCall",
"src": "8578:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "8578:12:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8542:5:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8567:5:5"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "8549:17:5"
},
"nodeType": "YulFunctionCall",
"src": "8549:24:5"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8539:2:5"
},
"nodeType": "YulFunctionCall",
"src": "8539:35:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8532:6:5"
},
"nodeType": "YulFunctionCall",
"src": "8532:43:5"
},
"nodeType": "YulIf",
"src": "8529:63:5"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8512:5:5",
"type": ""
}
],
"src": "8476:122:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8656:87:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8666:29:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8688:6:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "8675:12:5"
},
"nodeType": "YulFunctionCall",
"src": "8675:20:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8666:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8731:5:5"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "8704:26:5"
},
"nodeType": "YulFunctionCall",
"src": "8704:33:5"
},
"nodeType": "YulExpressionStatement",
"src": "8704:33:5"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8634:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8642:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8650:5:5",
"type": ""
}
],
"src": "8604:139:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8794:32:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8804:16:5",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "8815:5:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "8804:7:5"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8776:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "8786:7:5",
"type": ""
}
],
"src": "8749:77:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8875:79:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8932:16:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8941:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8944:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8934:6:5"
},
"nodeType": "YulFunctionCall",
"src": "8934:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "8934:12:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8898:5:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8923:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8905:17:5"
},
"nodeType": "YulFunctionCall",
"src": "8905:24:5"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8895:2:5"
},
"nodeType": "YulFunctionCall",
"src": "8895:35:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8888:6:5"
},
"nodeType": "YulFunctionCall",
"src": "8888:43:5"
},
"nodeType": "YulIf",
"src": "8885:63:5"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8868:5:5",
"type": ""
}
],
"src": "8832:122:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9012:87:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9022:29:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9044:6:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "9031:12:5"
},
"nodeType": "YulFunctionCall",
"src": "9031:20:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9022:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9087:5:5"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "9060:26:5"
},
"nodeType": "YulFunctionCall",
"src": "9060:33:5"
},
"nodeType": "YulExpressionStatement",
"src": "9060:33:5"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8990:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8998:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9006:5:5",
"type": ""
}
],
"src": "8960:139:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9227:497:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9271:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulIdentifier",
"src": "9273:77:5"
},
"nodeType": "YulFunctionCall",
"src": "9273:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "9273:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9248:3:5"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9253:9:5"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9244:3:5"
},
"nodeType": "YulFunctionCall",
"src": "9244:19:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9265:4:5",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "9240:3:5"
},
"nodeType": "YulFunctionCall",
"src": "9240:30:5"
},
"nodeType": "YulIf",
"src": "9237:117:5"
},
{
"nodeType": "YulAssignment",
"src": "9363:30:5",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9388:4:5",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "9372:15:5"
},
"nodeType": "YulFunctionCall",
"src": "9372:21:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9363:5:5"
}
]
},
{
"nodeType": "YulBlock",
"src": "9403:151:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9439:15:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9453:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9443:6:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9479:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9486:4:5",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9475:3:5"
},
"nodeType": "YulFunctionCall",
"src": "9475:16:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9518:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9529:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9514:3:5"
},
"nodeType": "YulFunctionCall",
"src": "9514:22:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9538:3:5"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "9493:20:5"
},
"nodeType": "YulFunctionCall",
"src": "9493:49:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9468:6:5"
},
"nodeType": "YulFunctionCall",
"src": "9468:75:5"
},
"nodeType": "YulExpressionStatement",
"src": "9468:75:5"
}
]
},
{
"nodeType": "YulBlock",
"src": "9564:153:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9601:16:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9615:2:5",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9605:6:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9642:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9649:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9638:3:5"
},
"nodeType": "YulFunctionCall",
"src": "9638:16:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9681:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9692:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9677:3:5"
},
"nodeType": "YulFunctionCall",
"src": "9677:22:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9701:3:5"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "9656:20:5"
},
"nodeType": "YulFunctionCall",
"src": "9656:49:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9631:6:5"
},
"nodeType": "YulFunctionCall",
"src": "9631:75:5"
},
"nodeType": "YulExpressionStatement",
"src": "9631:75:5"
}
]
}
]
},
"name": "abi_decode_t_struct$_EVMTokenAmount_$139_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9202:9:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9213:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9221:5:5",
"type": ""
}
],
"src": "9141:583:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9901:670:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9911:121:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "10024:6:5"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "9936:87:5"
},
"nodeType": "YulFunctionCall",
"src": "9936:95:5"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "9920:15:5"
},
"nodeType": "YulFunctionCall",
"src": "9920:112:5"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "9911:5:5"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "10041:16:5",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "10052:5:5"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "10045:3:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "10074:5:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "10081:6:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10067:6:5"
},
"nodeType": "YulFunctionCall",
"src": "10067:21:5"
},
"nodeType": "YulExpressionStatement",
"src": "10067:21:5"
},
{
"nodeType": "YulAssignment",
"src": "10097:23:5",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "10108:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10115:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10104:3:5"
},
"nodeType": "YulFunctionCall",
"src": "10104:16:5"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "10097:3:5"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "10130:44:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10148:6:5"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "10160:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10168:4:5",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "10156:3:5"
},
"nodeType": "YulFunctionCall",
"src": "10156:17:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10144:3:5"
},
"nodeType": "YulFunctionCall",
"src": "10144:30:5"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "10134:6:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10202:103:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "10216:77:5"
},
"nodeType": "YulFunctionCall",
"src": "10216:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "10216:79:5"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "10189:6:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10197:3:5"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "10186:2:5"
},
"nodeType": "YulFunctionCall",
"src": "10186:15:5"
},
"nodeType": "YulIf",
"src": "10183:122:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10390:175:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10405:21:5",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "10423:3:5"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "10409:10:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "10447:3:5"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "10504:10:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10516:3:5"
}
],
"functionName": {
"name": "abi_decode_t_struct$_EVMTokenAmount_$139_memory_ptr",
"nodeType": "YulIdentifier",
"src": "10452:51:5"
},
"nodeType": "YulFunctionCall",
"src": "10452:68:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10440:6:5"
},
"nodeType": "YulFunctionCall",
"src": "10440:81:5"
},
"nodeType": "YulExpressionStatement",
"src": "10440:81:5"
},
{
"nodeType": "YulAssignment",
"src": "10534:21:5",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "10545:3:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10550:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10541:3:5"
},
"nodeType": "YulFunctionCall",
"src": "10541:14:5"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "10534:3:5"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "10343:3:5"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "10348:6:5"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "10340:2:5"
},
"nodeType": "YulFunctionCall",
"src": "10340:15:5"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "10356:25:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10358:21:5",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "10369:3:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10374:4:5",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10365:3:5"
},
"nodeType": "YulFunctionCall",
"src": "10365:14:5"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "10358:3:5"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "10318:21:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10320:17:5",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10331:6:5"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "10324:3:5",
"type": ""
}
]
}
]
},
"src": "10314:251:5"
}
]
},
"name": "abi_decode_available_length_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9871:6:5",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "9879:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9887:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "9895:5:5",
"type": ""
}
],
"src": "9768:803:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10723:324:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10772:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "10774:77:5"
},
"nodeType": "YulFunctionCall",
"src": "10774:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "10774:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10751:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10759:4:5",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10747:3:5"
},
"nodeType": "YulFunctionCall",
"src": "10747:17:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10766:3:5"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "10743:3:5"
},
"nodeType": "YulFunctionCall",
"src": "10743:27:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "10736:6:5"
},
"nodeType": "YulFunctionCall",
"src": "10736:35:5"
},
"nodeType": "YulIf",
"src": "10733:122:5"
},
{
"nodeType": "YulVariableDeclaration",
"src": "10864:34:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10891:6:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "10878:12:5"
},
"nodeType": "YulFunctionCall",
"src": "10878:20:5"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "10868:6:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10907:134:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11014:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11022:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11010:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11010:17:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "11029:6:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11037:3:5"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "10916:93:5"
},
"nodeType": "YulFunctionCall",
"src": "10916:125:5"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "10907:5:5"
}
]
}
]
},
"name": "abi_decode_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10701:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "10709:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "10717:5:5",
"type": ""
}
],
"src": "10615:432:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11175:1565:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11219:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulIdentifier",
"src": "11221:77:5"
},
"nodeType": "YulFunctionCall",
"src": "11221:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "11221:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11196:3:5"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11201:9:5"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11192:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11192:19:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11213:4:5",
"type": "",
"value": "0xa0"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "11188:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11188:30:5"
},
"nodeType": "YulIf",
"src": "11185:117:5"
},
{
"nodeType": "YulAssignment",
"src": "11311:30:5",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11336:4:5",
"type": "",
"value": "0xa0"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "11320:15:5"
},
"nodeType": "YulFunctionCall",
"src": "11320:21:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11311:5:5"
}
]
},
{
"nodeType": "YulBlock",
"src": "11351:155:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11391:15:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11405:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11395:6:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11431:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11438:4:5",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11427:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11427:16:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11470:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11481:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11466:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11466:22:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11490:3:5"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nodeType": "YulIdentifier",
"src": "11445:20:5"
},
"nodeType": "YulFunctionCall",
"src": "11445:49:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11420:6:5"
},
"nodeType": "YulFunctionCall",
"src": "11420:75:5"
},
"nodeType": "YulExpressionStatement",
"src": "11420:75:5"
}
]
},
{
"nodeType": "YulBlock",
"src": "11516:165:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11566:16:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11580:2:5",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11570:6:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11607:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11614:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11603:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11603:16:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11645:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11656:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11641:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11641:22:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11665:3:5"
}
],
"functionName": {
"name": "abi_decode_t_uint64",
"nodeType": "YulIdentifier",
"src": "11621:19:5"
},
"nodeType": "YulFunctionCall",
"src": "11621:48:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11596:6:5"
},
"nodeType": "YulFunctionCall",
"src": "11596:74:5"
},
"nodeType": "YulExpressionStatement",
"src": "11596:74:5"
}
]
},
{
"nodeType": "YulBlock",
"src": "11691:322:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11728:46:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11759:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11770:2:5",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11755:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11755:18:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "11742:12:5"
},
"nodeType": "YulFunctionCall",
"src": "11742:32:5"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11732:6:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "11821:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nodeType": "YulIdentifier",
"src": "11823:77:5"
},
"nodeType": "YulFunctionCall",
"src": "11823:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "11823:79:5"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11793:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11801:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "11790:2:5"
},
"nodeType": "YulFunctionCall",
"src": "11790:30:5"
},
"nodeType": "YulIf",
"src": "11787:117:5"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11929:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11936:4:5",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11925:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11925:16:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11977:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11988:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11973:3:5"
},
"nodeType": "YulFunctionCall",
"src": "11973:22:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11997:3:5"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "11943:29:5"
},
"nodeType": "YulFunctionCall",
"src": "11943:58:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11918:6:5"
},
"nodeType": "YulFunctionCall",
"src": "11918:84:5"
},
"nodeType": "YulExpressionStatement",
"src": "11918:84:5"
}
]
},
{
"nodeType": "YulBlock",
"src": "12023:320:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12058:46:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12089:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12100:2:5",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12085:3:5"
},
"nodeType": "YulFunctionCall",
"src": "12085:18:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "12072:12:5"
},
"nodeType": "YulFunctionCall",
"src": "12072:32:5"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12062:6:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "12151:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nodeType": "YulIdentifier",
"src": "12153:77:5"
},
"nodeType": "YulFunctionCall",
"src": "12153:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "12153:79:5"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12123:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12131:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "12120:2:5"
},
"nodeType": "YulFunctionCall",
"src": "12120:30:5"
},
"nodeType": "YulIf",
"src": "12117:117:5"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12259:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12266:4:5",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12255:3:5"
},
"nodeType": "YulFunctionCall",
"src": "12255:16:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12307:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12318:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12303:3:5"
},
"nodeType": "YulFunctionCall",
"src": "12303:22:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12327:3:5"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "12273:29:5"
},
"nodeType": "YulFunctionCall",
"src": "12273:58:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12248:6:5"
},
"nodeType": "YulFunctionCall",
"src": "12248:84:5"
},
"nodeType": "YulExpressionStatement",
"src": "12248:84:5"
}
]
},
{
"nodeType": "YulBlock",
"src": "12353:380:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12400:47:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12431:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12442:3:5",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12427:3:5"
},
"nodeType": "YulFunctionCall",
"src": "12427:19:5"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "12414:12:5"
},
"nodeType": "YulFunctionCall",
"src": "12414:33:5"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12404:6:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "12494:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nodeType": "YulIdentifier",
"src": "12496:77:5"
},
"nodeType": "YulFunctionCall",
"src": "12496:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "12496:79:5"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12466:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12474:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "12463:2:5"
},
"nodeType": "YulFunctionCall",
"src": "12463:30:5"
},
"nodeType": "YulIf",
"src": "12460:117:5"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12602:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12609:4:5",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12598:3:5"
},
"nodeType": "YulFunctionCall",
"src": "12598:16:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12697:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12708:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12693:3:5"
},
"nodeType": "YulFunctionCall",
"src": "12693:22:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12717:3:5"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "12616:76:5"
},
"nodeType": "YulFunctionCall",
"src": "12616:105:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12591:6:5"
},
"nodeType": "YulFunctionCall",
"src": "12591:131:5"
},
"nodeType": "YulExpressionStatement",
"src": "12591:131:5"
}
]
}
]
},
"name": "abi_decode_t_struct$_Any2EVMMessage_$152_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11150:9:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11161:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11169:5:5",
"type": ""
}
],
"src": "11089:1651:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12870:105:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12881:87:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12946:5:5"
},
{
"arguments": [],
"functionName": {
"name": "calldatasize",
"nodeType": "YulIdentifier",
"src": "12953:12:5"
},
"nodeType": "YulFunctionCall",
"src": "12953:14:5"
}
],
"functionName": {
"name": "abi_decode_t_struct$_Any2EVMMessage_$152_memory_ptr",
"nodeType": "YulIdentifier",
"src": "12894:51:5"
},
"nodeType": "YulFunctionCall",
"src": "12894:74:5"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "12881:9:5"
}
]
}
]
},
"name": "convert_t_struct$_Any2EVMMessage_$152_calldata_ptr_to_t_struct$_Any2EVMMessage_$152_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12850:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "12860:9:5",
"type": ""
}
],
"src": "12746:229:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13034:51:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13044:35:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13073:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "13055:17:5"
},
"nodeType": "YulFunctionCall",
"src": "13055:24:5"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "13044:7:5"
}
]
}
]
},
"name": "cleanup_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13016:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "13026:7:5",
"type": ""
}
],
"src": "12981:104:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13142:87:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13207:16:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13216:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13219:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "13209:6:5"
},
"nodeType": "YulFunctionCall",
"src": "13209:12:5"
},
"nodeType": "YulExpressionStatement",
"src": "13209:12:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13165:5:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13198:5:5"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "13172:25:5"
},
"nodeType": "YulFunctionCall",
"src": "13172:32:5"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "13162:2:5"
},
"nodeType": "YulFunctionCall",
"src": "13162:43:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "13155:6:5"
},
"nodeType": "YulFunctionCall",
"src": "13155:51:5"
},
"nodeType": "YulIf",
"src": "13152:71:5"
}
]
},
"name": "validator_revert_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13135:5:5",
"type": ""
}
],
"src": "13091:138:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13306:88:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13316:22:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13331:6:5"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "13325:5:5"
},
"nodeType": "YulFunctionCall",
"src": "13325:13:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13316:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13382:5:5"
}
],
"functionName": {
"name": "validator_revert_t_address_payable",
"nodeType": "YulIdentifier",
"src": "13347:34:5"
},
"nodeType": "YulFunctionCall",
"src": "13347:41:5"
},
"nodeType": "YulExpressionStatement",
"src": "13347:41:5"
}
]
},
"name": "abi_decode_t_address_payable_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13284:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "13292:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13300:5:5",
"type": ""
}
],
"src": "13235:159:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13485:282:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13531:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "13533:77:5"
},
"nodeType": "YulFunctionCall",
"src": "13533:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "13533:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13506:7:5"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13515:9:5"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "13502:3:5"
},
"nodeType": "YulFunctionCall",
"src": "13502:23:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13527:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "13498:3:5"
},
"nodeType": "YulFunctionCall",
"src": "13498:32:5"
},
"nodeType": "YulIf",
"src": "13495:119:5"
},
{
"nodeType": "YulBlock",
"src": "13624:136:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13639:15:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "13653:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13643:6:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "13668:82:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13722:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13733:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13718:3:5"
},
"nodeType": "YulFunctionCall",
"src": "13718:22:5"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13742:7:5"
}
],
"functionName": {
"name": "abi_decode_t_address_payable_fromMemory",
"nodeType": "YulIdentifier",
"src": "13678:39:5"
},
"nodeType": "YulFunctionCall",
"src": "13678:72:5"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "13668:6:5"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address_payable_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13455:9:5",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "13466:7:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "13478:6:5",
"type": ""
}
],
"src": "13400:367:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13840:241:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13945:22:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "13947:16:5"
},
"nodeType": "YulFunctionCall",
"src": "13947:18:5"
},
"nodeType": "YulExpressionStatement",
"src": "13947:18:5"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "13917:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13925:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "13914:2:5"
},
"nodeType": "YulFunctionCall",
"src": "13914:30:5"
},
"nodeType": "YulIf",
"src": "13911:56:5"
},
{
"nodeType": "YulAssignment",
"src": "13977:37:5",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14007:6:5"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "13985:21:5"
},
"nodeType": "YulFunctionCall",
"src": "13985:29:5"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "13977:4:5"
}
]
},
{
"nodeType": "YulAssignment",
"src": "14051:23:5",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "14063:4:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14069:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14059:3:5"
},
"nodeType": "YulFunctionCall",
"src": "14059:15:5"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "14051:4:5"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "13824:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "13835:4:5",
"type": ""
}
],
"src": "13773:308:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14182:339:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14192:75:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14259:6:5"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "14217:41:5"
},
"nodeType": "YulFunctionCall",
"src": "14217:49:5"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "14201:15:5"
},
"nodeType": "YulFunctionCall",
"src": "14201:66:5"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "14192:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "14283:5:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14290:6:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14276:6:5"
},
"nodeType": "YulFunctionCall",
"src": "14276:21:5"
},
"nodeType": "YulExpressionStatement",
"src": "14276:21:5"
},
{
"nodeType": "YulVariableDeclaration",
"src": "14306:27:5",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "14321:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14328:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14317:3:5"
},
"nodeType": "YulFunctionCall",
"src": "14317:16:5"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "14310:3:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "14371:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "14373:77:5"
},
"nodeType": "YulFunctionCall",
"src": "14373:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "14373:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "14352:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14357:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14348:3:5"
},
"nodeType": "YulFunctionCall",
"src": "14348:16:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "14366:3:5"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "14345:2:5"
},
"nodeType": "YulFunctionCall",
"src": "14345:25:5"
},
"nodeType": "YulIf",
"src": "14342:112:5"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "14498:3:5"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "14503:3:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14508:6:5"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "14463:34:5"
},
"nodeType": "YulFunctionCall",
"src": "14463:52:5"
},
"nodeType": "YulExpressionStatement",
"src": "14463:52:5"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "14155:3:5",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "14160:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "14168:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "14176:5:5",
"type": ""
}
],
"src": "14087:434:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14614:282:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "14663:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "14665:77:5"
},
"nodeType": "YulFunctionCall",
"src": "14665:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "14665:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "14642:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14650:4:5",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14638:3:5"
},
"nodeType": "YulFunctionCall",
"src": "14638:17:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "14657:3:5"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "14634:3:5"
},
"nodeType": "YulFunctionCall",
"src": "14634:27:5"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "14627:6:5"
},
"nodeType": "YulFunctionCall",
"src": "14627:35:5"
},
"nodeType": "YulIf",
"src": "14624:122:5"
},
{
"nodeType": "YulVariableDeclaration",
"src": "14755:27:5",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "14775:6:5"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "14769:5:5"
},
"nodeType": "YulFunctionCall",
"src": "14769:13:5"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "14759:6:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "14791:99:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "14863:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14871:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14859:3:5"
},
"nodeType": "YulFunctionCall",
"src": "14859:17:5"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14878:6:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "14886:3:5"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "14800:58:5"
},
"nodeType": "YulFunctionCall",
"src": "14800:90:5"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "14791:5:5"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "14592:6:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "14600:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "14608:5:5",
"type": ""
}
],
"src": "14541:355:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14989:437:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "15035:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "15037:77:5"
},
"nodeType": "YulFunctionCall",
"src": "15037:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "15037:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "15010:7:5"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15019:9:5"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "15006:3:5"
},
"nodeType": "YulFunctionCall",
"src": "15006:23:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15031:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "15002:3:5"
},
"nodeType": "YulFunctionCall",
"src": "15002:32:5"
},
"nodeType": "YulIf",
"src": "14999:119:5"
},
{
"nodeType": "YulBlock",
"src": "15128:291:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "15143:38:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15167:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15178:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15163:3:5"
},
"nodeType": "YulFunctionCall",
"src": "15163:17:5"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "15157:5:5"
},
"nodeType": "YulFunctionCall",
"src": "15157:24:5"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "15147:6:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "15228:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "15230:77:5"
},
"nodeType": "YulFunctionCall",
"src": "15230:79:5"
},
"nodeType": "YulExpressionStatement",
"src": "15230:79:5"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "15200:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15208:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "15197:2:5"
},
"nodeType": "YulFunctionCall",
"src": "15197:30:5"
},
"nodeType": "YulIf",
"src": "15194:117:5"
},
{
"nodeType": "YulAssignment",
"src": "15325:84:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15381:9:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "15392:6:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15377:3:5"
},
"nodeType": "YulFunctionCall",
"src": "15377:22:5"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "15401:7:5"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "15335:41:5"
},
"nodeType": "YulFunctionCall",
"src": "15335:74:5"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "15325:6:5"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "14959:9:5",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "14970:7:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "14982:6:5",
"type": ""
}
],
"src": "14902:524:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15486:87:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15496:11:5",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "15504:3:5"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "15496:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15524:1:5",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "15527:3:5"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15517:6:5"
},
"nodeType": "YulFunctionCall",
"src": "15517:14:5"
},
"nodeType": "YulExpressionStatement",
"src": "15517:14:5"
},
{
"nodeType": "YulAssignment",
"src": "15540:26:5",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15558:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15561:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "15548:9:5"
},
"nodeType": "YulFunctionCall",
"src": "15548:18:5"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "15540:4:5"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "15473:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "15481:4:5",
"type": ""
}
],
"src": "15432:141:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15623:49:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15633:33:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "15651:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15658:2:5",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15647:3:5"
},
"nodeType": "YulFunctionCall",
"src": "15647:14:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15663:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "15643:3:5"
},
"nodeType": "YulFunctionCall",
"src": "15643:23:5"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "15633:6:5"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "15606:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "15616:6:5",
"type": ""
}
],
"src": "15579:93:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15731:54:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15741:37:5",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "15766:4:5"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "15772:5:5"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "15762:3:5"
},
"nodeType": "YulFunctionCall",
"src": "15762:16:5"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "15741:8:5"
}
]
}
]
},
"name": "shift_left_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "15706:4:5",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "15712:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "15722:8:5",
"type": ""
}
],
"src": "15678:107:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15867:317:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "15877:35:5",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nodeType": "YulIdentifier",
"src": "15898:10:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15910:1:5",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "15894:3:5"
},
"nodeType": "YulFunctionCall",
"src": "15894:18:5"
},
"variables": [
{
"name": "shiftBits",
"nodeType": "YulTypedName",
"src": "15881:9:5",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "15921:109:5",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "15952:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15963:66:5",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "15933:18:5"
},
"nodeType": "YulFunctionCall",
"src": "15933:97:5"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "15925:4:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "16039:51:5",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "16070:9:5"
},
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "16081:8:5"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "16051:18:5"
},
"nodeType": "YulFunctionCall",
"src": "16051:39:5"
},
"variableNames": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "16039:8:5"
}
]
},
{
"nodeType": "YulAssignment",
"src": "16099:30:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16112:5:5"
},
{
"arguments": [
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "16123:4:5"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "16119:3:5"
},
"nodeType": "YulFunctionCall",
"src": "16119:9:5"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "16108:3:5"
},
"nodeType": "YulFunctionCall",
"src": "16108:21:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16099:5:5"
}
]
},
{
"nodeType": "YulAssignment",
"src": "16138:40:5",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16151:5:5"
},
{
"arguments": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "16162:8:5"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "16172:4:5"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "16158:3:5"
},
"nodeType": "YulFunctionCall",
"src": "16158:19:5"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "16148:2:5"
},
"nodeType": "YulFunctionCall",
"src": "16148:30:5"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "16138:6:5"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "15828:5:5",
"type": ""
},
{
"name": "shiftBytes",
"nodeType": "YulTypedName",
"src": "15835:10:5",
"type": ""
},
{
"name": "toInsert",
"nodeType": "YulTypedName",
"src": "15847:8:5",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "15860:6:5",
"type": ""
}
],
"src": "15791:393:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16222:28:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16232:12:5",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "16239:5:5"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "16232:3:5"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "16208:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "16218:3:5",
"type": ""
}
],
"src": "16190:60:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16316:82:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16326:66:5",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "16384:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "16366:17:5"
},
"nodeType": "YulFunctionCall",
"src": "16366:24:5"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "16357:8:5"
},
"nodeType": "YulFunctionCall",
"src": "16357:34:5"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "16339:17:5"
},
"nodeType": "YulFunctionCall",
"src": "16339:53:5"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "16326:9:5"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "16296:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "16306:9:5",
"type": ""
}
],
"src": "16256:142:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16451:28:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16461:12:5",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "16468:5:5"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "16461:3:5"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "16437:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "16447:3:5",
"type": ""
}
],
"src": "16404:75:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16561:193:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "16571:63:5",
"value": {
"arguments": [
{
"name": "value_0",
"nodeType": "YulIdentifier",
"src": "16626:7:5"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "16595:30:5"
},
"nodeType": "YulFunctionCall",
"src": "16595:39:5"
},
"variables": [
{
"name": "convertedValue_0",
"nodeType": "YulTypedName",
"src": "16575:16:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "16650:4:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "16690:4:5"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "16684:5:5"
},
"nodeType": "YulFunctionCall",
"src": "16684:11:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "16697:6:5"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nodeType": "YulIdentifier",
"src": "16729:16:5"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nodeType": "YulIdentifier",
"src": "16705:23:5"
},
"nodeType": "YulFunctionCall",
"src": "16705:41:5"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nodeType": "YulIdentifier",
"src": "16656:27:5"
},
"nodeType": "YulFunctionCall",
"src": "16656:91:5"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "16643:6:5"
},
"nodeType": "YulFunctionCall",
"src": "16643:105:5"
},
"nodeType": "YulExpressionStatement",
"src": "16643:105:5"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "16538:4:5",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "16544:6:5",
"type": ""
},
{
"name": "value_0",
"nodeType": "YulTypedName",
"src": "16552:7:5",
"type": ""
}
],
"src": "16485:269:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16809:24:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16819:8:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "16826:1:5",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "16819:3:5"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "16805:3:5",
"type": ""
}
],
"src": "16760:73:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16892:136:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "16902:46:5",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulIdentifier",
"src": "16916:30:5"
},
"nodeType": "YulFunctionCall",
"src": "16916:32:5"
},
"variables": [
{
"name": "zero_0",
"nodeType": "YulTypedName",
"src": "16906:6:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "17001:4:5"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "17007:6:5"
},
{
"name": "zero_0",
"nodeType": "YulIdentifier",
"src": "17015:6:5"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "16957:43:5"
},
"nodeType": "YulFunctionCall",
"src": "16957:65:5"
},
"nodeType": "YulExpressionStatement",
"src": "16957:65:5"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "16878:4:5",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "16884:6:5",
"type": ""
}
],
"src": "16839:189:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17084:136:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "17151:63:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "17195:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17202:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulIdentifier",
"src": "17165:29:5"
},
"nodeType": "YulFunctionCall",
"src": "17165:39:5"
},
"nodeType": "YulExpressionStatement",
"src": "17165:39:5"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "17104:5:5"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "17111:3:5"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "17101:2:5"
},
"nodeType": "YulFunctionCall",
"src": "17101:14:5"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "17116:26:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17118:22:5",
"value": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "17131:5:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17138:1:5",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17127:3:5"
},
"nodeType": "YulFunctionCall",
"src": "17127:13:5"
},
"variableNames": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "17118:5:5"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "17098:2:5",
"statements": []
},
"src": "17094:120:5"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nodeType": "YulTypedName",
"src": "17072:5:5",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "17079:3:5",
"type": ""
}
],
"src": "17034:186:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17305:464:5",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "17331:431:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "17345:54:5",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "17393:5:5"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "17361:31:5"
},
"nodeType": "YulFunctionCall",
"src": "17361:38:5"
},
"variables": [
{
"name": "dataArea",
"nodeType": "YulTypedName",
"src": "17349:8:5",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "17412:63:5",
"value": {
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "17435:8:5"
},
{
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "17463:10:5"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "17445:17:5"
},
"nodeType": "YulFunctionCall",
"src": "17445:29:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17431:3:5"
},
"nodeType": "YulFunctionCall",
"src": "17431:44:5"
},
"variables": [
{
"name": "deleteStart",
"nodeType": "YulTypedName",
"src": "17416:11:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "17632:27:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17634:23:5",
"value": {
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "17649:8:5"
},
"variableNames": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "17634:11:5"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "17616:10:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17628:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "17613:2:5"
},
"nodeType": "YulFunctionCall",
"src": "17613:18:5"
},
"nodeType": "YulIf",
"src": "17610:49:5"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "17701:11:5"
},
{
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "17718:8:5"
},
{
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "17746:3:5"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "17728:17:5"
},
"nodeType": "YulFunctionCall",
"src": "17728:22:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17714:3:5"
},
"nodeType": "YulFunctionCall",
"src": "17714:37:5"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulIdentifier",
"src": "17672:28:5"
},
"nodeType": "YulFunctionCall",
"src": "17672:80:5"
},
"nodeType": "YulExpressionStatement",
"src": "17672:80:5"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "17322:3:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17327:2:5",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "17319:2:5"
},
"nodeType": "YulFunctionCall",
"src": "17319:11:5"
},
"nodeType": "YulIf",
"src": "17316:446:5"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "17281:5:5",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "17288:3:5",
"type": ""
},
{
"name": "startIndex",
"nodeType": "YulTypedName",
"src": "17293:10:5",
"type": ""
}
],
"src": "17226:543:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17838:54:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17848:37:5",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "17873:4:5"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "17879:5:5"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "17869:3:5"
},
"nodeType": "YulFunctionCall",
"src": "17869:16:5"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "17848:8:5"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "17813:4:5",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "17819:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "17829:8:5",
"type": ""
}
],
"src": "17775:117:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17949:118:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "17959:68:5",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18008:1:5",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nodeType": "YulIdentifier",
"src": "18011:5:5"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "18004:3:5"
},
"nodeType": "YulFunctionCall",
"src": "18004:13:5"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18023:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "18019:3:5"
},
"nodeType": "YulFunctionCall",
"src": "18019:6:5"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulIdentifier",
"src": "17975:28:5"
},
"nodeType": "YulFunctionCall",
"src": "17975:51:5"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "17971:3:5"
},
"nodeType": "YulFunctionCall",
"src": "17971:56:5"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "17963:4:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "18036:25:5",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "18050:4:5"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "18056:4:5"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "18046:3:5"
},
"nodeType": "YulFunctionCall",
"src": "18046:15:5"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "18036:6:5"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "17926:4:5",
"type": ""
},
{
"name": "bytes",
"nodeType": "YulTypedName",
"src": "17932:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "17942:6:5",
"type": ""
}
],
"src": "17898:169:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18153:214:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18286:37:5",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "18313:4:5"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "18319:3:5"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "18294:18:5"
},
"nodeType": "YulFunctionCall",
"src": "18294:29:5"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "18286:4:5"
}
]
},
{
"nodeType": "YulAssignment",
"src": "18332:29:5",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "18343:4:5"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18353:1:5",
"type": "",
"value": "2"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "18356:3:5"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "18349:3:5"
},
"nodeType": "YulFunctionCall",
"src": "18349:11:5"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "18340:2:5"
},
"nodeType": "YulFunctionCall",
"src": "18340:21:5"
},
"variableNames": [
{
"name": "used",
"nodeType": "YulIdentifier",
"src": "18332:4:5"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "18134:4:5",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "18140:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nodeType": "YulTypedName",
"src": "18148:4:5",
"type": ""
}
],
"src": "18072:295:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18464:1303:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "18475:51:5",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "18522:3:5"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "18489:32:5"
},
"nodeType": "YulFunctionCall",
"src": "18489:37:5"
},
"variables": [
{
"name": "newLen",
"nodeType": "YulTypedName",
"src": "18479:6:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "18611:22:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "18613:16:5"
},
"nodeType": "YulFunctionCall",
"src": "18613:18:5"
},
"nodeType": "YulExpressionStatement",
"src": "18613:18:5"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "18583:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18591:18:5",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "18580:2:5"
},
"nodeType": "YulFunctionCall",
"src": "18580:30:5"
},
"nodeType": "YulIf",
"src": "18577:56:5"
},
{
"nodeType": "YulVariableDeclaration",
"src": "18643:52:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "18689:4:5"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "18683:5:5"
},
"nodeType": "YulFunctionCall",
"src": "18683:11:5"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "18657:25:5"
},
"nodeType": "YulFunctionCall",
"src": "18657:38:5"
},
"variables": [
{
"name": "oldLen",
"nodeType": "YulTypedName",
"src": "18647:6:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "18788:4:5"
},
{
"name": "oldLen",
"nodeType": "YulIdentifier",
"src": "18794:6:5"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "18802:6:5"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nodeType": "YulIdentifier",
"src": "18742:45:5"
},
"nodeType": "YulFunctionCall",
"src": "18742:67:5"
},
"nodeType": "YulExpressionStatement",
"src": "18742:67:5"
},
{
"nodeType": "YulVariableDeclaration",
"src": "18819:18:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "18836:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nodeType": "YulTypedName",
"src": "18823:9:5",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "18847:17:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "18860:4:5",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "18847:9:5"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "18911:611:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "18925:37:5",
"value": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "18944:6:5"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18956:4:5",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "18952:3:5"
},
"nodeType": "YulFunctionCall",
"src": "18952:9:5"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "18940:3:5"
},
"nodeType": "YulFunctionCall",
"src": "18940:22:5"
},
"variables": [
{
"name": "loopEnd",
"nodeType": "YulTypedName",
"src": "18929:7:5",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "18976:51:5",
"value": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "19022:4:5"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nodeType": "YulIdentifier",
"src": "18990:31:5"
},
"nodeType": "YulFunctionCall",
"src": "18990:37:5"
},
"variables": [
{
"name": "dstPtr",
"nodeType": "YulTypedName",
"src": "18980:6:5",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "19040:10:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "19049:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "19044:1:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "19108:163:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "19133:6:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "19151:3:5"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "19156:9:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19147:3:5"
},
"nodeType": "YulFunctionCall",
"src": "19147:19:5"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "19141:5:5"
},
"nodeType": "YulFunctionCall",
"src": "19141:26:5"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "19126:6:5"
},
"nodeType": "YulFunctionCall",
"src": "19126:42:5"
},
"nodeType": "YulExpressionStatement",
"src": "19126:42:5"
},
{
"nodeType": "YulAssignment",
"src": "19185:24:5",
"value": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "19199:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19207:1:5",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19195:3:5"
},
"nodeType": "YulFunctionCall",
"src": "19195:14:5"
},
"variableNames": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "19185:6:5"
}
]
},
{
"nodeType": "YulAssignment",
"src": "19226:31:5",
"value": {
"arguments": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "19243:9:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19254:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19239:3:5"
},
"nodeType": "YulFunctionCall",
"src": "19239:18:5"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "19226:9:5"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "19074:1:5"
},
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "19077:7:5"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "19071:2:5"
},
"nodeType": "YulFunctionCall",
"src": "19071:14:5"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "19086:21:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19088:17:5",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "19097:1:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19100:4:5",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19093:3:5"
},
"nodeType": "YulFunctionCall",
"src": "19093:12:5"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "19088:1:5"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "19067:3:5",
"statements": []
},
"src": "19063:208:5"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19307:156:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "19325:43:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "19352:3:5"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "19357:9:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19348:3:5"
},
"nodeType": "YulFunctionCall",
"src": "19348:19:5"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "19342:5:5"
},
"nodeType": "YulFunctionCall",
"src": "19342:26:5"
},
"variables": [
{
"name": "lastValue",
"nodeType": "YulTypedName",
"src": "19329:9:5",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "19392:6:5"
},
{
"arguments": [
{
"name": "lastValue",
"nodeType": "YulIdentifier",
"src": "19419:9:5"
},
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "19434:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19442:4:5",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "19430:3:5"
},
"nodeType": "YulFunctionCall",
"src": "19430:17:5"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "19400:18:5"
},
"nodeType": "YulFunctionCall",
"src": "19400:48:5"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "19385:6:5"
},
"nodeType": "YulFunctionCall",
"src": "19385:64:5"
},
"nodeType": "YulExpressionStatement",
"src": "19385:64:5"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "19290:7:5"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "19299:6:5"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "19287:2:5"
},
"nodeType": "YulFunctionCall",
"src": "19287:19:5"
},
"nodeType": "YulIf",
"src": "19284:179:5"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "19483:4:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "19497:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19505:1:5",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "19493:3:5"
},
"nodeType": "YulFunctionCall",
"src": "19493:14:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19509:1:5",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19489:3:5"
},
"nodeType": "YulFunctionCall",
"src": "19489:22:5"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "19476:6:5"
},
"nodeType": "YulFunctionCall",
"src": "19476:36:5"
},
"nodeType": "YulExpressionStatement",
"src": "19476:36:5"
}
]
},
"nodeType": "YulCase",
"src": "18904:618:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "18909:1:5",
"type": "",
"value": "1"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "19539:222:5",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "19553:14:5",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "19566:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "19557:5:5",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "19590:67:5",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19608:35:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "19627:3:5"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "19632:9:5"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19623:3:5"
},
"nodeType": "YulFunctionCall",
"src": "19623:19:5"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "19617:5:5"
},
"nodeType": "YulFunctionCall",
"src": "19617:26:5"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "19608:5:5"
}
]
}
]
},
"condition": {
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "19583:6:5"
},
"nodeType": "YulIf",
"src": "19580:77:5"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "19677:4:5"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "19736:5:5"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "19743:6:5"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulIdentifier",
"src": "19683:52:5"
},
"nodeType": "YulFunctionCall",
"src": "19683:67:5"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "19670:6:5"
},
"nodeType": "YulFunctionCall",
"src": "19670:81:5"
},
"nodeType": "YulExpressionStatement",
"src": "19670:81:5"
}
]
},
"nodeType": "YulCase",
"src": "19531:230:5",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "18884:6:5"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18892:2:5",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "18881:2:5"
},
"nodeType": "YulFunctionCall",
"src": "18881:14:5"
},
"nodeType": "YulSwitch",
"src": "18874:887:5"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "18453:4:5",
"type": ""
},
{
"name": "src",
"nodeType": "YulTypedName",
"src": "18459:3:5",
"type": ""
}
],
"src": "18372:1395:5"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() {\n revert(0, 0)\n }\n\n // struct Client.Any2EVMMessage\n function abi_decode_t_struct$_Any2EVMMessage_$152_calldata_ptr(offset, end) -> value {\n if slt(sub(end, offset), 160) { revert_error_21fe6b43b4db61d76a176e95bf1a6b9ede4c301f93a4246f41fecb96e160861d() }\n value := offset\n }\n\n function abi_decode_tuple_t_struct$_Any2EVMMessage_$152_calldata_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Any2EVMMessage_$152_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function array_allocation_size_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct Client.EVMTokenAmount\n function abi_decode_t_struct$_EVMTokenAmount_$139_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // token\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // amount\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n // struct Client.EVMTokenAmount[]\n function abi_decode_available_length_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x40))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x40) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_struct$_EVMTokenAmount_$139_memory_ptr(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // struct Client.EVMTokenAmount[]\n function abi_decode_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct Client.Any2EVMMessage\n function abi_decode_t_struct$_Any2EVMMessage_$152_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // messageId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_bytes32(add(headStart, offset), end))\n\n }\n\n {\n // sourceChainSelector\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n {\n // sender\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // destTokenAmounts\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x80), abi_decode_t_array$_t_struct$_EVMTokenAmount_$139_memory_ptr_$dyn_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function convert_t_struct$_Any2EVMMessage_$152_calldata_ptr_to_t_struct$_Any2EVMMessage_$152_memory_ptr(value) -> converted {\n\n converted := abi_decode_t_struct$_Any2EVMMessage_$152_memory_ptr(value, calldatasize())\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
"id": 5,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {
"14": [
{
"length": 32,
"start": 612
},
{
"length": 32,
"start": 779
}
]
},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100575760003560e01c806301ffc9a71461005c57806334a077981461008c57806385572ffb146100aa578063b0f479a1146100c6578063e1214815146100e4575b600080fd5b61007660048036038101906100719190610440565b610102565b6040516100839190610488565b60405180910390f35b6100946101d4565b6040516100a19190610533565b60405180910390f35b6100c460048036038101906100bf9190610579565b610262565b005b6100ce610307565b6040516100db9190610603565b60405180910390f35b6100ec61032f565b6040516100f99190610603565b60405180910390f35b60007f85572ffb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806101cd57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600180546101e19061064d565b80601f016020809104026020016040519081016040528092919081815260200182805461020d9061064d565b801561025a5780601f1061022f5761010080835404028352916020019161025a565b820191906000526020600020905b81548152906001019060200180831161023d57829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102f257336040517fd7f733340000000000000000000000000000000000000000000000000000000081526004016102e99190610603565b60405180910390fd5b610304816102ff90610a8d565b610353565b50565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806040015180602001905181019061036b9190610ade565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606001518060200190518101906103c29190610bac565b600190816103d09190610da1565b5050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61041d816103e8565b811461042857600080fd5b50565b60008135905061043a81610414565b92915050565b600060208284031215610456576104556103de565b5b60006104648482850161042b565b91505092915050565b60008115159050919050565b6104828161046d565b82525050565b600060208201905061049d6000830184610479565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104dd5780820151818401526020810190506104c2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610505826104a3565b61050f81856104ae565b935061051f8185602086016104bf565b610528816104e9565b840191505092915050565b6000602082019050818103600083015261054d81846104fa565b905092915050565b600080fd5b600060a082840312156105705761056f610555565b5b81905092915050565b60006020828403121561058f5761058e6103de565b5b600082013567ffffffffffffffff8111156105ad576105ac6103e3565b5b6105b98482850161055a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105ed826105c2565b9050919050565b6105fd816105e2565b82525050565b600060208201905061061860008301846105f4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061066557607f821691505b6020821081036106785761067761061e565b5b50919050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6106bb826104e9565b810181811067ffffffffffffffff821117156106da576106d9610683565b5b80604052505050565b60006106ed6103d4565b90506106f982826106b2565b919050565b600080fd5b6000819050919050565b61071681610703565b811461072157600080fd5b50565b6000813590506107338161070d565b92915050565b600067ffffffffffffffff82169050919050565b61075681610739565b811461076157600080fd5b50565b6000813590506107738161074d565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561079e5761079d610683565b5b6107a7826104e9565b9050602081019050919050565b82818337600083830152505050565b60006107d66107d184610783565b6106e3565b9050828152602081018484840111156107f2576107f161077e565b5b6107fd8482856107b4565b509392505050565b600082601f83011261081a57610819610779565b5b813561082a8482602086016107c3565b91505092915050565b600067ffffffffffffffff82111561084e5761084d610683565b5b602082029050602081019050919050565b600080fd5b61086d816105e2565b811461087857600080fd5b50565b60008135905061088a81610864565b92915050565b6000819050919050565b6108a381610890565b81146108ae57600080fd5b50565b6000813590506108c08161089a565b92915050565b6000604082840312156108dc576108db61067e565b5b6108e660406106e3565b905060006108f68482850161087b565b600083015250602061090a848285016108b1565b60208301525092915050565b600061092961092484610833565b6106e3565b9050808382526020820190506040840283018581111561094c5761094b61085f565b5b835b81811015610975578061096188826108c6565b84526020840193505060408101905061094e565b5050509392505050565b600082601f83011261099457610993610779565b5b81356109a4848260208601610916565b91505092915050565b600060a082840312156109c3576109c261067e565b5b6109cd60a06106e3565b905060006109dd84828501610724565b60008301525060206109f184828501610764565b602083015250604082013567ffffffffffffffff811115610a1557610a146106fe565b5b610a2184828501610805565b604083015250606082013567ffffffffffffffff811115610a4557610a446106fe565b5b610a5184828501610805565b606083015250608082013567ffffffffffffffff811115610a7557610a746106fe565b5b610a818482850161097f565b60808301525092915050565b6000610a9936836109ad565b9050919050565b6000610aab826105c2565b9050919050565b610abb81610aa0565b8114610ac657600080fd5b50565b600081519050610ad881610ab2565b92915050565b600060208284031215610af457610af36103de565b5b6000610b0284828501610ac9565b91505092915050565b600067ffffffffffffffff821115610b2657610b25610683565b5b610b2f826104e9565b9050602081019050919050565b6000610b4f610b4a84610b0b565b6106e3565b905082815260208101848484011115610b6b57610b6a61077e565b5b610b768482856104bf565b509392505050565b600082601f830112610b9357610b92610779565b5b8151610ba3848260208601610b3c565b91505092915050565b600060208284031215610bc257610bc16103de565b5b600082015167ffffffffffffffff811115610be057610bdf6103e3565b5b610bec84828501610b7e565b91505092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302610c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610c1a565b610c618683610c1a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000610c9e610c99610c9484610890565b610c79565b610890565b9050919050565b6000819050919050565b610cb883610c83565b610ccc610cc482610ca5565b848454610c27565b825550505050565b600090565b610ce1610cd4565b610cec818484610caf565b505050565b5b81811015610d1057610d05600082610cd9565b600181019050610cf2565b5050565b601f821115610d5557610d2681610bf5565b610d2f84610c0a565b81016020851015610d3e578190505b610d52610d4a85610c0a565b830182610cf1565b50505b505050565b600082821c905092915050565b6000610d7860001984600802610d5a565b1980831691505092915050565b6000610d918383610d67565b9150826002028217905092915050565b610daa826104a3565b67ffffffffffffffff811115610dc357610dc2610683565b5b610dcd825461064d565b610dd8828285610d14565b600060209050601f831160018114610e0b5760008415610df9578287015190505b610e038582610d85565b865550610e6b565b601f198416610e1986610bf5565b60005b82811015610e4157848901518255600182019150602085019450602081019050610e1c565b86831015610e5e5784890151610e5a601f891682610d67565b8355505b6001600288020188555050505b50505050505056fea264697066735822122067e552e9fac852f58ee5feb4655837e84191ef58217e067a9035376a49e37bf364736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x34A07798 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x85572FFB EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xB0F479A1 EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0xE1214815 EQ PUSH2 0xE4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x440 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x488 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x94 PUSH2 0x1D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x533 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x579 JUMP JUMPDEST PUSH2 0x262 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCE PUSH2 0x307 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDB SWAP2 SWAP1 PUSH2 0x603 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEC PUSH2 0x32F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF9 SWAP2 SWAP1 PUSH2 0x603 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x85572FFB00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1CD JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x1E1 SWAP1 PUSH2 0x64D JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x20D SWAP1 PUSH2 0x64D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x25A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x22F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x25A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x23D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2F2 JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0xD7F7333400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x603 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x304 DUP2 PUSH2 0x2FF SWAP1 PUSH2 0xA8D JUMP JUMPDEST PUSH2 0x353 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x36B SWAP2 SWAP1 PUSH2 0xADE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0xBAC JUMP JUMPDEST PUSH1 0x1 SWAP1 DUP2 PUSH2 0x3D0 SWAP2 SWAP1 PUSH2 0xDA1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x41D DUP2 PUSH2 0x3E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x43A DUP2 PUSH2 0x414 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x456 JUMPI PUSH2 0x455 PUSH2 0x3DE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x464 DUP5 DUP3 DUP6 ADD PUSH2 0x42B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x46D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x49D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4DD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x505 DUP3 PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0x50F DUP2 DUP6 PUSH2 0x4AE JUMP JUMPDEST SWAP4 POP PUSH2 0x51F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4BF JUMP JUMPDEST PUSH2 0x528 DUP2 PUSH2 0x4E9 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x54D DUP2 DUP5 PUSH2 0x4FA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x570 JUMPI PUSH2 0x56F PUSH2 0x555 JUMP JUMPDEST JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58F JUMPI PUSH2 0x58E PUSH2 0x3DE JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5AD JUMPI PUSH2 0x5AC PUSH2 0x3E3 JUMP JUMPDEST JUMPDEST PUSH2 0x5B9 DUP5 DUP3 DUP6 ADD PUSH2 0x55A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5ED DUP3 PUSH2 0x5C2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5FD DUP2 PUSH2 0x5E2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x618 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x665 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x678 JUMPI PUSH2 0x677 PUSH2 0x61E JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x6BB DUP3 PUSH2 0x4E9 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x6DA JUMPI PUSH2 0x6D9 PUSH2 0x683 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6ED PUSH2 0x3D4 JUMP JUMPDEST SWAP1 POP PUSH2 0x6F9 DUP3 DUP3 PUSH2 0x6B2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x716 DUP2 PUSH2 0x703 JUMP JUMPDEST DUP2 EQ PUSH2 0x721 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x733 DUP2 PUSH2 0x70D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x756 DUP2 PUSH2 0x739 JUMP JUMPDEST DUP2 EQ PUSH2 0x761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x773 DUP2 PUSH2 0x74D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x79E JUMPI PUSH2 0x79D PUSH2 0x683 JUMP JUMPDEST JUMPDEST PUSH2 0x7A7 DUP3 PUSH2 0x4E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D6 PUSH2 0x7D1 DUP5 PUSH2 0x783 JUMP JUMPDEST PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x7F2 JUMPI PUSH2 0x7F1 PUSH2 0x77E JUMP JUMPDEST JUMPDEST PUSH2 0x7FD DUP5 DUP3 DUP6 PUSH2 0x7B4 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x81A JUMPI PUSH2 0x819 PUSH2 0x779 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x82A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x7C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x84E JUMPI PUSH2 0x84D PUSH2 0x683 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x86D DUP2 PUSH2 0x5E2 JUMP JUMPDEST DUP2 EQ PUSH2 0x878 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x88A DUP2 PUSH2 0x864 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8A3 DUP2 PUSH2 0x890 JUMP JUMPDEST DUP2 EQ PUSH2 0x8AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x8C0 DUP2 PUSH2 0x89A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8DC JUMPI PUSH2 0x8DB PUSH2 0x67E JUMP JUMPDEST JUMPDEST PUSH2 0x8E6 PUSH1 0x40 PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x8F6 DUP5 DUP3 DUP6 ADD PUSH2 0x87B JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x90A DUP5 DUP3 DUP6 ADD PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x929 PUSH2 0x924 DUP5 PUSH2 0x833 JUMP JUMPDEST PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x40 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x94C JUMPI PUSH2 0x94B PUSH2 0x85F JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x975 JUMPI DUP1 PUSH2 0x961 DUP9 DUP3 PUSH2 0x8C6 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x40 DUP2 ADD SWAP1 POP PUSH2 0x94E JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x994 JUMPI PUSH2 0x993 PUSH2 0x779 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x9A4 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x916 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9C3 JUMPI PUSH2 0x9C2 PUSH2 0x67E JUMP JUMPDEST JUMPDEST PUSH2 0x9CD PUSH1 0xA0 PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9DD DUP5 DUP3 DUP6 ADD PUSH2 0x724 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x9F1 DUP5 DUP3 DUP6 ADD PUSH2 0x764 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA15 JUMPI PUSH2 0xA14 PUSH2 0x6FE JUMP JUMPDEST JUMPDEST PUSH2 0xA21 DUP5 DUP3 DUP6 ADD PUSH2 0x805 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA45 JUMPI PUSH2 0xA44 PUSH2 0x6FE JUMP JUMPDEST JUMPDEST PUSH2 0xA51 DUP5 DUP3 DUP6 ADD PUSH2 0x805 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA75 JUMPI PUSH2 0xA74 PUSH2 0x6FE JUMP JUMPDEST JUMPDEST PUSH2 0xA81 DUP5 DUP3 DUP6 ADD PUSH2 0x97F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA99 CALLDATASIZE DUP4 PUSH2 0x9AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB DUP3 PUSH2 0x5C2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xABB DUP2 PUSH2 0xAA0 JUMP JUMPDEST DUP2 EQ PUSH2 0xAC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xAD8 DUP2 PUSH2 0xAB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAF4 JUMPI PUSH2 0xAF3 PUSH2 0x3DE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB02 DUP5 DUP3 DUP6 ADD PUSH2 0xAC9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB26 JUMPI PUSH2 0xB25 PUSH2 0x683 JUMP JUMPDEST JUMPDEST PUSH2 0xB2F DUP3 PUSH2 0x4E9 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB4F PUSH2 0xB4A DUP5 PUSH2 0xB0B JUMP JUMPDEST PUSH2 0x6E3 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xB6B JUMPI PUSH2 0xB6A PUSH2 0x77E JUMP JUMPDEST JUMPDEST PUSH2 0xB76 DUP5 DUP3 DUP6 PUSH2 0x4BF JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB93 JUMPI PUSH2 0xB92 PUSH2 0x779 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0xBA3 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xB3C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBC2 JUMPI PUSH2 0xBC1 PUSH2 0x3DE JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBE0 JUMPI PUSH2 0xBDF PUSH2 0x3E3 JUMP JUMPDEST JUMPDEST PUSH2 0xBEC DUP5 DUP3 DUP6 ADD PUSH2 0xB7E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0xC57 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0xC1A JUMP JUMPDEST PUSH2 0xC61 DUP7 DUP4 PUSH2 0xC1A JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC9E PUSH2 0xC99 PUSH2 0xC94 DUP5 PUSH2 0x890 JUMP JUMPDEST PUSH2 0xC79 JUMP JUMPDEST PUSH2 0x890 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCB8 DUP4 PUSH2 0xC83 JUMP JUMPDEST PUSH2 0xCCC PUSH2 0xCC4 DUP3 PUSH2 0xCA5 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0xC27 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0xCE1 PUSH2 0xCD4 JUMP JUMPDEST PUSH2 0xCEC DUP2 DUP5 DUP5 PUSH2 0xCAF JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD10 JUMPI PUSH2 0xD05 PUSH1 0x0 DUP3 PUSH2 0xCD9 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0xCF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0xD55 JUMPI PUSH2 0xD26 DUP2 PUSH2 0xBF5 JUMP JUMPDEST PUSH2 0xD2F DUP5 PUSH2 0xC0A JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0xD3E JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0xD52 PUSH2 0xD4A DUP6 PUSH2 0xC0A JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0xCF1 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD78 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0xD5A JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD91 DUP4 DUP4 PUSH2 0xD67 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDAA DUP3 PUSH2 0x4A3 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDC3 JUMPI PUSH2 0xDC2 PUSH2 0x683 JUMP JUMPDEST JUMPDEST PUSH2 0xDCD DUP3 SLOAD PUSH2 0x64D JUMP JUMPDEST PUSH2 0xDD8 DUP3 DUP3 DUP6 PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xE0B JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xDF9 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0xE03 DUP6 DUP3 PUSH2 0xD85 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0xE6B JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0xE19 DUP7 PUSH2 0xBF5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xE41 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xE1C JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0xE5E JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0xE5A PUSH1 0x1F DUP10 AND DUP3 PUSH2 0xD67 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH8 0xE552E9FAC852F58E 0xE5 INVALID 0xB4 PUSH6 0x5837E84191EF PC 0x21 PUSH31 0x67A9035376A49E37BF364736F6C6343000813003300000000000000000000 ",
"sourceMap": "250:393:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1397:209:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;336:27:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1652:130:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2194:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;302:27:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1397:209:0;1482:4;1516:41;1501:56;;;:11;:56;;;;:100;;;;1576:25;1561:40;;;:11;:40;;;;1501:100;1494:107;;1397:209;;;:::o;336:27:4:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1652:130:0:-;2434:8;2412:31;;:10;:31;;;2408:69;;2466:10;2452:25;;;;;;;;;;;:::i;:::-;;;;;;;;2408:69;1756:21:::1;1769:7;1756:21;;;:::i;:::-;:12;:21::i;:::-;1652:130:::0;:::o;2194:86::-;2236:7;2266:8;2251:24;;2194:86;:::o;302:27:4:-;;;;;;;;;;;;:::o;429:211::-;544:7;:14;;;533:37;;;;;;;;;;;;:::i;:::-;518:12;;:52;;;;;;;;;;;;;;;;;;608:7;:12;;;597:35;;;;;;;;;;;;:::i;:::-;581:13;:51;;;;;;:::i;:::-;;429:211;:::o;7:75:5:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:246::-;1879:1;1889:113;1903:6;1900:1;1897:13;1889:113;;;1988:1;1983:3;1979:11;1973:18;1969:1;1964:3;1960:11;1953:39;1925:2;1922:1;1918:10;1913:15;;1889:113;;;2036:1;2027:6;2022:3;2018:16;2011:27;1860:184;1798:246;;;:::o;2050:102::-;2091:6;2142:2;2138:7;2133:2;2126:5;2122:14;2118:28;2108:38;;2050:102;;;:::o;2158:377::-;2246:3;2274:39;2307:5;2274:39;:::i;:::-;2329:71;2393:6;2388:3;2329:71;:::i;:::-;2322:78;;2409:65;2467:6;2462:3;2455:4;2448:5;2444:16;2409:65;:::i;:::-;2499:29;2521:6;2499:29;:::i;:::-;2494:3;2490:39;2483:46;;2250:285;2158:377;;;;:::o;2541:313::-;2654:4;2692:2;2681:9;2677:18;2669:26;;2741:9;2735:4;2731:20;2727:1;2716:9;2712:17;2705:47;2769:78;2842:4;2833:6;2769:78;:::i;:::-;2761:86;;2541:313;;;;:::o;2860:117::-;2969:1;2966;2959:12;3019:238;3098:5;3139:3;3130:6;3125:3;3121:16;3117:26;3114:113;;;3146:79;;:::i;:::-;3114:113;3245:6;3236:15;;3019:238;;;;:::o;3263:555::-;3355:6;3404:2;3392:9;3383:7;3379:23;3375:32;3372:119;;;3410:79;;:::i;:::-;3372:119;3558:1;3547:9;3543:17;3530:31;3588:18;3580:6;3577:30;3574:117;;;3610:79;;:::i;:::-;3574:117;3715:86;3793:7;3784:6;3773:9;3769:22;3715:86;:::i;:::-;3705:96;;3501:310;3263:555;;;;:::o;3824:126::-;3861:7;3901:42;3894:5;3890:54;3879:65;;3824:126;;;:::o;3956:96::-;3993:7;4022:24;4040:5;4022:24;:::i;:::-;4011:35;;3956:96;;;:::o;4058:118::-;4145:24;4163:5;4145:24;:::i;:::-;4140:3;4133:37;4058:118;;:::o;4182:222::-;4275:4;4313:2;4302:9;4298:18;4290:26;;4326:71;4394:1;4383:9;4379:17;4370:6;4326:71;:::i;:::-;4182:222;;;;:::o;4410:180::-;4458:77;4455:1;4448:88;4555:4;4552:1;4545:15;4579:4;4576:1;4569:15;4596:320;4640:6;4677:1;4671:4;4667:12;4657:22;;4724:1;4718:4;4714:12;4745:18;4735:81;;4801:4;4793:6;4789:17;4779:27;;4735:81;4863:2;4855:6;4852:14;4832:18;4829:38;4826:84;;4882:18;;:::i;:::-;4826:84;4647:269;4596:320;;;:::o;4922:117::-;5031:1;5028;5021:12;5045:180;5093:77;5090:1;5083:88;5190:4;5187:1;5180:15;5214:4;5211:1;5204:15;5231:281;5314:27;5336:4;5314:27;:::i;:::-;5306:6;5302:40;5444:6;5432:10;5429:22;5408:18;5396:10;5393:34;5390:62;5387:88;;;5455:18;;:::i;:::-;5387:88;5495:10;5491:2;5484:22;5274:238;5231:281;;:::o;5518:129::-;5552:6;5579:20;;:::i;:::-;5569:30;;5608:33;5636:4;5628:6;5608:33;:::i;:::-;5518:129;;;:::o;5653:117::-;5762:1;5759;5752:12;5776:77;5813:7;5842:5;5831:16;;5776:77;;;:::o;5859:122::-;5932:24;5950:5;5932:24;:::i;:::-;5925:5;5922:35;5912:63;;5971:1;5968;5961:12;5912:63;5859:122;:::o;5987:139::-;6033:5;6071:6;6058:20;6049:29;;6087:33;6114:5;6087:33;:::i;:::-;5987:139;;;;:::o;6132:101::-;6168:7;6208:18;6201:5;6197:30;6186:41;;6132:101;;;:::o;6239:120::-;6311:23;6328:5;6311:23;:::i;:::-;6304:5;6301:34;6291:62;;6349:1;6346;6339:12;6291:62;6239:120;:::o;6365:137::-;6410:5;6448:6;6435:20;6426:29;;6464:32;6490:5;6464:32;:::i;:::-;6365:137;;;;:::o;6508:117::-;6617:1;6614;6607:12;6631:117;6740:1;6737;6730:12;6754:307;6815:4;6905:18;6897:6;6894:30;6891:56;;;6927:18;;:::i;:::-;6891:56;6965:29;6987:6;6965:29;:::i;:::-;6957:37;;7049:4;7043;7039:15;7031:23;;6754:307;;;:::o;7067:146::-;7164:6;7159:3;7154;7141:30;7205:1;7196:6;7191:3;7187:16;7180:27;7067:146;;;:::o;7219:423::-;7296:5;7321:65;7337:48;7378:6;7337:48;:::i;:::-;7321:65;:::i;:::-;7312:74;;7409:6;7402:5;7395:21;7447:4;7440:5;7436:16;7485:3;7476:6;7471:3;7467:16;7464:25;7461:112;;;7492:79;;:::i;:::-;7461:112;7582:54;7629:6;7624:3;7619;7582:54;:::i;:::-;7302:340;7219:423;;;;;:::o;7661:338::-;7716:5;7765:3;7758:4;7750:6;7746:17;7742:27;7732:122;;7773:79;;:::i;:::-;7732:122;7890:6;7877:20;7915:78;7989:3;7981:6;7974:4;7966:6;7962:17;7915:78;:::i;:::-;7906:87;;7722:277;7661:338;;;;:::o;8005:342::-;8113:4;8203:18;8195:6;8192:30;8189:56;;;8225:18;;:::i;:::-;8189:56;8275:4;8267:6;8263:17;8255:25;;8335:4;8329;8325:15;8317:23;;8005:342;;;:::o;8353:117::-;8462:1;8459;8452:12;8476:122;8549:24;8567:5;8549:24;:::i;:::-;8542:5;8539:35;8529:63;;8588:1;8585;8578:12;8529:63;8476:122;:::o;8604:139::-;8650:5;8688:6;8675:20;8666:29;;8704:33;8731:5;8704:33;:::i;:::-;8604:139;;;;:::o;8749:77::-;8786:7;8815:5;8804:16;;8749:77;;;:::o;8832:122::-;8905:24;8923:5;8905:24;:::i;:::-;8898:5;8895:35;8885:63;;8944:1;8941;8934:12;8885:63;8832:122;:::o;8960:139::-;9006:5;9044:6;9031:20;9022:29;;9060:33;9087:5;9060:33;:::i;:::-;8960:139;;;;:::o;9141:583::-;9221:5;9265:4;9253:9;9248:3;9244:19;9240:30;9237:117;;;9273:79;;:::i;:::-;9237:117;9372:21;9388:4;9372:21;:::i;:::-;9363:30;;9453:1;9493:49;9538:3;9529:6;9518:9;9514:22;9493:49;:::i;:::-;9486:4;9479:5;9475:16;9468:75;9403:151;9615:2;9656:49;9701:3;9692:6;9681:9;9677:22;9656:49;:::i;:::-;9649:4;9642:5;9638:16;9631:75;9564:153;9141:583;;;;:::o;9768:803::-;9895:5;9920:112;9936:95;10024:6;9936:95;:::i;:::-;9920:112;:::i;:::-;9911:121;;10052:5;10081:6;10074:5;10067:21;10115:4;10108:5;10104:16;10097:23;;10168:4;10160:6;10156:17;10148:6;10144:30;10197:3;10189:6;10186:15;10183:122;;;10216:79;;:::i;:::-;10183:122;10331:6;10314:251;10348:6;10343:3;10340:15;10314:251;;;10423:3;10452:68;10516:3;10504:10;10452:68;:::i;:::-;10447:3;10440:81;10550:4;10545:3;10541:14;10534:21;;10390:175;10374:4;10369:3;10365:14;10358:21;;10314:251;;;10318:21;9901:670;;9768:803;;;;;:::o;10615:432::-;10717:5;10766:3;10759:4;10751:6;10747:17;10743:27;10733:122;;10774:79;;:::i;:::-;10733:122;10891:6;10878:20;10916:125;11037:3;11029:6;11022:4;11014:6;11010:17;10916:125;:::i;:::-;10907:134;;10723:324;10615:432;;;;:::o;11089:1651::-;11169:5;11213:4;11201:9;11196:3;11192:19;11188:30;11185:117;;;11221:79;;:::i;:::-;11185:117;11320:21;11336:4;11320:21;:::i;:::-;11311:30;;11405:1;11445:49;11490:3;11481:6;11470:9;11466:22;11445:49;:::i;:::-;11438:4;11431:5;11427:16;11420:75;11351:155;11580:2;11621:48;11665:3;11656:6;11645:9;11641:22;11621:48;:::i;:::-;11614:4;11607:5;11603:16;11596:74;11516:165;11770:2;11759:9;11755:18;11742:32;11801:18;11793:6;11790:30;11787:117;;;11823:79;;:::i;:::-;11787:117;11943:58;11997:3;11988:6;11977:9;11973:22;11943:58;:::i;:::-;11936:4;11929:5;11925:16;11918:84;11691:322;12100:2;12089:9;12085:18;12072:32;12131:18;12123:6;12120:30;12117:117;;;12153:79;;:::i;:::-;12117:117;12273:58;12327:3;12318:6;12307:9;12303:22;12273:58;:::i;:::-;12266:4;12259:5;12255:16;12248:84;12023:320;12442:3;12431:9;12427:19;12414:33;12474:18;12466:6;12463:30;12460:117;;;12496:79;;:::i;:::-;12460:117;12616:105;12717:3;12708:6;12697:9;12693:22;12616:105;:::i;:::-;12609:4;12602:5;12598:16;12591:131;12353:380;11089:1651;;;;:::o;12746:229::-;12860:9;12894:74;12953:14;12946:5;12894:74;:::i;:::-;12881:87;;12746:229;;;:::o;12981:104::-;13026:7;13055:24;13073:5;13055:24;:::i;:::-;13044:35;;12981:104;;;:::o;13091:138::-;13172:32;13198:5;13172:32;:::i;:::-;13165:5;13162:43;13152:71;;13219:1;13216;13209:12;13152:71;13091:138;:::o;13235:159::-;13300:5;13331:6;13325:13;13316:22;;13347:41;13382:5;13347:41;:::i;:::-;13235:159;;;;:::o;13400:367::-;13478:6;13527:2;13515:9;13506:7;13502:23;13498:32;13495:119;;;13533:79;;:::i;:::-;13495:119;13653:1;13678:72;13742:7;13733:6;13722:9;13718:22;13678:72;:::i;:::-;13668:82;;13624:136;13400:367;;;;:::o;13773:308::-;13835:4;13925:18;13917:6;13914:30;13911:56;;;13947:18;;:::i;:::-;13911:56;13985:29;14007:6;13985:29;:::i;:::-;13977:37;;14069:4;14063;14059:15;14051:23;;13773:308;;;:::o;14087:434::-;14176:5;14201:66;14217:49;14259:6;14217:49;:::i;:::-;14201:66;:::i;:::-;14192:75;;14290:6;14283:5;14276:21;14328:4;14321:5;14317:16;14366:3;14357:6;14352:3;14348:16;14345:25;14342:112;;;14373:79;;:::i;:::-;14342:112;14463:52;14508:6;14503:3;14498;14463:52;:::i;:::-;14182:339;14087:434;;;;;:::o;14541:355::-;14608:5;14657:3;14650:4;14642:6;14638:17;14634:27;14624:122;;14665:79;;:::i;:::-;14624:122;14775:6;14769:13;14800:90;14886:3;14878:6;14871:4;14863:6;14859:17;14800:90;:::i;:::-;14791:99;;14614:282;14541:355;;;;:::o;14902:524::-;14982:6;15031:2;15019:9;15010:7;15006:23;15002:32;14999:119;;;15037:79;;:::i;:::-;14999:119;15178:1;15167:9;15163:17;15157:24;15208:18;15200:6;15197:30;15194:117;;;15230:79;;:::i;:::-;15194:117;15335:74;15401:7;15392:6;15381:9;15377:22;15335:74;:::i;:::-;15325:84;;15128:291;14902:524;;;;:::o;15432:141::-;15481:4;15504:3;15496:11;;15527:3;15524:1;15517:14;15561:4;15558:1;15548:18;15540:26;;15432:141;;;:::o;15579:93::-;15616:6;15663:2;15658;15651:5;15647:14;15643:23;15633:33;;15579:93;;;:::o;15678:107::-;15722:8;15772:5;15766:4;15762:16;15741:37;;15678:107;;;;:::o;15791:393::-;15860:6;15910:1;15898:10;15894:18;15933:97;15963:66;15952:9;15933:97;:::i;:::-;16051:39;16081:8;16070:9;16051:39;:::i;:::-;16039:51;;16123:4;16119:9;16112:5;16108:21;16099:30;;16172:4;16162:8;16158:19;16151:5;16148:30;16138:40;;15867:317;;15791:393;;;;;:::o;16190:60::-;16218:3;16239:5;16232:12;;16190:60;;;:::o;16256:142::-;16306:9;16339:53;16357:34;16366:24;16384:5;16366:24;:::i;:::-;16357:34;:::i;:::-;16339:53;:::i;:::-;16326:66;;16256:142;;;:::o;16404:75::-;16447:3;16468:5;16461:12;;16404:75;;;:::o;16485:269::-;16595:39;16626:7;16595:39;:::i;:::-;16656:91;16705:41;16729:16;16705:41;:::i;:::-;16697:6;16690:4;16684:11;16656:91;:::i;:::-;16650:4;16643:105;16561:193;16485:269;;;:::o;16760:73::-;16805:3;16760:73;:::o;16839:189::-;16916:32;;:::i;:::-;16957:65;17015:6;17007;17001:4;16957:65;:::i;:::-;16892:136;16839:189;;:::o;17034:186::-;17094:120;17111:3;17104:5;17101:14;17094:120;;;17165:39;17202:1;17195:5;17165:39;:::i;:::-;17138:1;17131:5;17127:13;17118:22;;17094:120;;;17034:186;;:::o;17226:543::-;17327:2;17322:3;17319:11;17316:446;;;17361:38;17393:5;17361:38;:::i;:::-;17445:29;17463:10;17445:29;:::i;:::-;17435:8;17431:44;17628:2;17616:10;17613:18;17610:49;;;17649:8;17634:23;;17610:49;17672:80;17728:22;17746:3;17728:22;:::i;:::-;17718:8;17714:37;17701:11;17672:80;:::i;:::-;17331:431;;17316:446;17226:543;;;:::o;17775:117::-;17829:8;17879:5;17873:4;17869:16;17848:37;;17775:117;;;;:::o;17898:169::-;17942:6;17975:51;18023:1;18019:6;18011:5;18008:1;18004:13;17975:51;:::i;:::-;17971:56;18056:4;18050;18046:15;18036:25;;17949:118;17898:169;;;;:::o;18072:295::-;18148:4;18294:29;18319:3;18313:4;18294:29;:::i;:::-;18286:37;;18356:3;18353:1;18349:11;18343:4;18340:21;18332:29;;18072:295;;;;:::o;18372:1395::-;18489:37;18522:3;18489:37;:::i;:::-;18591:18;18583:6;18580:30;18577:56;;;18613:18;;:::i;:::-;18577:56;18657:38;18689:4;18683:11;18657:38;:::i;:::-;18742:67;18802:6;18794;18788:4;18742:67;:::i;:::-;18836:1;18860:4;18847:17;;18892:2;18884:6;18881:14;18909:1;18904:618;;;;19566:1;19583:6;19580:77;;;19632:9;19627:3;19623:19;19617:26;19608:35;;19580:77;19683:67;19743:6;19736:5;19683:67;:::i;:::-;19677:4;19670:81;19539:222;18874:887;;18904:618;18956:4;18952:9;18944:6;18940:22;18990:37;19022:4;18990:37;:::i;:::-;19049:1;19063:208;19077:7;19074:1;19071:14;19063:208;;;19156:9;19151:3;19147:19;19141:26;19133:6;19126:42;19207:1;19199:6;19195:14;19185:24;;19254:2;19243:9;19239:18;19226:31;;19100:4;19097:1;19093:12;19088:17;;19063:208;;;19299:6;19290:7;19287:19;19284:179;;;19357:9;19352:3;19348:19;19342:26;19400:48;19442:4;19434:6;19430:17;19419:9;19400:48;:::i;:::-;19392:6;19385:64;19307:156;19284:179;19509:1;19505;19497:6;19493:14;19489:22;19483:4;19476:36;18911:611;;;18874:887;;18464:1303;;;18372:1395;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "750600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"ccipReceive((bytes32,uint64,bytes,bytes,(address,uint256)[]))": "infinite",
"getRouter()": "infinite",
"latestMessage()": "infinite",
"latestSender()": "2577",
"supportsInterface(bytes4)": "662"
},
"internal": {
"_ccipReceive(struct Client.Any2EVMMessage memory)": "infinite"
}
},
"methodIdentifiers": {
"ccipReceive((bytes32,uint64,bytes,bytes,(address,uint256)[]))": "85572ffb",
"getRouter()": "b0f479a1",
"latestMessage()": "34a07798",
"latestSender()": "e1214815",
"supportsInterface(bytes4)": "01ffc9a7"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "router",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "router",
"type": "address"
}
],
"name": "InvalidRouter",
"type": "error"
},
{
"inputs": [
{
"components": [
{
"internalType": "bytes32",
"name": "messageId",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "sourceChainSelector",
"type": "uint64"
},
{
"internalType": "bytes",
"name": "sender",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"internalType": "struct Client.EVMTokenAmount[]",
"name": "destTokenAmounts",
"type": "tuple[]"
}
],
"internalType": "struct Client.Any2EVMMessage",
"name": "message",
"type": "tuple"
}
],
"name": "ccipReceive",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getRouter",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "latestMessage",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "latestSender",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.19+commit.7dd6d404"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "router",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "router",
"type": "address"
}
],
"name": "InvalidRouter",
"type": "error"
},
{
"inputs": [
{
"components": [
{
"internalType": "bytes32",
"name": "messageId",
"type": "bytes32"
},
{
"internalType": "uint64",
"name": "sourceChainSelector",
"type": "uint64"
},
{
"internalType": "bytes",
"name": "sender",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"internalType": "struct Client.EVMTokenAmount[]",
"name": "destTokenAmounts",
"type": "tuple[]"
}
],
"internalType": "struct Client.Any2EVMMessage",
"name": "message",
"type": "tuple"
}
],
"name": "ccipReceive",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getRouter",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "latestMessage",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "latestSender",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"ccipReceive((bytes32,uint64,bytes,bytes,(address,uint256)[]))": {
"details": "Note ensure you check the msg.sender is the OffRampRouter",
"params": {
"message": "CCIP Message"
}
},
"getRouter()": {
"returns": {
"_0": "i_router address"
}
},
"supportsInterface(bytes4)": {
"details": "Should indicate whether the contract implements IAny2EVMMessageReceiver e.g. return interfaceId == type(IAny2EVMMessageReceiver).interfaceId || interfaceId == type(IERC165).interfaceId This allows CCIP to check if ccipReceive is available before calling it. If this returns false or reverts, only tokens are transferred to the receiver. If this returns true, tokens are transferred and ccipReceive is called atomically. Additionally, if the receiver address does not have code associated with it at the time of execution (EXTCODESIZE returns 0), only tokens will be transferred.",
"params": {
"interfaceId": "The interfaceId to check"
},
"returns": {
"_0": "true if the interfaceId is supported"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"ccipReceive((bytes32,uint64,bytes,bytes,(address,uint256)[]))": {
"notice": "Called by the Router to deliver a message. If this reverts, any token transfers also revert. The message will move to a FAILED state and become available for manual execution."
},
"getRouter()": {
"notice": "Return the current router"
},
"supportsInterface(bytes4)": {
"notice": "IERC165 supports an interfaceId"
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"CCIPReceiver_Unsafe.sol": "CCIPReceiver_Unsafe"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@chainlink/contracts-ccip/src/v0.8/ccip/applications/CCIPReceiver.sol": {
"keccak256": "0xd59dbf083bfad8fe95248cac59822ade0bc7d70e50ab05e366cb35a2b2ea99f6",
"license": "MIT",
"urls": [
"bzz-raw://20205c17fa785b37acf0547c656ed60e09e806df7472e0f608129daa028f30f7",
"dweb:/ipfs/QmcAUurGrEdn5pE66sVQek4M7EiGkdoKt38qThFpxcpGLB"
]
},
"@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IAny2EVMMessageReceiver.sol": {
"keccak256": "0xd2a05a4f58a453cbf8cfa6aa78f58cb8e42091b3a025f711a0aa51f584e16b48",
"license": "MIT",
"urls": [
"bzz-raw://e3bb4ca50612b0150a29b9ea7c82f6228914ff54716584541bad5c0259e8fa33",
"dweb:/ipfs/QmTnqhNtBD9bUmqVaR4YHkWrBUdSGHV3DXAgrTM193PGkH"
]
},
"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol": {
"keccak256": "0x8af3ac1085c87342373772fb1a0107c7b90258e6bfed318ab2a601a14477e679",
"license": "MIT",
"urls": [
"bzz-raw://14395fefc8310c9a355262359c8f51036f83c004982fb600164c2a007629f81e",
"dweb:/ipfs/QmeCLr8a5bDVyLQm8v947ULgV4CZmUeQPjVyWixzieBD5o"
]
},
"@chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.0/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0xa36a31b4bb17fad88d023474893b3b895fa421650543b1ce5aefc78efbd43244",
"license": "MIT",
"urls": [
"bzz-raw://0f235b9175d95111f301d729566e214c32559e55a2b0579c947484748e20679d",
"dweb:/ipfs/QmSsNBuPejy1wNe2u3JSt2p9wFhrjvBjFrnAaNe1nDNkEA"
]
},
"CCIPReceiver_Unsafe.sol": {
"keccak256": "0x48f84243ddf362f8c0ec4561697b09b613e9e5973a72cec68d3e359f498d13a6",
"license": "MIT",
"urls": [
"bzz-raw://4bc259650b8142a35ee04e5e7f41cc248287a800b9dc7490d559bee973c3dd01",
"dweb:/ipfs/QmTdzpzJiNoZHif66jsT4bizucKZVyhFRQQAQvZreDPNkN"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_241": {
"entryPoint": null,
"id": 241,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_t_address_fromMemory": {
"entryPoint": 505,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool_fromMemory": {
"entryPoint": 726,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address_fromMemory": {
"entryPoint": 528,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bool_fromMemory": {
"entryPoint": 749,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 599,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 626,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 643,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 459,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 688,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 427,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 616,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 422,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 479,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 700,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:2736:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:4"
},
"nodeType": "YulFunctionCall",
"src": "67:9:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:4"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:4",
"type": ""
}
],
"src": "7:75:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:4"
},
"nodeType": "YulFunctionCall",
"src": "187:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:4"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:4"
},
"nodeType": "YulFunctionCall",
"src": "310:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:4"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:4"
},
"nodeType": "YulFunctionCall",
"src": "400:54:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:4"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:4",
"type": ""
}
],
"src": "334:126:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:4"
},
"nodeType": "YulFunctionCall",
"src": "532:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:4"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:4",
"type": ""
}
],
"src": "466:96:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:4"
},
"nodeType": "YulFunctionCall",
"src": "670:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:4"
},
"nodeType": "YulFunctionCall",
"src": "641:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:4"
},
"nodeType": "YulFunctionCall",
"src": "631:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:4"
},
"nodeType": "YulFunctionCall",
"src": "624:43:4"
},
"nodeType": "YulIf",
"src": "621:63:4"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:4",
"type": ""
}
],
"src": "568:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "759:80:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "769:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "784:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "778:5:4"
},
"nodeType": "YulFunctionCall",
"src": "778:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "769:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "827:5:4"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "800:26:4"
},
"nodeType": "YulFunctionCall",
"src": "800:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "800:33:4"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "737:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "745:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "753:5:4",
"type": ""
}
],
"src": "696:143:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "939:413:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "985:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "987:77:4"
},
"nodeType": "YulFunctionCall",
"src": "987:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "987:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "960:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "969:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "956:3:4"
},
"nodeType": "YulFunctionCall",
"src": "956:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "981:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "952:3:4"
},
"nodeType": "YulFunctionCall",
"src": "952:32:4"
},
"nodeType": "YulIf",
"src": "949:119:4"
},
{
"nodeType": "YulBlock",
"src": "1078:128:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1093:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1107:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1097:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1122:74:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1168:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1179:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1164:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1164:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1188:7:4"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "1132:31:4"
},
"nodeType": "YulFunctionCall",
"src": "1132:64:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1122:6:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1216:129:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1231:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1245:2:4",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1235:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1261:74:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1307:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1318:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1303:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1303:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1327:7:4"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "1271:31:4"
},
"nodeType": "YulFunctionCall",
"src": "1271:64:4"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1261:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "901:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "912:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "924:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "932:6:4",
"type": ""
}
],
"src": "845:507:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1423:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1440:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1463:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1445:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1445:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1433:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1433:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "1433:37:4"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1411:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1418:3:4",
"type": ""
}
],
"src": "1358:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1527:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1537:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1548:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1537:7:4"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1509:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1519:7:4",
"type": ""
}
],
"src": "1482:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1630:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1647:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1670:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1652:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1652:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1640:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1640:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "1640:37:4"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1618:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1625:3:4",
"type": ""
}
],
"src": "1565:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1815:206:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1825:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1837:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1848:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1833:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1833:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1825:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1905:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1918:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1929:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1914:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1914:17:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "1861:43:4"
},
"nodeType": "YulFunctionCall",
"src": "1861:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "1861:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1986:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1999:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2010:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1995:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1995:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1942:43:4"
},
"nodeType": "YulFunctionCall",
"src": "1942:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "1942:72:4"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1779:9:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1791:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1799:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1810:4:4",
"type": ""
}
],
"src": "1689:332:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2069:48:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2079:32:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2104:5:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2097:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2097:13:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2090:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2090:21:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2079:7:4"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2051:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2061:7:4",
"type": ""
}
],
"src": "2027:90:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2163:76:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2217:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2226:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2229:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2219:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2219:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "2219:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2186:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2208:5:4"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "2193:14:4"
},
"nodeType": "YulFunctionCall",
"src": "2193:21:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2183:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2183:32:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2176:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2176:40:4"
},
"nodeType": "YulIf",
"src": "2173:60:4"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2156:5:4",
"type": ""
}
],
"src": "2123:116:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2305:77:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2315:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2330:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2324:5:4"
},
"nodeType": "YulFunctionCall",
"src": "2324:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2315:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2370:5:4"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "2346:23:4"
},
"nodeType": "YulFunctionCall",
"src": "2346:30:4"
},
"nodeType": "YulExpressionStatement",
"src": "2346:30:4"
}
]
},
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2283:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2291:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2299:5:4",
"type": ""
}
],
"src": "2245:137:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2462:271:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2508:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2510:77:4"
},
"nodeType": "YulFunctionCall",
"src": "2510:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "2510:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2483:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2492:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2479:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2479:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2504:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2475:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2475:32:4"
},
"nodeType": "YulIf",
"src": "2472:119:4"
},
{
"nodeType": "YulBlock",
"src": "2601:125:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2616:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2630:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2620:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2645:71:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2688:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2699:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2684:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2684:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2708:7:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "2655:28:4"
},
"nodeType": "YulFunctionCall",
"src": "2655:61:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2645:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2432:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2443:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2455:6:4",
"type": ""
}
],
"src": "2388:345:4"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b5060405162000b4438038062000b44833981810160405281019062000037919062000210565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200015792919062000283565b6020604051808303816000875af115801562000177573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019d9190620002ed565b5050506200031f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001d882620001ab565b9050919050565b620001ea81620001cb565b8114620001f657600080fd5b50565b6000815190506200020a81620001df565b92915050565b600080604083850312156200022a5762000229620001a6565b5b60006200023a85828601620001f9565b92505060206200024d85828601620001f9565b9150509250929050565b6200026281620001cb565b82525050565b6000819050919050565b6200027d8162000268565b82525050565b60006040820190506200029a600083018562000257565b620002a9602083018462000272565b9392505050565b60008115159050919050565b620002c781620002b0565b8114620002d357600080fd5b50565b600081519050620002e781620002bc565b92915050565b600060208284031215620003065762000305620001a6565b5b60006200031684828501620002d6565b91505092915050565b610815806200032f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063570b31f014610030575b600080fd5b61004a6004803603810190610045919061041d565b61004c565b005b60006040518060a001604052808560405160200161006a919061049b565b60405160208183030381529060405281526020018460405160200161008f9190610535565b6040516020818303038152906040528152602001600067ffffffffffffffff8111156100be576100bd6102b2565b5b6040519080825280602002602001820160405280156100f757816020015b6100e46101f5565b8152602001906001900390816100dc5790505b50815260200160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528060008152508152509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166396f4e9f983836040518363ffffffff1660e01b81526004016101ab92919061074c565b6020604051808303816000875af11580156101ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ee91906107b2565b5050505050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061026482610239565b9050919050565b61027481610259565b811461027f57600080fd5b50565b6000813590506102918161026b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102ea826102a1565b810181811067ffffffffffffffff82111715610309576103086102b2565b5b80604052505050565b600061031c610225565b905061032882826102e1565b919050565b600067ffffffffffffffff821115610348576103476102b2565b5b610351826102a1565b9050602081019050919050565b82818337600083830152505050565b600061038061037b8461032d565b610312565b90508281526020810184848401111561039c5761039b61029c565b5b6103a784828561035e565b509392505050565b600082601f8301126103c4576103c3610297565b5b81356103d484826020860161036d565b91505092915050565b600067ffffffffffffffff82169050919050565b6103fa816103dd565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806000606084860312156104365761043561022f565b5b600061044486828701610282565b935050602084013567ffffffffffffffff81111561046557610464610234565b5b610471868287016103af565b925050604061048286828701610408565b9150509250925092565b61049581610259565b82525050565b60006020820190506104b0600083018461048c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104f05780820151818401526020810190506104d5565b60008484015250505050565b6000610507826104b6565b61051181856104c1565b93506105218185602086016104d2565b61052a816102a1565b840191505092915050565b6000602082019050818103600083015261054f81846104fc565b905092915050565b610560816103dd565b82525050565b600081519050919050565b600082825260208201905092915050565b600061058d82610566565b6105978185610571565b93506105a78185602086016104d2565b6105b0816102a1565b840191505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6105f081610259565b82525050565b6000819050919050565b610609816105f6565b82525050565b60408201600082015161062560008501826105e7565b5060208201516106386020850182610600565b50505050565b600061064a838361060f565b60408301905092915050565b6000602082019050919050565b600061066e826105bb565b61067881856105c6565b9350610683836105d7565b8060005b838110156106b457815161069b888261063e565b97506106a683610656565b925050600181019050610687565b5085935050505092915050565b600060a08301600083015184820360008601526106de8282610582565b915050602083015184820360208601526106f88282610582565b915050604083015184820360408601526107128282610663565b915050606083015161072760608601826105e7565b506080830151848203608086015261073f8282610582565b9150508091505092915050565b60006040820190506107616000830185610557565b818103602083015261077381846106c1565b90509392505050565b6000819050919050565b61078f8161077c565b811461079a57600080fd5b50565b6000815190506107ac81610786565b92915050565b6000602082840312156107c8576107c761022f565b5b60006107d68482850161079d565b9150509291505056fea2646970667358221220d64317fa7c0865e8663f2bc05589f0201c9917b9685fe39695a05642ba0e1a0d64736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xB44 CODESIZE SUB DUP1 PUSH3 0xB44 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x210 JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x157 SWAP3 SWAP2 SWAP1 PUSH3 0x283 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH3 0x177 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x19D SWAP2 SWAP1 PUSH3 0x2ED JUMP JUMPDEST POP POP POP PUSH3 0x31F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D8 DUP3 PUSH3 0x1AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1EA DUP2 PUSH3 0x1CB JUMP JUMPDEST DUP2 EQ PUSH3 0x1F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x20A DUP2 PUSH3 0x1DF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x22A JUMPI PUSH3 0x229 PUSH3 0x1A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x23A DUP6 DUP3 DUP7 ADD PUSH3 0x1F9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x24D DUP6 DUP3 DUP7 ADD PUSH3 0x1F9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x262 DUP2 PUSH3 0x1CB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x27D DUP2 PUSH3 0x268 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0x29A PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x257 JUMP JUMPDEST PUSH3 0x2A9 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x272 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x2C7 DUP2 PUSH3 0x2B0 JUMP JUMPDEST DUP2 EQ PUSH3 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x2E7 DUP2 PUSH3 0x2BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x306 JUMPI PUSH3 0x305 PUSH3 0x1A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x316 DUP5 DUP3 DUP6 ADD PUSH3 0x2D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x815 DUP1 PUSH3 0x32F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x570B31F0 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH2 0x4C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x49B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x535 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBE JUMPI PUSH2 0xBD PUSH2 0x2B2 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF7 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE4 PUSH2 0x1F5 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xDC JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE POP SWAP1 POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x96F4E9F9 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AB SWAP3 SWAP2 SWAP1 PUSH2 0x74C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x7B2 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264 DUP3 PUSH2 0x239 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x274 DUP2 PUSH2 0x259 JUMP JUMPDEST DUP2 EQ PUSH2 0x27F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x291 DUP2 PUSH2 0x26B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2EA DUP3 PUSH2 0x2A1 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x309 JUMPI PUSH2 0x308 PUSH2 0x2B2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31C PUSH2 0x225 JUMP JUMPDEST SWAP1 POP PUSH2 0x328 DUP3 DUP3 PUSH2 0x2E1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x348 JUMPI PUSH2 0x347 PUSH2 0x2B2 JUMP JUMPDEST JUMPDEST PUSH2 0x351 DUP3 PUSH2 0x2A1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x380 PUSH2 0x37B DUP5 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x312 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x39C JUMPI PUSH2 0x39B PUSH2 0x29C JUMP JUMPDEST JUMPDEST PUSH2 0x3A7 DUP5 DUP3 DUP6 PUSH2 0x35E JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3C4 JUMPI PUSH2 0x3C3 PUSH2 0x297 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3D4 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x36D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FA DUP2 PUSH2 0x3DD JUMP JUMPDEST DUP2 EQ PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x417 DUP2 PUSH2 0x3F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x436 JUMPI PUSH2 0x435 PUSH2 0x22F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x444 DUP7 DUP3 DUP8 ADD PUSH2 0x282 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x465 JUMPI PUSH2 0x464 PUSH2 0x234 JUMP JUMPDEST JUMPDEST PUSH2 0x471 DUP7 DUP3 DUP8 ADD PUSH2 0x3AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x482 DUP7 DUP3 DUP8 ADD PUSH2 0x408 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x495 DUP2 PUSH2 0x259 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4B0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x48C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F0 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4D5 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x507 DUP3 PUSH2 0x4B6 JUMP JUMPDEST PUSH2 0x511 DUP2 DUP6 PUSH2 0x4C1 JUMP JUMPDEST SWAP4 POP PUSH2 0x521 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x52A DUP2 PUSH2 0x2A1 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x54F DUP2 DUP5 PUSH2 0x4FC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x560 DUP2 PUSH2 0x3DD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58D DUP3 PUSH2 0x566 JUMP JUMPDEST PUSH2 0x597 DUP2 DUP6 PUSH2 0x571 JUMP JUMPDEST SWAP4 POP PUSH2 0x5A7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x5B0 DUP2 PUSH2 0x2A1 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5F0 DUP2 PUSH2 0x259 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x609 DUP2 PUSH2 0x5F6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x625 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x5E7 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x638 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x600 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x64A DUP4 DUP4 PUSH2 0x60F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66E DUP3 PUSH2 0x5BB JUMP JUMPDEST PUSH2 0x678 DUP2 DUP6 PUSH2 0x5C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x683 DUP4 PUSH2 0x5D7 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6B4 JUMPI DUP2 MLOAD PUSH2 0x69B DUP9 DUP3 PUSH2 0x63E JUMP JUMPDEST SWAP8 POP PUSH2 0x6A6 DUP4 PUSH2 0x656 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x687 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x6DE DUP3 DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x6F8 DUP3 DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x712 DUP3 DUP3 PUSH2 0x663 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x727 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x5E7 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x73F DUP3 DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x761 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x557 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x773 DUP2 DUP5 PUSH2 0x6C1 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x78F DUP2 PUSH2 0x77C JUMP JUMPDEST DUP2 EQ PUSH2 0x79A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7AC DUP2 PUSH2 0x786 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7C8 JUMPI PUSH2 0x7C7 PUSH2 0x22F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x7D6 DUP5 DUP3 DUP6 ADD PUSH2 0x79D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 NUMBER OR STATICCALL PUSH29 0x865E8663F2BC05589F0201C9917B9685FE39695A05642BA0E1A0D6473 PUSH16 0x6C634300081300330000000000000000 ",
"sourceMap": "351:723:3:-:0;;;423:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;485:5;478:4;;:12;;;;;;;;;;;;;;;;;;510:7;501:6;;:16;;;;;;;;;;;;;;;;;;547:4;;;;;;;;;;528:32;;;561:6;;;;;;;;;;;569:17;528:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;423:172;;351:723;;88:117:4;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;1358:118::-;1445:24;1463:5;1445:24;:::i;:::-;1440:3;1433:37;1358:118;;:::o;1482:77::-;1519:7;1548:5;1537:16;;1482:77;;;:::o;1565:118::-;1652:24;1670:5;1652:24;:::i;:::-;1647:3;1640:37;1565:118;;:::o;1689:332::-;1810:4;1848:2;1837:9;1833:18;1825:26;;1861:71;1929:1;1918:9;1914:17;1905:6;1861:71;:::i;:::-;1942:72;2010:2;1999:9;1995:18;1986:6;1942:72;:::i;:::-;1689:332;;;;;:::o;2027:90::-;2061:7;2104:5;2097:13;2090:21;2079:32;;2027:90;;;:::o;2123:116::-;2193:21;2208:5;2193:21;:::i;:::-;2186:5;2183:32;2173:60;;2229:1;2226;2219:12;2173:60;2123:116;:::o;2245:137::-;2299:5;2330:6;2324:13;2315:22;;2346:30;2370:5;2346:30;:::i;:::-;2245:137;;;;:::o;2388:345::-;2455:6;2504:2;2492:9;2483:7;2479:23;2475:32;2472:119;;;2510:79;;:::i;:::-;2472:119;2630:1;2655:61;2708:7;2699:6;2688:9;2684:22;2655:61;:::i;:::-;2645:71;;2601:125;2388:345;;;;:::o;351:723:3:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@send_284": {
"entryPoint": 76,
"id": 284,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 877,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 642,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32_fromMemory": {
"entryPoint": 1949,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 943,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint64": {
"entryPoint": 1032,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_string_memory_ptrt_uint64": {
"entryPoint": 1053,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_bytes32_fromMemory": {
"entryPoint": 1970,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr": {
"entryPoint": 1598,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address": {
"entryPoint": 1511,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1164,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1635,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr": {
"entryPoint": 1410,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1276,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_struct$_EVM2AnyMessage_$84_memory_ptr_to_t_struct$_EVM2AnyMessage_$84_memory_ptr_fromStack": {
"entryPoint": 1729,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr": {
"entryPoint": 1551,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 1536,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint64_to_t_uint64_fromStack": {
"entryPoint": 1367,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 1179,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1333,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint64_t_struct$_EVM2AnyMessage_$84_memory_ptr__to_t_uint64_t_struct$_EVM2AnyMessage_$84_memory_ptr__fromStack_reversed": {
"entryPoint": 1868,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 786,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 549,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 813,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1495,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1467,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 1382,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 1206,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1622,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1478,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr": {
"entryPoint": 1393,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 1217,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 601,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 1916,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 569,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1526,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint64": {
"entryPoint": 989,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory_with_cleanup": {
"entryPoint": 862,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 1234,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"finalize_allocation": {
"entryPoint": 737,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 690,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 663,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 668,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 564,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 559,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 673,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 619,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes32": {
"entryPoint": 1926,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint64": {
"entryPoint": 1009,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:12229:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:4"
},
"nodeType": "YulFunctionCall",
"src": "67:9:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:4"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:4",
"type": ""
}
],
"src": "7:75:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:4"
},
"nodeType": "YulFunctionCall",
"src": "187:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:4"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:4"
},
"nodeType": "YulFunctionCall",
"src": "310:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:4"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:4"
},
"nodeType": "YulFunctionCall",
"src": "400:54:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:4"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:4",
"type": ""
}
],
"src": "334:126:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:4"
},
"nodeType": "YulFunctionCall",
"src": "532:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:4"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:4",
"type": ""
}
],
"src": "466:96:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:4"
},
"nodeType": "YulFunctionCall",
"src": "670:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:4"
},
"nodeType": "YulFunctionCall",
"src": "641:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:4"
},
"nodeType": "YulFunctionCall",
"src": "631:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:4"
},
"nodeType": "YulFunctionCall",
"src": "624:43:4"
},
"nodeType": "YulIf",
"src": "621:63:4"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:4",
"type": ""
}
],
"src": "568:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "748:87:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "758:29:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "780:6:4"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "767:12:4"
},
"nodeType": "YulFunctionCall",
"src": "767:20:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "758:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "823:5:4"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "796:26:4"
},
"nodeType": "YulFunctionCall",
"src": "796:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "796:33:4"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "726:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "734:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "742:5:4",
"type": ""
}
],
"src": "696:139:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "930:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "947:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "950:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "940:6:4"
},
"nodeType": "YulFunctionCall",
"src": "940:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "940:12:4"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "841:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1053:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1070:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1073:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1063:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1063:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "1063:12:4"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "964:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1135:54:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1145:38:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1163:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1170:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1159:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1159:14:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1179:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1175:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1175:7:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1155:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1155:28:4"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1145:6:4"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1118:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1128:6:4",
"type": ""
}
],
"src": "1087:102:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1223:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1240:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1243:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1233:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1233:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "1233:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1337:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1340:4:4",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1330:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1330:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "1330:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1361:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1364:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1354:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1354:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "1354:15:4"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "1195:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1424:238:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1434:58:4",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1456:6:4"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1486:4:4"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1464:21:4"
},
"nodeType": "YulFunctionCall",
"src": "1464:27:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1452:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1452:40:4"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "1438:10:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1603:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1605:16:4"
},
"nodeType": "YulFunctionCall",
"src": "1605:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "1605:18:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1546:10:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1558:18:4",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1543:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1543:34:4"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1582:10:4"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1594:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1579:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1579:22:4"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1540:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1540:62:4"
},
"nodeType": "YulIf",
"src": "1537:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1641:2:4",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1645:10:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1634:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1634:22:4"
},
"nodeType": "YulExpressionStatement",
"src": "1634:22:4"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1410:6:4",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1418:4:4",
"type": ""
}
],
"src": "1381:281:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1709:88:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1719:30:4",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1729:18:4"
},
"nodeType": "YulFunctionCall",
"src": "1729:20:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1719:6:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1778:6:4"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1786:4:4"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1758:19:4"
},
"nodeType": "YulFunctionCall",
"src": "1758:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "1758:33:4"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1693:4:4",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1702:6:4",
"type": ""
}
],
"src": "1668:129:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1870:241:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1975:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1977:16:4"
},
"nodeType": "YulFunctionCall",
"src": "1977:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "1977:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1947:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1955:18:4",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1944:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1944:30:4"
},
"nodeType": "YulIf",
"src": "1941:56:4"
},
{
"nodeType": "YulAssignment",
"src": "2007:37:4",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2037:6:4"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2015:21:4"
},
"nodeType": "YulFunctionCall",
"src": "2015:29:4"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2007:4:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2081:23:4",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2093:4:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2099:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2089:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2089:15:4"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2081:4:4"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1854:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1865:4:4",
"type": ""
}
],
"src": "1803:308:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2181:82:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2204:3:4"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2209:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2214:6:4"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "2191:12:4"
},
"nodeType": "YulFunctionCall",
"src": "2191:30:4"
},
"nodeType": "YulExpressionStatement",
"src": "2191:30:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2241:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2246:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2237:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2237:16:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2255:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2230:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2230:27:4"
},
"nodeType": "YulExpressionStatement",
"src": "2230:27:4"
}
]
},
"name": "copy_calldata_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2163:3:4",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2168:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2173:6:4",
"type": ""
}
],
"src": "2117:146:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2353:341:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2363:75:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2430:6:4"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2388:41:4"
},
"nodeType": "YulFunctionCall",
"src": "2388:49:4"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2372:15:4"
},
"nodeType": "YulFunctionCall",
"src": "2372:66:4"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2363:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2454:5:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2461:6:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2447:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2447:21:4"
},
"nodeType": "YulExpressionStatement",
"src": "2447:21:4"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2477:27:4",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2492:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2499:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2488:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2488:16:4"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2481:3:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2542:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2544:77:4"
},
"nodeType": "YulFunctionCall",
"src": "2544:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "2544:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2523:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2528:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2519:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2519:16:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2537:3:4"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2516:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2516:25:4"
},
"nodeType": "YulIf",
"src": "2513:112:4"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2671:3:4"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2676:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2681:6:4"
}
],
"functionName": {
"name": "copy_calldata_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "2634:36:4"
},
"nodeType": "YulFunctionCall",
"src": "2634:54:4"
},
"nodeType": "YulExpressionStatement",
"src": "2634:54:4"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2326:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2331:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2339:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2347:5:4",
"type": ""
}
],
"src": "2269:425:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2776:278:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2825:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2827:77:4"
},
"nodeType": "YulFunctionCall",
"src": "2827:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "2827:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2804:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2812:4:4",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2800:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2800:17:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2819:3:4"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2796:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2796:27:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2789:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2789:35:4"
},
"nodeType": "YulIf",
"src": "2786:122:4"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2917:34:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2944:6:4"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2931:12:4"
},
"nodeType": "YulFunctionCall",
"src": "2931:20:4"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2921:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2960:88:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3021:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3029:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3017:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3017:17:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3036:6:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3044:3:4"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2969:47:4"
},
"nodeType": "YulFunctionCall",
"src": "2969:79:4"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2960:5:4"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2754:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2762:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2770:5:4",
"type": ""
}
],
"src": "2714:340:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3104:57:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3114:41:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3129:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3136:18:4",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3125:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3125:30:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3114:7:4"
}
]
}
]
},
"name": "cleanup_t_uint64",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3086:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3096:7:4",
"type": ""
}
],
"src": "3060:101:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3209:78:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3265:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3274:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3277:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3267:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3267:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "3267:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3232:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3256:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint64",
"nodeType": "YulIdentifier",
"src": "3239:16:4"
},
"nodeType": "YulFunctionCall",
"src": "3239:23:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3229:2:4"
},
"nodeType": "YulFunctionCall",
"src": "3229:34:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3222:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3222:42:4"
},
"nodeType": "YulIf",
"src": "3219:62:4"
}
]
},
"name": "validator_revert_t_uint64",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3202:5:4",
"type": ""
}
],
"src": "3167:120:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3344:86:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3354:29:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3376:6:4"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3363:12:4"
},
"nodeType": "YulFunctionCall",
"src": "3363:20:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3354:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3418:5:4"
}
],
"functionName": {
"name": "validator_revert_t_uint64",
"nodeType": "YulIdentifier",
"src": "3392:25:4"
},
"nodeType": "YulFunctionCall",
"src": "3392:32:4"
},
"nodeType": "YulExpressionStatement",
"src": "3392:32:4"
}
]
},
"name": "abi_decode_t_uint64",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3322:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3330:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3338:5:4",
"type": ""
}
],
"src": "3293:137:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3545:688:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3591:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3593:77:4"
},
"nodeType": "YulFunctionCall",
"src": "3593:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "3593:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3566:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3575:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3562:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3562:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3587:2:4",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3558:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3558:32:4"
},
"nodeType": "YulIf",
"src": "3555:119:4"
},
{
"nodeType": "YulBlock",
"src": "3684:117:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3699:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3713:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3703:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3728:63:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3763:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3774:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3759:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3759:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3783:7:4"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "3738:20:4"
},
"nodeType": "YulFunctionCall",
"src": "3738:53:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3728:6:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3811:288:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3826:46:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3857:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3868:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3853:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3853:18:4"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3840:12:4"
},
"nodeType": "YulFunctionCall",
"src": "3840:32:4"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3830:6:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3919:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3921:77:4"
},
"nodeType": "YulFunctionCall",
"src": "3921:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "3921:79:4"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3891:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3899:18:4",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3888:2:4"
},
"nodeType": "YulFunctionCall",
"src": "3888:30:4"
},
"nodeType": "YulIf",
"src": "3885:117:4"
},
{
"nodeType": "YulAssignment",
"src": "4016:73:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4061:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4072:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4057:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4057:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4081:7:4"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4026:30:4"
},
"nodeType": "YulFunctionCall",
"src": "4026:63:4"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4016:6:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4109:117:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4124:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4138:2:4",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4128:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4154:62:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4188:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4199:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4184:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4184:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4208:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint64",
"nodeType": "YulIdentifier",
"src": "4164:19:4"
},
"nodeType": "YulFunctionCall",
"src": "4164:52:4"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "4154:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_string_memory_ptrt_uint64",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3499:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3510:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3522:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3530:6:4",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3538:6:4",
"type": ""
}
],
"src": "3436:797:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4304:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4321:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4344:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "4326:17:4"
},
"nodeType": "YulFunctionCall",
"src": "4326:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4314:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4314:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "4314:37:4"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4292:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4299:3:4",
"type": ""
}
],
"src": "4239:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4461:124:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4471:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4483:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4494:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4479:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4479:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4471:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4551:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4564:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4575:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4560:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4560:17:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "4507:43:4"
},
"nodeType": "YulFunctionCall",
"src": "4507:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "4507:71:4"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4433:9:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4445:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4456:4:4",
"type": ""
}
],
"src": "4363:222:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4650:40:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4661:22:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4677:5:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4671:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4671:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4661:6:4"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4633:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4643:6:4",
"type": ""
}
],
"src": "4591:99:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4792:73:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4809:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4814:6:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4802:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4802:19:4"
},
"nodeType": "YulExpressionStatement",
"src": "4802:19:4"
},
{
"nodeType": "YulAssignment",
"src": "4830:29:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4849:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4854:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4845:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4845:14:4"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4830:11:4"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4764:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4769:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4780:11:4",
"type": ""
}
],
"src": "4696:169:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4933:184:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4943:10:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4952:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "4947:1:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5012:63:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5037:3:4"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5042:1:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5033:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5033:11:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5056:3:4"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5061:1:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5052:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5052:11:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5046:5:4"
},
"nodeType": "YulFunctionCall",
"src": "5046:18:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5026:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5026:39:4"
},
"nodeType": "YulExpressionStatement",
"src": "5026:39:4"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4973:1:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4976:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4970:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4970:13:4"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "4984:19:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4986:15:4",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4995:1:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4998:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4991:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4991:10:4"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4986:1:4"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "4966:3:4",
"statements": []
},
"src": "4962:113:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5095:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5100:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5091:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5091:16:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5109:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5084:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5084:27:4"
},
"nodeType": "YulExpressionStatement",
"src": "5084:27:4"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4915:3:4",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4920:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4925:6:4",
"type": ""
}
],
"src": "4871:246:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5215:285:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5225:53:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5272:5:4"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5239:32:4"
},
"nodeType": "YulFunctionCall",
"src": "5239:39:4"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5229:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5287:78:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5353:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5358:6:4"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5294:58:4"
},
"nodeType": "YulFunctionCall",
"src": "5294:71:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5287:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5413:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5420:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5409:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5409:16:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5427:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5432:6:4"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "5374:34:4"
},
"nodeType": "YulFunctionCall",
"src": "5374:65:4"
},
"nodeType": "YulExpressionStatement",
"src": "5374:65:4"
},
{
"nodeType": "YulAssignment",
"src": "5448:46:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5459:3:4"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5486:6:4"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "5464:21:4"
},
"nodeType": "YulFunctionCall",
"src": "5464:29:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5455:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5455:39:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5448:3:4"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5196:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5203:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5211:3:4",
"type": ""
}
],
"src": "5123:377:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5624:195:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5634:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5646:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5657:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5642:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5642:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5634:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5681:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5692:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5677:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5677:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5700:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5706:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5696:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5696:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5670:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5670:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "5670:47:4"
},
{
"nodeType": "YulAssignment",
"src": "5726:86:4",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5798:6:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5807:4:4"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5734:63:4"
},
"nodeType": "YulFunctionCall",
"src": "5734:78:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5726:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5596:9:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5608:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5619:4:4",
"type": ""
}
],
"src": "5506:313:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5888:52:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5905:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5927:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint64",
"nodeType": "YulIdentifier",
"src": "5910:16:4"
},
"nodeType": "YulFunctionCall",
"src": "5910:23:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5898:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5898:36:4"
},
"nodeType": "YulExpressionStatement",
"src": "5898:36:4"
}
]
},
"name": "abi_encode_t_uint64_to_t_uint64_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5876:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5883:3:4",
"type": ""
}
],
"src": "5825:115:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6004:40:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6015:22:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6031:5:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6025:5:4"
},
"nodeType": "YulFunctionCall",
"src": "6025:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6015:6:4"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5987:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5997:6:4",
"type": ""
}
],
"src": "5946:98:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6135:73:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6152:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6157:6:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6145:6:4"
},
"nodeType": "YulFunctionCall",
"src": "6145:19:4"
},
"nodeType": "YulExpressionStatement",
"src": "6145:19:4"
},
{
"nodeType": "YulAssignment",
"src": "6173:29:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6192:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6197:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6188:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6188:14:4"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "6173:11:4"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6107:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6112:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "6123:11:4",
"type": ""
}
],
"src": "6050:158:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6294:273:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6304:52:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6350:5:4"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6318:31:4"
},
"nodeType": "YulFunctionCall",
"src": "6318:38:4"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6308:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6365:67:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6420:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6425:6:4"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6372:47:4"
},
"nodeType": "YulFunctionCall",
"src": "6372:60:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6365:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6480:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6487:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6476:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6476:16:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6494:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6499:6:4"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "6441:34:4"
},
"nodeType": "YulFunctionCall",
"src": "6441:65:4"
},
"nodeType": "YulExpressionStatement",
"src": "6441:65:4"
},
{
"nodeType": "YulAssignment",
"src": "6515:46:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6526:3:4"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6553:6:4"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "6531:21:4"
},
"nodeType": "YulFunctionCall",
"src": "6531:29:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6522:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6522:39:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "6515:3:4"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6275:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6282:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6290:3:4",
"type": ""
}
],
"src": "6214:353:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6677:40:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6688:22:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6704:5:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6698:5:4"
},
"nodeType": "YulFunctionCall",
"src": "6698:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6688:6:4"
}
]
}
]
},
"name": "array_length_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6660:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6670:6:4",
"type": ""
}
],
"src": "6573:144:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6854:73:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6871:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6876:6:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6864:6:4"
},
"nodeType": "YulFunctionCall",
"src": "6864:19:4"
},
"nodeType": "YulExpressionStatement",
"src": "6864:19:4"
},
{
"nodeType": "YulAssignment",
"src": "6892:29:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6911:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6916:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6907:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6907:14:4"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "6892:11:4"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6826:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6831:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "6842:11:4",
"type": ""
}
],
"src": "6723:204:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7035:60:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7045:11:4",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "7053:3:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7045:4:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7066:22:4",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "7078:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7083:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7074:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7074:14:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7066:4:4"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "7022:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "7030:4:4",
"type": ""
}
],
"src": "6933:162:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7156:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7173:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7196:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "7178:17:4"
},
"nodeType": "YulFunctionCall",
"src": "7178:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7166:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7166:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "7166:37:4"
}
]
},
"name": "abi_encode_t_address_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7144:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7151:3:4",
"type": ""
}
],
"src": "7101:108:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7260:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7270:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "7281:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "7270:7:4"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7242:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "7252:7:4",
"type": ""
}
],
"src": "7215:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7353:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7370:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7393:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7375:17:4"
},
"nodeType": "YulFunctionCall",
"src": "7375:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7363:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7363:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "7363:37:4"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7341:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7348:3:4",
"type": ""
}
],
"src": "7298:108:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7596:394:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7606:26:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7622:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7627:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7618:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7618:14:4"
},
"variables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7610:4:4",
"type": ""
}
]
},
{
"nodeType": "YulBlock",
"src": "7642:165:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7678:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7708:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7715:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7704:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7704:16:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "7698:5:4"
},
"nodeType": "YulFunctionCall",
"src": "7698:23:4"
},
"variables": [
{
"name": "memberValue0",
"nodeType": "YulTypedName",
"src": "7682:12:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nodeType": "YulIdentifier",
"src": "7768:12:4"
},
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7786:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7791:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7782:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7782:14:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address",
"nodeType": "YulIdentifier",
"src": "7734:33:4"
},
"nodeType": "YulFunctionCall",
"src": "7734:63:4"
},
"nodeType": "YulExpressionStatement",
"src": "7734:63:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "7817:166:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7854:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7884:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7891:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7880:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7880:16:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "7874:5:4"
},
"nodeType": "YulFunctionCall",
"src": "7874:23:4"
},
"variables": [
{
"name": "memberValue0",
"nodeType": "YulTypedName",
"src": "7858:12:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nodeType": "YulIdentifier",
"src": "7944:12:4"
},
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7962:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7967:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7958:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7958:14:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "7910:33:4"
},
"nodeType": "YulFunctionCall",
"src": "7910:63:4"
},
"nodeType": "YulExpressionStatement",
"src": "7910:63:4"
}
]
}
]
},
"name": "abi_encode_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7583:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7590:3:4",
"type": ""
}
],
"src": "7480:510:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8136:159:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8240:6:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8248:3:4"
}
],
"functionName": {
"name": "abi_encode_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr",
"nodeType": "YulIdentifier",
"src": "8146:93:4"
},
"nodeType": "YulFunctionCall",
"src": "8146:106:4"
},
"nodeType": "YulExpressionStatement",
"src": "8146:106:4"
},
{
"nodeType": "YulAssignment",
"src": "8261:28:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8279:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8284:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8275:3:4"
},
"nodeType": "YulFunctionCall",
"src": "8275:14:4"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "8261:10:4"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8109:6:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "8117:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "8125:10:4",
"type": ""
}
],
"src": "7996:299:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8406:38:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8416:22:4",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "8428:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8433:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8424:3:4"
},
"nodeType": "YulFunctionCall",
"src": "8424:14:4"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "8416:4:4"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "8393:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "8401:4:4",
"type": ""
}
],
"src": "8301:143:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8696:778:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8706:98:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8798:5:4"
}
],
"functionName": {
"name": "array_length_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "8720:77:4"
},
"nodeType": "YulFunctionCall",
"src": "8720:84:4"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "8710:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8813:113:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8914:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8919:6:4"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "8820:93:4"
},
"nodeType": "YulFunctionCall",
"src": "8820:106:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8813:3:4"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "8935:101:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9030:5:4"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "8950:79:4"
},
"nodeType": "YulFunctionCall",
"src": "8950:86:4"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "8939:7:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "9045:21:4",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "9059:7:4"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "9049:6:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9135:314:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9149:34:4",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "9176:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "9170:5:4"
},
"nodeType": "YulFunctionCall",
"src": "9170:13:4"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "9153:13:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "9196:130:4",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "9307:13:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9322:3:4"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr",
"nodeType": "YulIdentifier",
"src": "9203:103:4"
},
"nodeType": "YulFunctionCall",
"src": "9203:123:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9196:3:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "9339:100:4",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "9432:6:4"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "9349:82:4"
},
"nodeType": "YulFunctionCall",
"src": "9349:90:4"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "9339:6:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "9097:1:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "9100:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "9094:2:4"
},
"nodeType": "YulFunctionCall",
"src": "9094:13:4"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "9108:18:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9110:14:4",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "9119:1:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9122:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9115:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9115:9:4"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "9110:1:4"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "9079:14:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9081:10:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9090:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "9085:1:4",
"type": ""
}
]
}
]
},
"src": "9075:374:4"
},
{
"nodeType": "YulAssignment",
"src": "9458:10:4",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9465:3:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9458:3:4"
}
]
}
]
},
"name": "abi_encode_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8675:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "8682:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8691:3:4",
"type": ""
}
],
"src": "8522:952:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9682:1322:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9692:26:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9708:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9713:4:4",
"type": "",
"value": "0xa0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9704:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9704:14:4"
},
"variables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9696:4:4",
"type": ""
}
]
},
{
"nodeType": "YulBlock",
"src": "9728:237:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9767:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9797:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9804:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9793:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9793:16:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "9787:5:4"
},
"nodeType": "YulFunctionCall",
"src": "9787:23:4"
},
"variables": [
{
"name": "memberValue0",
"nodeType": "YulTypedName",
"src": "9771:12:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9835:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9840:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9831:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9831:14:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9851:4:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9857:3:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9847:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9847:14:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9824:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9824:38:4"
},
"nodeType": "YulExpressionStatement",
"src": "9824:38:4"
},
{
"nodeType": "YulAssignment",
"src": "9875:79:4",
"value": {
"arguments": [
{
"name": "memberValue0",
"nodeType": "YulIdentifier",
"src": "9935:12:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9949:4:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "9883:51:4"
},
"nodeType": "YulFunctionCall",
"src": "9883:71:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9875:4:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "9975:233:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10010:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10040:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10047:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10036:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10036:16:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10030:5:4"
},
"nodeType": "YulFunctionCall",
"src": "10030:23:4"
},
"variables": [
{
"name": "memberValue0",
"nodeType": "YulTypedName",
"src": "10014:12:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10078:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10083:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10074:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10074:14:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10094:4:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10100:3:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10090:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10090:14:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10067:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10067:38:4"
},
"nodeType": "YulExpressionStatement",
"src": "10067:38:4"
},
{
"nodeType": "YulAssignment",
"src": "10118:79:4",
"value": {
"arguments": [
{
"name": "memberValue0",
"nodeType": "YulIdentifier",
"src": "10178:12:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10192:4:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "10126:51:4"
},
"nodeType": "YulFunctionCall",
"src": "10126:71:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10118:4:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "10218:333:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10261:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10291:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10298:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10287:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10287:16:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10281:5:4"
},
"nodeType": "YulFunctionCall",
"src": "10281:23:4"
},
"variables": [
{
"name": "memberValue0",
"nodeType": "YulTypedName",
"src": "10265:12:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10329:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10334:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10325:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10325:14:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10345:4:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10351:3:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10341:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10341:14:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10318:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10318:38:4"
},
"nodeType": "YulExpressionStatement",
"src": "10318:38:4"
},
{
"nodeType": "YulAssignment",
"src": "10369:171:4",
"value": {
"arguments": [
{
"name": "memberValue0",
"nodeType": "YulIdentifier",
"src": "10521:12:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10535:4:4"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "10377:143:4"
},
"nodeType": "YulFunctionCall",
"src": "10377:163:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10369:4:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "10561:168:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10600:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10630:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10637:4:4",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10626:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10626:16:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10620:5:4"
},
"nodeType": "YulFunctionCall",
"src": "10620:23:4"
},
"variables": [
{
"name": "memberValue0",
"nodeType": "YulTypedName",
"src": "10604:12:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nodeType": "YulIdentifier",
"src": "10690:12:4"
},
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10708:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10713:4:4",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10704:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10704:14:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address",
"nodeType": "YulIdentifier",
"src": "10656:33:4"
},
"nodeType": "YulFunctionCall",
"src": "10656:63:4"
},
"nodeType": "YulExpressionStatement",
"src": "10656:63:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "10739:238:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10779:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10809:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10816:4:4",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10805:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10805:16:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10799:5:4"
},
"nodeType": "YulFunctionCall",
"src": "10799:23:4"
},
"variables": [
{
"name": "memberValue0",
"nodeType": "YulTypedName",
"src": "10783:12:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10847:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10852:4:4",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10843:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10843:14:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10863:4:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10869:3:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10859:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10859:14:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10836:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10836:38:4"
},
"nodeType": "YulExpressionStatement",
"src": "10836:38:4"
},
{
"nodeType": "YulAssignment",
"src": "10887:79:4",
"value": {
"arguments": [
{
"name": "memberValue0",
"nodeType": "YulIdentifier",
"src": "10947:12:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10961:4:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "10895:51:4"
},
"nodeType": "YulFunctionCall",
"src": "10895:71:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10887:4:4"
}
]
}
]
},
{
"nodeType": "YulAssignment",
"src": "10987:11:4",
"value": {
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10994:4:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10987:3:4"
}
]
}
]
},
"name": "abi_encode_t_struct$_EVM2AnyMessage_$84_memory_ptr_to_t_struct$_EVM2AnyMessage_$84_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9661:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9668:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9677:3:4",
"type": ""
}
],
"src": "9548:1456:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11194:315:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11204:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11216:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11227:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11212:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11212:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11204:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11282:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11295:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11306:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11291:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11291:17:4"
}
],
"functionName": {
"name": "abi_encode_t_uint64_to_t_uint64_fromStack",
"nodeType": "YulIdentifier",
"src": "11240:41:4"
},
"nodeType": "YulFunctionCall",
"src": "11240:69:4"
},
"nodeType": "YulExpressionStatement",
"src": "11240:69:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11330:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11341:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11326:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11326:18:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11350:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11356:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11346:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11346:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11319:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11319:48:4"
},
"nodeType": "YulExpressionStatement",
"src": "11319:48:4"
},
{
"nodeType": "YulAssignment",
"src": "11376:126:4",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "11488:6:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11497:4:4"
}
],
"functionName": {
"name": "abi_encode_t_struct$_EVM2AnyMessage_$84_memory_ptr_to_t_struct$_EVM2AnyMessage_$84_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "11384:103:4"
},
"nodeType": "YulFunctionCall",
"src": "11384:118:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11376:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_uint64_t_struct$_EVM2AnyMessage_$84_memory_ptr__to_t_uint64_t_struct$_EVM2AnyMessage_$84_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11158:9:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "11170:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11178:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11189:4:4",
"type": ""
}
],
"src": "11010:499:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11560:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11570:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "11581:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "11570:7:4"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11542:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "11552:7:4",
"type": ""
}
],
"src": "11515:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11641:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11698:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11707:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11710:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11700:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11700:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "11700:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11664:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11689:5:4"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "11671:17:4"
},
"nodeType": "YulFunctionCall",
"src": "11671:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "11661:2:4"
},
"nodeType": "YulFunctionCall",
"src": "11661:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "11654:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11654:43:4"
},
"nodeType": "YulIf",
"src": "11651:63:4"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11634:5:4",
"type": ""
}
],
"src": "11598:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11789:80:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11799:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11814:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "11808:5:4"
},
"nodeType": "YulFunctionCall",
"src": "11808:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11799:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11857:5:4"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "11830:26:4"
},
"nodeType": "YulFunctionCall",
"src": "11830:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "11830:33:4"
}
]
},
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11767:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11775:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11783:5:4",
"type": ""
}
],
"src": "11726:143:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11952:274:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11998:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "12000:77:4"
},
"nodeType": "YulFunctionCall",
"src": "12000:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "12000:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11973:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11982:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11969:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11969:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11994:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "11965:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11965:32:4"
},
"nodeType": "YulIf",
"src": "11962:119:4"
},
{
"nodeType": "YulBlock",
"src": "12091:128:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12106:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12120:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12110:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "12135:74:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12181:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12192:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12177:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12177:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "12201:7:4"
}
],
"functionName": {
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulIdentifier",
"src": "12145:31:4"
},
"nodeType": "YulFunctionCall",
"src": "12145:64:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "12135:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11922:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "11933:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11945:6:4",
"type": ""
}
],
"src": "11875:351:4"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n function abi_decode_tuple_t_addresst_string_memory_ptrt_uint64(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function array_length_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct Client.EVMTokenAmount -> struct Client.EVMTokenAmount\n function abi_encode_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr(value, pos) {\n let tail := add(pos, 0x40)\n\n {\n // token\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n }\n\n function abi_encodeUpdatedPos_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr(value0, pos) -> updatedPos {\n abi_encode_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr(value0, pos)\n updatedPos := add(pos, 0x40)\n }\n\n function array_nextElement_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // struct Client.EVMTokenAmount[] -> struct Client.EVMTokenAmount[]\n function abi_encode_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(value, pos) -> end {\n let length := array_length_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(pos, length)\n let baseRef := array_dataslot_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n // struct Client.EVM2AnyMessage -> struct Client.EVM2AnyMessage\n function abi_encode_t_struct$_EVM2AnyMessage_$84_memory_ptr_to_t_struct$_EVM2AnyMessage_$84_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // receiver\n\n let memberValue0 := mload(add(value, 0x00))\n\n mstore(add(pos, 0x00), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // tokenAmounts\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // feeToken\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x60))\n }\n\n {\n // extraArgs\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_uint64_t_struct$_EVM2AnyMessage_$84_memory_ptr__to_t_uint64_t_struct$_EVM2AnyMessage_$84_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_struct$_EVM2AnyMessage_$84_memory_ptr_to_t_struct$_EVM2AnyMessage_$84_memory_ptr_fromStack(value1, tail)\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063570b31f014610030575b600080fd5b61004a6004803603810190610045919061041d565b61004c565b005b60006040518060a001604052808560405160200161006a919061049b565b60405160208183030381529060405281526020018460405160200161008f9190610535565b6040516020818303038152906040528152602001600067ffffffffffffffff8111156100be576100bd6102b2565b5b6040519080825280602002602001820160405280156100f757816020015b6100e46101f5565b8152602001906001900390816100dc5790505b50815260200160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528060008152508152509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166396f4e9f983836040518363ffffffff1660e01b81526004016101ab92919061074c565b6020604051808303816000875af11580156101ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ee91906107b2565b5050505050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061026482610239565b9050919050565b61027481610259565b811461027f57600080fd5b50565b6000813590506102918161026b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102ea826102a1565b810181811067ffffffffffffffff82111715610309576103086102b2565b5b80604052505050565b600061031c610225565b905061032882826102e1565b919050565b600067ffffffffffffffff821115610348576103476102b2565b5b610351826102a1565b9050602081019050919050565b82818337600083830152505050565b600061038061037b8461032d565b610312565b90508281526020810184848401111561039c5761039b61029c565b5b6103a784828561035e565b509392505050565b600082601f8301126103c4576103c3610297565b5b81356103d484826020860161036d565b91505092915050565b600067ffffffffffffffff82169050919050565b6103fa816103dd565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806000606084860312156104365761043561022f565b5b600061044486828701610282565b935050602084013567ffffffffffffffff81111561046557610464610234565b5b610471868287016103af565b925050604061048286828701610408565b9150509250925092565b61049581610259565b82525050565b60006020820190506104b0600083018461048c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104f05780820151818401526020810190506104d5565b60008484015250505050565b6000610507826104b6565b61051181856104c1565b93506105218185602086016104d2565b61052a816102a1565b840191505092915050565b6000602082019050818103600083015261054f81846104fc565b905092915050565b610560816103dd565b82525050565b600081519050919050565b600082825260208201905092915050565b600061058d82610566565b6105978185610571565b93506105a78185602086016104d2565b6105b0816102a1565b840191505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6105f081610259565b82525050565b6000819050919050565b610609816105f6565b82525050565b60408201600082015161062560008501826105e7565b5060208201516106386020850182610600565b50505050565b600061064a838361060f565b60408301905092915050565b6000602082019050919050565b600061066e826105bb565b61067881856105c6565b9350610683836105d7565b8060005b838110156106b457815161069b888261063e565b97506106a683610656565b925050600181019050610687565b5085935050505092915050565b600060a08301600083015184820360008601526106de8282610582565b915050602083015184820360208601526106f88282610582565b915050604083015184820360408601526107128282610663565b915050606083015161072760608601826105e7565b506080830151848203608086015261073f8282610582565b9150508091505092915050565b60006040820190506107616000830185610557565b818103602083015261077381846106c1565b90509392505050565b6000819050919050565b61078f8161077c565b811461079a57600080fd5b50565b6000815190506107ac81610786565b92915050565b6000602082840312156107c8576107c761022f565b5b60006107d68482850161079d565b9150509291505056fea2646970667358221220d64317fa7c0865e8663f2bc05589f0201c9917b9685fe39695a05642ba0e1a0d64736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x570B31F0 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH2 0x4C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x49B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x535 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBE JUMPI PUSH2 0xBD PUSH2 0x2B2 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF7 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE4 PUSH2 0x1F5 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xDC JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE POP SWAP1 POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x96F4E9F9 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AB SWAP3 SWAP2 SWAP1 PUSH2 0x74C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x7B2 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264 DUP3 PUSH2 0x239 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x274 DUP2 PUSH2 0x259 JUMP JUMPDEST DUP2 EQ PUSH2 0x27F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x291 DUP2 PUSH2 0x26B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2EA DUP3 PUSH2 0x2A1 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x309 JUMPI PUSH2 0x308 PUSH2 0x2B2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31C PUSH2 0x225 JUMP JUMPDEST SWAP1 POP PUSH2 0x328 DUP3 DUP3 PUSH2 0x2E1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x348 JUMPI PUSH2 0x347 PUSH2 0x2B2 JUMP JUMPDEST JUMPDEST PUSH2 0x351 DUP3 PUSH2 0x2A1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x380 PUSH2 0x37B DUP5 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x312 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x39C JUMPI PUSH2 0x39B PUSH2 0x29C JUMP JUMPDEST JUMPDEST PUSH2 0x3A7 DUP5 DUP3 DUP6 PUSH2 0x35E JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3C4 JUMPI PUSH2 0x3C3 PUSH2 0x297 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3D4 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x36D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FA DUP2 PUSH2 0x3DD JUMP JUMPDEST DUP2 EQ PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x417 DUP2 PUSH2 0x3F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x436 JUMPI PUSH2 0x435 PUSH2 0x22F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x444 DUP7 DUP3 DUP8 ADD PUSH2 0x282 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x465 JUMPI PUSH2 0x464 PUSH2 0x234 JUMP JUMPDEST JUMPDEST PUSH2 0x471 DUP7 DUP3 DUP8 ADD PUSH2 0x3AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x482 DUP7 DUP3 DUP8 ADD PUSH2 0x408 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x495 DUP2 PUSH2 0x259 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4B0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x48C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F0 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4D5 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x507 DUP3 PUSH2 0x4B6 JUMP JUMPDEST PUSH2 0x511 DUP2 DUP6 PUSH2 0x4C1 JUMP JUMPDEST SWAP4 POP PUSH2 0x521 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x52A DUP2 PUSH2 0x2A1 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x54F DUP2 DUP5 PUSH2 0x4FC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x560 DUP2 PUSH2 0x3DD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58D DUP3 PUSH2 0x566 JUMP JUMPDEST PUSH2 0x597 DUP2 DUP6 PUSH2 0x571 JUMP JUMPDEST SWAP4 POP PUSH2 0x5A7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x5B0 DUP2 PUSH2 0x2A1 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5F0 DUP2 PUSH2 0x259 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x609 DUP2 PUSH2 0x5F6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x625 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x5E7 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x638 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x600 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x64A DUP4 DUP4 PUSH2 0x60F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66E DUP3 PUSH2 0x5BB JUMP JUMPDEST PUSH2 0x678 DUP2 DUP6 PUSH2 0x5C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x683 DUP4 PUSH2 0x5D7 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6B4 JUMPI DUP2 MLOAD PUSH2 0x69B DUP9 DUP3 PUSH2 0x63E JUMP JUMPDEST SWAP8 POP PUSH2 0x6A6 DUP4 PUSH2 0x656 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x687 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x6DE DUP3 DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x6F8 DUP3 DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x712 DUP3 DUP3 PUSH2 0x663 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x727 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x5E7 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x73F DUP3 DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x761 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x557 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x773 DUP2 DUP5 PUSH2 0x6C1 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x78F DUP2 PUSH2 0x77C JUMP JUMPDEST DUP2 EQ PUSH2 0x79A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7AC DUP2 PUSH2 0x786 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7C8 JUMPI PUSH2 0x7C7 PUSH2 0x22F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x7D6 DUP5 DUP3 DUP6 ADD PUSH2 0x79D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 NUMBER OR STATICCALL PUSH29 0x865E8663F2BC05589F0201C9917B9685FE39695A05642BA0E1A0D6473 PUSH16 0x6C634300081300330000000000000000 ",
"sourceMap": "351:723:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;601:470;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;710:36;749:236;;;;;;;;807:8;796:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;749:236;;;;848:8;837:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;749:236;;;;914:1;886:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;749:236;;;;969:4;;;;;;;;;;749:236;;;;;;;;;;;;;;;;;;;;;710:275;;1012:6;;;;;;;;;;;998:30;;;1029:24;1055:7;998:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;699:372;601:470;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:4:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:117::-;950:1;947;940:12;964:117;1073:1;1070;1063:12;1087:102;1128:6;1179:2;1175:7;1170:2;1163:5;1159:14;1155:28;1145:38;;1087:102;;;:::o;1195:180::-;1243:77;1240:1;1233:88;1340:4;1337:1;1330:15;1364:4;1361:1;1354:15;1381:281;1464:27;1486:4;1464:27;:::i;:::-;1456:6;1452:40;1594:6;1582:10;1579:22;1558:18;1546:10;1543:34;1540:62;1537:88;;;1605:18;;:::i;:::-;1537:88;1645:10;1641:2;1634:22;1424:238;1381:281;;:::o;1668:129::-;1702:6;1729:20;;:::i;:::-;1719:30;;1758:33;1786:4;1778:6;1758:33;:::i;:::-;1668:129;;;:::o;1803:308::-;1865:4;1955:18;1947:6;1944:30;1941:56;;;1977:18;;:::i;:::-;1941:56;2015:29;2037:6;2015:29;:::i;:::-;2007:37;;2099:4;2093;2089:15;2081:23;;1803:308;;;:::o;2117:146::-;2214:6;2209:3;2204;2191:30;2255:1;2246:6;2241:3;2237:16;2230:27;2117:146;;;:::o;2269:425::-;2347:5;2372:66;2388:49;2430:6;2388:49;:::i;:::-;2372:66;:::i;:::-;2363:75;;2461:6;2454:5;2447:21;2499:4;2492:5;2488:16;2537:3;2528:6;2523:3;2519:16;2516:25;2513:112;;;2544:79;;:::i;:::-;2513:112;2634:54;2681:6;2676:3;2671;2634:54;:::i;:::-;2353:341;2269:425;;;;;:::o;2714:340::-;2770:5;2819:3;2812:4;2804:6;2800:17;2796:27;2786:122;;2827:79;;:::i;:::-;2786:122;2944:6;2931:20;2969:79;3044:3;3036:6;3029:4;3021:6;3017:17;2969:79;:::i;:::-;2960:88;;2776:278;2714:340;;;;:::o;3060:101::-;3096:7;3136:18;3129:5;3125:30;3114:41;;3060:101;;;:::o;3167:120::-;3239:23;3256:5;3239:23;:::i;:::-;3232:5;3229:34;3219:62;;3277:1;3274;3267:12;3219:62;3167:120;:::o;3293:137::-;3338:5;3376:6;3363:20;3354:29;;3392:32;3418:5;3392:32;:::i;:::-;3293:137;;;;:::o;3436:797::-;3522:6;3530;3538;3587:2;3575:9;3566:7;3562:23;3558:32;3555:119;;;3593:79;;:::i;:::-;3555:119;3713:1;3738:53;3783:7;3774:6;3763:9;3759:22;3738:53;:::i;:::-;3728:63;;3684:117;3868:2;3857:9;3853:18;3840:32;3899:18;3891:6;3888:30;3885:117;;;3921:79;;:::i;:::-;3885:117;4026:63;4081:7;4072:6;4061:9;4057:22;4026:63;:::i;:::-;4016:73;;3811:288;4138:2;4164:52;4208:7;4199:6;4188:9;4184:22;4164:52;:::i;:::-;4154:62;;4109:117;3436:797;;;;;:::o;4239:118::-;4326:24;4344:5;4326:24;:::i;:::-;4321:3;4314:37;4239:118;;:::o;4363:222::-;4456:4;4494:2;4483:9;4479:18;4471:26;;4507:71;4575:1;4564:9;4560:17;4551:6;4507:71;:::i;:::-;4363:222;;;;:::o;4591:99::-;4643:6;4677:5;4671:12;4661:22;;4591:99;;;:::o;4696:169::-;4780:11;4814:6;4809:3;4802:19;4854:4;4849:3;4845:14;4830:29;;4696:169;;;;:::o;4871:246::-;4952:1;4962:113;4976:6;4973:1;4970:13;4962:113;;;5061:1;5056:3;5052:11;5046:18;5042:1;5037:3;5033:11;5026:39;4998:2;4995:1;4991:10;4986:15;;4962:113;;;5109:1;5100:6;5095:3;5091:16;5084:27;4933:184;4871:246;;;:::o;5123:377::-;5211:3;5239:39;5272:5;5239:39;:::i;:::-;5294:71;5358:6;5353:3;5294:71;:::i;:::-;5287:78;;5374:65;5432:6;5427:3;5420:4;5413:5;5409:16;5374:65;:::i;:::-;5464:29;5486:6;5464:29;:::i;:::-;5459:3;5455:39;5448:46;;5215:285;5123:377;;;;:::o;5506:313::-;5619:4;5657:2;5646:9;5642:18;5634:26;;5706:9;5700:4;5696:20;5692:1;5681:9;5677:17;5670:47;5734:78;5807:4;5798:6;5734:78;:::i;:::-;5726:86;;5506:313;;;;:::o;5825:115::-;5910:23;5927:5;5910:23;:::i;:::-;5905:3;5898:36;5825:115;;:::o;5946:98::-;5997:6;6031:5;6025:12;6015:22;;5946:98;;;:::o;6050:158::-;6123:11;6157:6;6152:3;6145:19;6197:4;6192:3;6188:14;6173:29;;6050:158;;;;:::o;6214:353::-;6290:3;6318:38;6350:5;6318:38;:::i;:::-;6372:60;6425:6;6420:3;6372:60;:::i;:::-;6365:67;;6441:65;6499:6;6494:3;6487:4;6480:5;6476:16;6441:65;:::i;:::-;6531:29;6553:6;6531:29;:::i;:::-;6526:3;6522:39;6515:46;;6294:273;6214:353;;;;:::o;6573:144::-;6670:6;6704:5;6698:12;6688:22;;6573:144;;;:::o;6723:204::-;6842:11;6876:6;6871:3;6864:19;6916:4;6911:3;6907:14;6892:29;;6723:204;;;;:::o;6933:162::-;7030:4;7053:3;7045:11;;7083:4;7078:3;7074:14;7066:22;;6933:162;;;:::o;7101:108::-;7178:24;7196:5;7178:24;:::i;:::-;7173:3;7166:37;7101:108;;:::o;7215:77::-;7252:7;7281:5;7270:16;;7215:77;;;:::o;7298:108::-;7375:24;7393:5;7375:24;:::i;:::-;7370:3;7363:37;7298:108;;:::o;7480:510::-;7627:4;7622:3;7618:14;7715:4;7708:5;7704:16;7698:23;7734:63;7791:4;7786:3;7782:14;7768:12;7734:63;:::i;:::-;7642:165;7891:4;7884:5;7880:16;7874:23;7910:63;7967:4;7962:3;7958:14;7944:12;7910:63;:::i;:::-;7817:166;7596:394;7480:510;;:::o;7996:299::-;8125:10;8146:106;8248:3;8240:6;8146:106;:::i;:::-;8284:4;8279:3;8275:14;8261:28;;7996:299;;;;:::o;8301:143::-;8401:4;8433;8428:3;8424:14;8416:22;;8301:143;;;:::o;8522:952::-;8691:3;8720:84;8798:5;8720:84;:::i;:::-;8820:106;8919:6;8914:3;8820:106;:::i;:::-;8813:113;;8950:86;9030:5;8950:86;:::i;:::-;9059:7;9090:1;9075:374;9100:6;9097:1;9094:13;9075:374;;;9176:6;9170:13;9203:123;9322:3;9307:13;9203:123;:::i;:::-;9196:130;;9349:90;9432:6;9349:90;:::i;:::-;9339:100;;9135:314;9122:1;9119;9115:9;9110:14;;9075:374;;;9079:14;9465:3;9458:10;;8696:778;;;8522:952;;;;:::o;9548:1456::-;9677:3;9713:4;9708:3;9704:14;9804:4;9797:5;9793:16;9787:23;9857:3;9851:4;9847:14;9840:4;9835:3;9831:14;9824:38;9883:71;9949:4;9935:12;9883:71;:::i;:::-;9875:79;;9728:237;10047:4;10040:5;10036:16;10030:23;10100:3;10094:4;10090:14;10083:4;10078:3;10074:14;10067:38;10126:71;10192:4;10178:12;10126:71;:::i;:::-;10118:79;;9975:233;10298:4;10291:5;10287:16;10281:23;10351:3;10345:4;10341:14;10334:4;10329:3;10325:14;10318:38;10377:163;10535:4;10521:12;10377:163;:::i;:::-;10369:171;;10218:333;10637:4;10630:5;10626:16;10620:23;10656:63;10713:4;10708:3;10704:14;10690:12;10656:63;:::i;:::-;10561:168;10816:4;10809:5;10805:16;10799:23;10869:3;10863:4;10859:14;10852:4;10847:3;10843:14;10836:38;10895:71;10961:4;10947:12;10895:71;:::i;:::-;10887:79;;10739:238;10994:4;10987:11;;9682:1322;9548:1456;;;;:::o;11010:499::-;11189:4;11227:2;11216:9;11212:18;11204:26;;11240:69;11306:1;11295:9;11291:17;11282:6;11240:69;:::i;:::-;11356:9;11350:4;11346:20;11341:2;11330:9;11326:18;11319:48;11384:118;11497:4;11488:6;11384:118;:::i;:::-;11376:126;;11010:499;;;;;:::o;11515:77::-;11552:7;11581:5;11570:16;;11515:77;;;:::o;11598:122::-;11671:24;11689:5;11671:24;:::i;:::-;11664:5;11661:35;11651:63;;11710:1;11707;11700:12;11651:63;11598:122;:::o;11726:143::-;11783:5;11814:6;11808:13;11799:22;;11830:33;11857:5;11830:33;:::i;:::-;11726:143;;;;:::o;11875:351::-;11945:6;11994:2;11982:9;11973:7;11969:23;11965:32;11962:119;;;12000:79;;:::i;:::-;11962:119;12120:1;12145:64;12201:7;12192:6;12181:9;12177:22;12145:64;:::i;:::-;12135:74;;12091:128;11875:351;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "413800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"send(address,string,uint64)": "infinite"
}
},
"methodIdentifiers": {
"send(address,string,uint64)": "570b31f0"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_link",
"type": "address"
},
{
"internalType": "address",
"name": "_router",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"internalType": "string",
"name": "someText",
"type": "string"
},
{
"internalType": "uint64",
"name": "destinationChainSelector",
"type": "uint64"
}
],
"name": "send",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.19+commit.7dd6d404"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_link",
"type": "address"
},
{
"internalType": "address",
"name": "_router",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"internalType": "string",
"name": "someText",
"type": "string"
},
{
"internalType": "uint64",
"name": "destinationChainSelector",
"type": "uint64"
}
],
"name": "send",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"CCIPSender_Unsafe.sol": "CCIPSender_Unsafe"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol": {
"keccak256": "0x7f2fdd93e516b7476c6fab099f6806adf5ceaf399b0cc415f6b9ede890f2379b",
"license": "MIT",
"urls": [
"bzz-raw://14e2547e54a0e225d1aa654d49ad47a169f966b985456612af449eec610189ea",
"dweb:/ipfs/QmcWVnkJ6TKcUR4koDQQGiYMEt7vJ6WG9XcrwbPiPDHoP9"
]
},
"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol": {
"keccak256": "0x8af3ac1085c87342373772fb1a0107c7b90258e6bfed318ab2a601a14477e679",
"license": "MIT",
"urls": [
"bzz-raw://14395fefc8310c9a355262359c8f51036f83c004982fb600164c2a007629f81e",
"dweb:/ipfs/QmeCLr8a5bDVyLQm8v947ULgV4CZmUeQPjVyWixzieBD5o"
]
},
"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol": {
"keccak256": "0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5",
"license": "MIT",
"urls": [
"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd",
"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ"
]
},
"CCIPSender_Unsafe.sol": {
"keccak256": "0xbef6aea0ad54664d12b208b507f3353bd95264d855935051ca7cf2a4f6f03835",
"license": "MIT",
"urls": [
"bzz-raw://a01f673653d95b910046ff5523bd24ff9ed7975f064209831431f0a223ef3e67",
"dweb:/ipfs/QmeeaiQVoYufSnXHmqNNVxH33868zLUxjY6zCAeGrBWGva"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220d5356dd32cb68d07120d563b402a48b6a85b9f98cd3245cb3a92f9df11b78cd564736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3F DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD5 CALLDATALOAD PUSH14 0xD32CB68D07120D563B402A48B6A8 JUMPDEST SWAP16 SWAP9 0xCD ORIGIN GASLIMIT 0xCB GASPRICE SWAP3 0xF9 0xDF GT 0xB7 DUP13 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD SGT STOP CALLER ",
"sourceMap": "148:17:1:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600080fdfea2646970667358221220d5356dd32cb68d07120d563b402a48b6a85b9f98cd3245cb3a92f9df11b78cd564736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD5 CALLDATALOAD PUSH14 0xD32CB68D07120D563B402A48B6A8 JUMPDEST SWAP16 SWAP9 0xCD ORIGIN GASLIMIT 0xCB GASPRICE SWAP3 0xF9 0xDF GT 0xB7 DUP13 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD SGT STOP CALLER ",
"sourceMap": "148:17:1:-:0;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "12600",
"executionCost": "66",
"totalCost": "12666"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.19+commit.7dd6d404"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"Empty.sol": "Empty"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol": {
"keccak256": "0x8af3ac1085c87342373772fb1a0107c7b90258e6bfed318ab2a601a14477e679",
"license": "MIT",
"urls": [
"bzz-raw://14395fefc8310c9a355262359c8f51036f83c004982fb600164c2a007629f81e",
"dweb:/ipfs/QmeCLr8a5bDVyLQm8v947ULgV4CZmUeQPjVyWixzieBD5o"
]
},
"Empty.sol": {
"keccak256": "0xfc218f7c178e146159f79a15705f7e3d13fb731178c2f65ade56d7b3365e05ea",
"license": "MIT",
"urls": [
"bzz-raw://7bd5da03770c9ff626040b3626acd3bc16abbdd82e2ddd5d2d6ca78220703da0",
"dweb:/ipfs/QmWhQLRL4QFjc9bWRn7j7ixu7yPH4oC25xR6gSCpEESAdf"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import {CCIPReceiver} from "@chainlink/contracts-ccip/src/v0.8/ccip/applications/CCIPReceiver.sol";
import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
contract CCIPReceiver_Unsafe is CCIPReceiver {
address public latestSender;
string public latestMessage;
constructor(address router) CCIPReceiver(router) {}
function _ccipReceive(Client.Any2EVMMessage memory message) internal override {
latestSender = abi.decode(message.sender, (address));
latestMessage = abi.decode(message.data , (string));
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol";
import {LinkTokenInterface} from "@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol";
contract CCIPSender_Unsafe {
address link;
address router;
constructor(address _link, address _router) {
link = _link;
router = _router;
LinkTokenInterface(link).approve(router, type(uint256).max);
}
function send(address receiver, string memory someText, uint64 destinationChainSelector) external {
Client.EVM2AnyMessage memory message = Client.EVM2AnyMessage({
receiver: abi.encode(receiver),
data: abi.encode(someText),
tokenAmounts: new Client.EVMTokenAmount[](0),
extraArgs: "",
feeToken: link
});
IRouterClient(router).ccipSend(destinationChainSelector, message);
}
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol";
contract Empty {}
This file has been truncated, but you can view the full file.
{
"id": "01ae3489969277f9ed0fa5dab674fd79",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.19",
"solcLongVersion": "0.8.19+commit.7dd6d404",
"input": {
"language": "Solidity",
"sources": {
"CCIPSender_Unsafe.sol": {
"content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.19;\r\n\r\nimport {Client} from \"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\";\r\nimport {IRouterClient} from \"@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol\";\r\nimport {LinkTokenInterface} from \"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\";\r\n\r\ncontract CCIPSender_Unsafe {\r\naddress link;\r\n address router;\r\n\r\n constructor(address _link, address _router) {\r\n link = _link;\r\n router = _router;\r\n LinkTokenInterface(link).approve(router, type(uint256).max);\r\n }\r\n function send(address receiver, string memory someText, uint64 destinationChainSelector) external {\r\n Client.EVM2AnyMessage memory message = Client.EVM2AnyMessage({\r\n receiver: abi.encode(receiver),\r\n data: abi.encode(someText),\r\n tokenAmounts: new Client.EVMTokenAmount[](0),\r\n extraArgs: \"\",\r\n feeToken: link\r\n });\r\n\r\n IRouterClient(router).ccipSend(destinationChainSelector, message);\r\n }\r\n}\r\n\r\n"
},
"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface LinkTokenInterface {\n function allowance(address owner, address spender) external view returns (uint256 remaining);\n\n function approve(address spender, uint256 value) external returns (bool success);\n\n function balanceOf(address owner) external view returns (uint256 balance);\n\n function decimals() external view returns (uint8 decimalPlaces);\n\n function decreaseApproval(address spender, uint256 addedValue) external returns (bool success);\n\n function increaseApproval(address spender, uint256 subtractedValue) external;\n\n function name() external view returns (string memory tokenName);\n\n function symbol() external view returns (string memory tokenSymbol);\n\n function totalSupply() external view returns (uint256 totalTokensIssued);\n\n function transfer(address to, uint256 value) external returns (bool success);\n\n function transferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool success);\n}\n"
},
"@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {Client} from \"../libraries/Client.sol\";\n\ninterface IRouterClient {\n error UnsupportedDestinationChain(uint64 destChainSelector);\n error InsufficientFeeTokenAmount();\n error InvalidMsgValue();\n\n /// @notice Checks if the given chain ID is supported for sending/receiving.\n /// @param chainSelector The chain to check.\n /// @return supported is true if it is supported, false if not.\n function isChainSupported(uint64 chainSelector) external view returns (bool supported);\n\n /// @notice Gets a list of all supported tokens which can be sent or received\n /// to/from a given chain id.\n /// @param chainSelector The chainSelector.\n /// @return tokens The addresses of all tokens that are supported.\n function getSupportedTokens(uint64 chainSelector) external view returns (address[] memory tokens);\n\n /// @param destinationChainSelector The destination chainSelector\n /// @param message The cross-chain CCIP message including data and/or tokens\n /// @return fee returns execution fee for the message\n /// delivery to destination chain, denominated in the feeToken specified in the message.\n /// @dev Reverts with appropriate reason upon invalid message.\n function getFee(\n uint64 destinationChainSelector,\n Client.EVM2AnyMessage memory message\n ) external view returns (uint256 fee);\n\n /// @notice Request a message to be sent to the destination chain\n /// @param destinationChainSelector The destination chain ID\n /// @param message The cross-chain CCIP message including data and/or tokens\n /// @return messageId The message ID\n /// @dev Note if msg.value is larger than the required fee (from getFee) we accept\n /// the overpayment with no refund.\n /// @dev Reverts with appropriate reason upon invalid message.\n function ccipSend(\n uint64 destinationChainSelector,\n Client.EVM2AnyMessage calldata message\n ) external payable returns (bytes32);\n}\n"
},
"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n// End consumer library.\nlibrary Client {\n /// @dev RMN depends on this struct, if changing, please notify the RMN maintainers.\n struct EVMTokenAmount {\n address token; // token address on the local chain.\n uint256 amount; // Amount of tokens.\n }\n\n struct Any2EVMMessage {\n bytes32 messageId; // MessageId corresponding to ccipSend on source.\n uint64 sourceChainSelector; // Source chain selector.\n bytes sender; // abi.decode(sender) if coming from an EVM chain.\n bytes data; // payload sent in original message.\n EVMTokenAmount[] destTokenAmounts; // Tokens and their amounts in their destination chain representation.\n }\n\n // If extraArgs is empty bytes, the default is 200k gas limit.\n struct EVM2AnyMessage {\n bytes receiver; // abi.encode(receiver address) for dest EVM chains\n bytes data; // Data payload\n EVMTokenAmount[] tokenAmounts; // Token transfers\n address feeToken; // Address of feeToken. address(0) means you will send msg.value.\n bytes extraArgs; // Populate this with _argsToBytes(EVMExtraArgsV1)\n }\n\n // bytes4(keccak256(\"CCIP EVMExtraArgsV1\"));\n bytes4 public constant EVM_EXTRA_ARGS_V1_TAG = 0x97a657c9;\n struct EVMExtraArgsV1 {\n uint256 gasLimit;\n }\n\n function _argsToBytes(EVMExtraArgsV1 memory extraArgs) internal pure returns (bytes memory bts) {\n return abi.encodeWithSelector(EVM_EXTRA_ARGS_V1_TAG, extraArgs);\n }\n}\n"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
},
"remappings": []
}
},
"output": {
"contracts": {
"@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol": {
"IRouterClient": {
"abi": [
{
"inputs": [],
"name": "InsufficientFeeTokenAmount",
"type": "error"
},
{
"inputs": [],
"name": "InvalidMsgValue",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "destChainSelector",
"type": "uint64"
}
],
"name": "UnsupportedDestinationChain",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "destinationChainSelector",
"type": "uint64"
},
{
"components": [
{
"internalType": "bytes",
"name": "receiver",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"internalType": "struct Client.EVMTokenAmount[]",
"name": "tokenAmounts",
"type": "tuple[]"
},
{
"internalType": "address",
"name": "feeToken",
"type": "address"
},
{
"internalType": "bytes",
"name": "extraArgs",
"type": "bytes"
}
],
"internalType": "struct Client.EVM2AnyMessage",
"name": "message",
"type": "tuple"
}
],
"name": "ccipSend",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "destinationChainSelector",
"type": "uint64"
},
{
"components": [
{
"internalType": "bytes",
"name": "receiver",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"internalType": "struct Client.EVMTokenAmount[]",
"name": "tokenAmounts",
"type": "tuple[]"
},
{
"internalType": "address",
"name": "feeToken",
"type": "address"
},
{
"internalType": "bytes",
"name": "extraArgs",
"type": "bytes"
}
],
"internalType": "struct Client.EVM2AnyMessage",
"name": "message",
"type": "tuple"
}
],
"name": "getFee",
"outputs": [
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "chainSelector",
"type": "uint64"
}
],
"name": "getSupportedTokens",
"outputs": [
{
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "chainSelector",
"type": "uint64"
}
],
"name": "isChainSupported",
"outputs": [
{
"internalType": "bool",
"name": "supported",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"ccipSend(uint64,(bytes,bytes,(address,uint256)[],address,bytes))": {
"details": "Note if msg.value is larger than the required fee (from getFee) we accept the overpayment with no refund.Reverts with appropriate reason upon invalid message.",
"params": {
"destinationChainSelector": "The destination chain ID",
"message": "The cross-chain CCIP message including data and/or tokens"
},
"returns": {
"_0": "messageId The message ID"
}
},
"getFee(uint64,(bytes,bytes,(address,uint256)[],address,bytes))": {
"details": "Reverts with appropriate reason upon invalid message.",
"params": {
"destinationChainSelector": "The destination chainSelector",
"message": "The cross-chain CCIP message including data and/or tokens"
},
"returns": {
"fee": "returns execution fee for the message delivery to destination chain, denominated in the feeToken specified in the message."
}
},
"getSupportedTokens(uint64)": {
"params": {
"chainSelector": "The chainSelector."
},
"returns": {
"tokens": "The addresses of all tokens that are supported."
}
},
"isChainSupported(uint64)": {
"params": {
"chainSelector": "The chain to check."
},
"returns": {
"supported": "is true if it is supported, false if not."
}
}
},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {
"ccipSend(uint64,(bytes,bytes,(address,uint256)[],address,bytes))": "96f4e9f9",
"getFee(uint64,(bytes,bytes,(address,uint256)[],address,bytes))": "20487ded",
"getSupportedTokens(uint64)": "fbca3b74",
"isChainSupported(uint64)": "a48a9058"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InsufficientFeeTokenAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"}],\"name\":\"UnsupportedDestinationChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destinationChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Client.EVMTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"extraArgs\",\"type\":\"bytes\"}],\"internalType\":\"struct Client.EVM2AnyMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"ccipSend\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"destinationChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Client.EVMTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"extraArgs\",\"type\":\"bytes\"}],\"internalType\":\"struct Client.EVM2AnyMessage\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"getFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"getSupportedTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"}],\"name\":\"isChainSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"supported\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"ccipSend(uint64,(bytes,bytes,(address,uint256)[],address,bytes))\":{\"details\":\"Note if msg.value is larger than the required fee (from getFee) we accept the overpayment with no refund.Reverts with appropriate reason upon invalid message.\",\"params\":{\"destinationChainSelector\":\"The destination chain ID\",\"message\":\"The cross-chain CCIP message including data and/or tokens\"},\"returns\":{\"_0\":\"messageId The message ID\"}},\"getFee(uint64,(bytes,bytes,(address,uint256)[],address,bytes))\":{\"details\":\"Reverts with appropriate reason upon invalid message.\",\"params\":{\"destinationChainSelector\":\"The destination chainSelector\",\"message\":\"The cross-chain CCIP message including data and/or tokens\"},\"returns\":{\"fee\":\"returns execution fee for the message delivery to destination chain, denominated in the feeToken specified in the message.\"}},\"getSupportedTokens(uint64)\":{\"params\":{\"chainSelector\":\"The chainSelector.\"},\"returns\":{\"tokens\":\"The addresses of all tokens that are supported.\"}},\"isChainSupported(uint64)\":{\"params\":{\"chainSelector\":\"The chain to check.\"},\"returns\":{\"supported\":\"is true if it is supported, false if not.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ccipSend(uint64,(bytes,bytes,(address,uint256)[],address,bytes))\":{\"notice\":\"Request a message to be sent to the destination chain\"},\"getSupportedTokens(uint64)\":{\"notice\":\"Gets a list of all supported tokens which can be sent or received to/from a given chain id.\"},\"isChainSupported(uint64)\":{\"notice\":\"Checks if the given chain ID is supported for sending/receiving.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol\":\"IRouterClient\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol\":{\"keccak256\":\"0x7f2fdd93e516b7476c6fab099f6806adf5ceaf399b0cc415f6b9ede890f2379b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14e2547e54a0e225d1aa654d49ad47a169f966b985456612af449eec610189ea\",\"dweb:/ipfs/QmcWVnkJ6TKcUR4koDQQGiYMEt7vJ6WG9XcrwbPiPDHoP9\"]},\"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\":{\"keccak256\":\"0x8af3ac1085c87342373772fb1a0107c7b90258e6bfed318ab2a601a14477e679\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14395fefc8310c9a355262359c8f51036f83c004982fb600164c2a007629f81e\",\"dweb:/ipfs/QmeCLr8a5bDVyLQm8v947ULgV4CZmUeQPjVyWixzieBD5o\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {
"ccipSend(uint64,(bytes,bytes,(address,uint256)[],address,bytes))": {
"notice": "Request a message to be sent to the destination chain"
},
"getSupportedTokens(uint64)": {
"notice": "Gets a list of all supported tokens which can be sent or received to/from a given chain id."
},
"isChainSupported(uint64)": {
"notice": "Checks if the given chain ID is supported for sending/receiving."
}
},
"version": 1
}
}
},
"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol": {
"Client": {
"abi": [
{
"inputs": [],
"name": "EVM_EXTRA_ARGS_V1_TAG",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\":82:1457 library Client {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n mstore(0x04, 0x00)\n revert(0x00, 0x24)\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\":82:1457 library Client {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x3ab8c0d0\n eq\n tag_2\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\":1171:1228 bytes4 public constant EVM_EXTRA_ARGS_V1_TAG = 0x97a657c9 */\n tag_2:\n tag_3\n tag_4\n jump\t// in\n tag_3:\n mload(0x40)\n tag_5\n swap2\n swap1\n tag_6\n jump\t// in\n tag_5:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n tag_4:\n /* \"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\":1218:1228 0x97a657c9 */\n 0x97a657c9\n /* \"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\":1171:1228 bytes4 public constant EVM_EXTRA_ARGS_V1_TAG = 0x97a657c9 */\n 0xe0\n shl\n dup2\n jump\t// out\n /* \"#utility.yul\":7:156 */\n tag_7:\n /* \"#utility.yul\":43:50 */\n 0x00\n /* \"#utility.yul\":83:149 */\n 0xffffffff00000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":76:81 */\n dup3\n /* \"#utility.yul\":72:150 */\n and\n /* \"#utility.yul\":61:150 */\n swap1\n pop\n /* \"#utility.yul\":7:156 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":162:285 */\n tag_8:\n /* \"#utility.yul\":255:278 */\n tag_12\n /* \"#utility.yul\":272:277 */\n dup2\n /* \"#utility.yul\":255:278 */\n tag_7\n jump\t// in\n tag_12:\n /* \"#utility.yul\":250:253 */\n dup3\n /* \"#utility.yul\":243:279 */\n mstore\n /* \"#utility.yul\":162:285 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":291:525 */\n tag_6:\n /* \"#utility.yul\":390:394 */\n 0x00\n /* \"#utility.yul\":428:430 */\n 0x20\n /* \"#utility.yul\":417:426 */\n dup3\n /* \"#utility.yul\":413:431 */\n add\n /* \"#utility.yul\":405:431 */\n swap1\n pop\n /* \"#utility.yul\":441:518 */\n tag_14\n /* \"#utility.yul\":515:516 */\n 0x00\n /* \"#utility.yul\":504:513 */\n dup4\n /* \"#utility.yul\":500:517 */\n add\n /* \"#utility.yul\":491:497 */\n dup5\n /* \"#utility.yul\":441:518 */\n tag_8\n jump\t// in\n tag_14:\n /* \"#utility.yul\":291:525 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212201a6571cb57e0948b0d0f46c0807446e4c088a84c2f06e945e6070a8368bcbb0e64736f6c63430008130033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "60e5610052600b82828239805160001a607314610045577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c80633ab8c0d0146038575b600080fd5b603e6052565b604051604991906096565b60405180910390f35b6397a657c960e01b81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b609081605d565b82525050565b600060208201905060a960008301846089565b9291505056fea26469706673582212201a6571cb57e0948b0d0f46c0807446e4c088a84c2f06e945e6070a8368bcbb0e64736f6c63430008130033",
"opcodes": "PUSH1 0xE5 PUSH2 0x52 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x45 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3AB8C0D0 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3E PUSH1 0x52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x49 SWAP2 SWAP1 PUSH1 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH4 0x97A657C9 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x90 DUP2 PUSH1 0x5D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0xA9 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x89 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE PUSH6 0x71CB57E0948B 0xD 0xF CHAINID 0xC0 DUP1 PUSH21 0x46E4C088A84C2F06E945E6070A8368BCBB0E64736F PUSH13 0x63430008130033000000000000 ",
"sourceMap": "82:1375:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@EVM_EXTRA_ARGS_V1_TAG_87": {
"entryPoint": 82,
"id": 87,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_bytes4_to_t_bytes4_fromStack_library": {
"entryPoint": 137,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_library_reversed": {
"entryPoint": 150,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_bytes4": {
"entryPoint": 93,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:528:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "51:105:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "61:89:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "76:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "83:66:4",
"type": "",
"value": "0xffffffff00000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "72:3:4"
},
"nodeType": "YulFunctionCall",
"src": "72:78:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "61:7:4"
}
]
}
]
},
"name": "cleanup_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "33:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "43:7:4",
"type": ""
}
],
"src": "7:149:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "233:52:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "250:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "272:5:4"
}
],
"functionName": {
"name": "cleanup_t_bytes4",
"nodeType": "YulIdentifier",
"src": "255:16:4"
},
"nodeType": "YulFunctionCall",
"src": "255:23:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "243:6:4"
},
"nodeType": "YulFunctionCall",
"src": "243:36:4"
},
"nodeType": "YulExpressionStatement",
"src": "243:36:4"
}
]
},
"name": "abi_encode_t_bytes4_to_t_bytes4_fromStack_library",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "221:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "228:3:4",
"type": ""
}
],
"src": "162:123:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "395:130:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "405:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "417:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "428:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "413:3:4"
},
"nodeType": "YulFunctionCall",
"src": "413:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "405:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "491:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "504:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "515:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "500:3:4"
},
"nodeType": "YulFunctionCall",
"src": "500:17:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes4_to_t_bytes4_fromStack_library",
"nodeType": "YulIdentifier",
"src": "441:49:4"
},
"nodeType": "YulFunctionCall",
"src": "441:77:4"
},
"nodeType": "YulExpressionStatement",
"src": "441:77:4"
}
]
},
"name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_library_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "367:9:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "379:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "390:4:4",
"type": ""
}
],
"src": "291:234:4"
}
]
},
"contents": "{\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack_library(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_library_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack_library(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c80633ab8c0d0146038575b600080fd5b603e6052565b604051604991906096565b60405180910390f35b6397a657c960e01b81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b609081605d565b82525050565b600060208201905060a960008301846089565b9291505056fea26469706673582212201a6571cb57e0948b0d0f46c0807446e4c088a84c2f06e945e6070a8368bcbb0e64736f6c63430008130033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3AB8C0D0 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3E PUSH1 0x52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x49 SWAP2 SWAP1 PUSH1 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH4 0x97A657C9 PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x90 DUP2 PUSH1 0x5D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0xA9 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x89 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE PUSH6 0x71CB57E0948B 0xD 0xF CHAINID 0xC0 DUP1 PUSH21 0x46E4C088A84C2F06E945E6070A8368BCBB0E64736F PUSH13 0x63430008130033000000000000 ",
"sourceMap": "82:1375:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;1171:57;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;1218:10;1171:57;;;:::o;7:149:4:-;43:7;83:66;76:5;72:78;61:89;;7:149;;;:::o;162:123::-;255:23;272:5;255:23;:::i;:::-;250:3;243:36;162:123;;:::o;291:234::-;390:4;428:2;417:9;413:18;405:26;;441:77;515:1;504:9;500:17;491:6;441:77;:::i;:::-;291:234;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "45800",
"executionCost": "124",
"totalCost": "45924"
},
"external": {
"EVM_EXTRA_ARGS_V1_TAG()": "303"
},
"internal": {
"_argsToBytes(struct Client.EVMExtraArgsV1 memory)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 82,
"end": 1457,
"name": "PUSH #[$]",
"source": 1,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 82,
"end": 1457,
"name": "PUSH [$]",
"source": 1,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "B"
},
{
"begin": 82,
"end": 1457,
"name": "DUP3",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "DUP3",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "DUP3",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "CODECOPY",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "DUP1",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "MLOAD",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 82,
"end": 1457,
"name": "BYTE",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "73"
},
{
"begin": 82,
"end": 1457,
"name": "EQ",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH [tag]",
"source": 1,
"value": "1"
},
{
"begin": 82,
"end": 1457,
"name": "JUMPI",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 82,
"end": 1457,
"name": "MSTORE",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 82,
"end": 1457,
"name": "MSTORE",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 82,
"end": 1457,
"name": "REVERT",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "tag",
"source": 1,
"value": "1"
},
{
"begin": 82,
"end": 1457,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "ADDRESS",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 82,
"end": 1457,
"name": "MSTORE",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "73"
},
{
"begin": 82,
"end": 1457,
"name": "DUP2",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "MSTORE8",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "DUP3",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "DUP2",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "RETURN",
"source": 1
}
],
".data": {
"0": {
".auxdata": "a26469706673582212201a6571cb57e0948b0d0f46c0807446e4c088a84c2f06e945e6070a8368bcbb0e64736f6c63430008130033",
".code": [
{
"begin": 82,
"end": 1457,
"name": "PUSHDEPLOYADDRESS",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "ADDRESS",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "EQ",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "80"
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 82,
"end": 1457,
"name": "MSTORE",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 82,
"end": 1457,
"name": "CALLDATASIZE",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "LT",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH [tag]",
"source": 1,
"value": "1"
},
{
"begin": 82,
"end": 1457,
"name": "JUMPI",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 82,
"end": 1457,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 82,
"end": 1457,
"name": "SHR",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "DUP1",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "3AB8C0D0"
},
{
"begin": 82,
"end": 1457,
"name": "EQ",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH [tag]",
"source": 1,
"value": "2"
},
{
"begin": 82,
"end": 1457,
"name": "JUMPI",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "tag",
"source": 1,
"value": "1"
},
{
"begin": 82,
"end": 1457,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 82,
"end": 1457,
"name": "DUP1",
"source": 1
},
{
"begin": 82,
"end": 1457,
"name": "REVERT",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "tag",
"source": 1,
"value": "2"
},
{
"begin": 1171,
"end": 1228,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "PUSH [tag]",
"source": 1,
"value": "3"
},
{
"begin": 1171,
"end": 1228,
"name": "PUSH [tag]",
"source": 1,
"value": "4"
},
{
"begin": 1171,
"end": 1228,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "tag",
"source": 1,
"value": "3"
},
{
"begin": 1171,
"end": 1228,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 1171,
"end": 1228,
"name": "MLOAD",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "PUSH [tag]",
"source": 1,
"value": "5"
},
{
"begin": 1171,
"end": 1228,
"name": "SWAP2",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "SWAP1",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "PUSH [tag]",
"source": 1,
"value": "6"
},
{
"begin": 1171,
"end": 1228,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "tag",
"source": 1,
"value": "5"
},
{
"begin": 1171,
"end": 1228,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 1171,
"end": 1228,
"name": "MLOAD",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "DUP1",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "SWAP2",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "SUB",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "SWAP1",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "RETURN",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "tag",
"source": 1,
"value": "4"
},
{
"begin": 1171,
"end": 1228,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1218,
"end": 1228,
"name": "PUSH",
"source": 1,
"value": "97A657C9"
},
{
"begin": 1171,
"end": 1228,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 1171,
"end": 1228,
"name": "SHL",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"name": "DUP2",
"source": 1
},
{
"begin": 1171,
"end": 1228,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 7,
"end": 156,
"name": "tag",
"source": 4,
"value": "7"
},
{
"begin": 7,
"end": 156,
"name": "JUMPDEST",
"source": 4
},
{
"begin": 43,
"end": 50,
"name": "PUSH",
"source": 4,
"value": "0"
},
{
"begin": 83,
"end": 149,
"name": "PUSH",
"source": 4,
"value": "FFFFFFFF00000000000000000000000000000000000000000000000000000000"
},
{
"begin": 76,
"end": 81,
"name": "DUP3",
"source": 4
},
{
"begin": 72,
"end": 150,
"name": "AND",
"source": 4
},
{
"begin": 61,
"end": 150,
"name": "SWAP1",
"source": 4
},
{
"begin": 61,
"end": 150,
"name": "POP",
"source": 4
},
{
"begin": 7,
"end": 156,
"name": "SWAP2",
"source": 4
},
{
"begin": 7,
"end": 156,
"name": "SWAP1",
"source": 4
},
{
"begin": 7,
"end": 156,
"name": "POP",
"source": 4
},
{
"begin": 7,
"end": 156,
"jumpType": "[out]",
"name": "JUMP",
"source": 4
},
{
"begin": 162,
"end": 285,
"name": "tag",
"source": 4,
"value": "8"
},
{
"begin": 162,
"end": 285,
"name": "JUMPDEST",
"source": 4
},
{
"begin": 255,
"end": 278,
"name": "PUSH [tag]",
"source": 4,
"value": "12"
},
{
"begin": 272,
"end": 277,
"name": "DUP2",
"source": 4
},
{
"begin": 255,
"end": 278,
"name": "PUSH [tag]",
"source": 4,
"value": "7"
},
{
"begin": 255,
"end": 278,
"jumpType": "[in]",
"name": "JUMP",
"source": 4
},
{
"begin": 255,
"end": 278,
"name": "tag",
"source": 4,
"value": "12"
},
{
"begin": 255,
"end": 278,
"name": "JUMPDEST",
"source": 4
},
{
"begin": 250,
"end": 253,
"name": "DUP3",
"source": 4
},
{
"begin": 243,
"end": 279,
"name": "MSTORE",
"source": 4
},
{
"begin": 162,
"end": 285,
"name": "POP",
"source": 4
},
{
"begin": 162,
"end": 285,
"name": "POP",
"source": 4
},
{
"begin": 162,
"end": 285,
"jumpType": "[out]",
"name": "JUMP",
"source": 4
},
{
"begin": 291,
"end": 525,
"name": "tag",
"source": 4,
"value": "6"
},
{
"begin": 291,
"end": 525,
"name": "JUMPDEST",
"source": 4
},
{
"begin": 390,
"end": 394,
"name": "PUSH",
"source": 4,
"value": "0"
},
{
"begin": 428,
"end": 430,
"name": "PUSH",
"source": 4,
"value": "20"
},
{
"begin": 417,
"end": 426,
"name": "DUP3",
"source": 4
},
{
"begin": 413,
"end": 431,
"name": "ADD",
"source": 4
},
{
"begin": 405,
"end": 431,
"name": "SWAP1",
"source": 4
},
{
"begin": 405,
"end": 431,
"name": "POP",
"source": 4
},
{
"begin": 441,
"end": 518,
"name": "PUSH [tag]",
"source": 4,
"value": "14"
},
{
"begin": 515,
"end": 516,
"name": "PUSH",
"source": 4,
"value": "0"
},
{
"begin": 504,
"end": 513,
"name": "DUP4",
"source": 4
},
{
"begin": 500,
"end": 517,
"name": "ADD",
"source": 4
},
{
"begin": 491,
"end": 497,
"name": "DUP5",
"source": 4
},
{
"begin": 441,
"end": 518,
"name": "PUSH [tag]",
"source": 4,
"value": "8"
},
{
"begin": 441,
"end": 518,
"jumpType": "[in]",
"name": "JUMP",
"source": 4
},
{
"begin": 441,
"end": 518,
"name": "tag",
"source": 4,
"value": "14"
},
{
"begin": 441,
"end": 518,
"name": "JUMPDEST",
"source": 4
},
{
"begin": 291,
"end": 525,
"name": "SWAP3",
"source": 4
},
{
"begin": 291,
"end": 525,
"name": "SWAP2",
"source": 4
},
{
"begin": 291,
"end": 525,
"name": "POP",
"source": 4
},
{
"begin": 291,
"end": 525,
"name": "POP",
"source": 4
},
{
"begin": 291,
"end": 525,
"jumpType": "[out]",
"name": "JUMP",
"source": 4
}
]
}
},
"sourceList": [
"@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol",
"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol",
"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol",
"CCIPSender_Unsafe.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"EVM_EXTRA_ARGS_V1_TAG()": "3ab8c0d0"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EVM_EXTRA_ARGS_V1_TAG\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\":\"Client\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol\":{\"keccak256\":\"0x8af3ac1085c87342373772fb1a0107c7b90258e6bfed318ab2a601a14477e679\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14395fefc8310c9a355262359c8f51036f83c004982fb600164c2a007629f81e\",\"dweb:/ipfs/QmeCLr8a5bDVyLQm8v947ULgV4CZmUeQPjVyWixzieBD5o\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
},
"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol": {
"LinkTokenInterface": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "remaining",
"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": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "decimalPlaces",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "addedValue",
"type": "uint256"
}
],
"name": "decreaseApproval",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "increaseApproval",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "tokenName",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "tokenSymbol",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "totalTokensIssued",
"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": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "transferAndCall",
"outputs": [
{
"internalType": "bool",
"name": "success",
"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": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"decimals()": "313ce567",
"decreaseApproval(address,uint256)": "66188463",
"increaseApproval(address,uint256)": "d73dd623",
"name()": "06fdde03",
"symbol()": "95d89b41",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferAndCall(address,uint256,bytes)": "4000aea0",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remaining\",\"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\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"decimalPlaces\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalTokensIssued\",\"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\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"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\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":\"LinkTokenInterface\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
},
"CCIPSender_Unsafe.sol": {
"CCIPSender_Unsafe": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_link",
"type": "address"
},
{
"internalType": "address",
"name": "_router",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"internalType": "string",
"name": "someText",
"type": "string"
},
{
"internalType": "uint64",
"name": "destinationChainSelector",
"type": "uint64"
}
],
"name": "send",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"CCIPSender_Unsafe.sol\":351:1074 contract CCIPSender_Unsafe {... */\n mstore(0x40, 0x80)\n /* \"CCIPSender_Unsafe.sol\":423:595 constructor(address _link, address _router) {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"CCIPSender_Unsafe.sol\":485:490 _link */\n dup2\n /* \"CCIPSender_Unsafe.sol\":478:482 link */\n 0x00\n dup1\n /* \"CCIPSender_Unsafe.sol\":478:490 link = _link */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"CCIPSender_Unsafe.sol\":510:517 _router */\n dup1\n /* \"CCIPSender_Unsafe.sol\":501:507 router */\n 0x01\n 0x00\n /* \"CCIPSender_Unsafe.sol\":501:517 router = _router */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"CCIPSender_Unsafe.sol\":547:551 link */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"CCIPSender_Unsafe.sol\":528:560 LinkTokenInterface(link).approve */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x095ea7b3\n /* \"CCIPSender_Unsafe.sol\":561:567 router */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"CCIPSender_Unsafe.sol\":569:586 type(uint256).max */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"CCIPSender_Unsafe.sol\":528:587 LinkTokenInterface(link).approve(router, type(uint256).max) */\n mload(0x40)\n dup4\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_6\n swap3\n swap2\n swap1\n tag_7\n jump\t// in\ntag_6:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_9\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\ntag_9:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\ntag_10:\n pop\n /* \"CCIPSender_Unsafe.sol\":423:595 constructor(address _link, address _router) {... */\n pop\n pop\n /* \"CCIPSender_Unsafe.sol\":351:1074 contract CCIPSender_Unsafe {... */\n jump(tag_12)\n /* \"#utility.yul\":88:205 */\ntag_14:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":334:460 */\ntag_16:\n /* \"#utility.yul\":371:378 */\n 0x00\n /* \"#utility.yul\":411:453 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":404:409 */\n dup3\n /* \"#utility.yul\":400:454 */\n and\n /* \"#utility.yul\":389:454 */\n swap1\n pop\n /* \"#utility.yul\":334:460 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":466:562 */\ntag_17:\n /* \"#utility.yul\":503:510 */\n 0x00\n /* \"#utility.yul\":532:556 */\n tag_32\n /* \"#utility.yul\":550:555 */\n dup3\n /* \"#utility.yul\":532:556 */\n tag_16\n jump\t// in\ntag_32:\n /* \"#utility.yul\":521:556 */\n swap1\n pop\n /* \"#utility.yul\":466:562 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":568:690 */\ntag_18:\n /* \"#utility.yul\":641:665 */\n tag_34\n /* \"#utility.yul\":659:664 */\n dup2\n /* \"#utility.yul\":641:665 */\n tag_17\n jump\t// in\ntag_34:\n /* \"#utility.yul\":634:639 */\n dup2\n /* \"#utility.yul\":631:666 */\n eq\n /* \"#utility.yul\":621:684 */\n tag_35\n jumpi\n /* \"#utility.yul\":680:681 */\n 0x00\n /* \"#utility.yul\":677:678 */\n dup1\n /* \"#utility.yul\":670:682 */\n revert\n /* \"#utility.yul\":621:684 */\ntag_35:\n /* \"#utility.yul\":568:690 */\n pop\n jump\t// out\n /* \"#utility.yul\":696:839 */\ntag_19:\n /* \"#utility.yul\":753:758 */\n 0x00\n /* \"#utility.yul\":784:790 */\n dup2\n /* \"#utility.yul\":778:791 */\n mload\n /* \"#utility.yul\":769:791 */\n swap1\n pop\n /* \"#utility.yul\":800:833 */\n tag_37\n /* \"#utility.yul\":827:832 */\n dup2\n /* \"#utility.yul\":800:833 */\n tag_18\n jump\t// in\ntag_37:\n /* \"#utility.yul\":696:839 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":845:1352 */\ntag_3:\n /* \"#utility.yul\":924:930 */\n 0x00\n /* \"#utility.yul\":932:938 */\n dup1\n /* \"#utility.yul\":981:983 */\n 0x40\n /* \"#utility.yul\":969:978 */\n dup4\n /* \"#utility.yul\":960:967 */\n dup6\n /* \"#utility.yul\":956:979 */\n sub\n /* \"#utility.yul\":952:984 */\n slt\n /* \"#utility.yul\":949:1068 */\n iszero\n tag_39\n jumpi\n /* \"#utility.yul\":987:1066 */\n tag_40\n tag_14\n jump\t// in\ntag_40:\n /* \"#utility.yul\":949:1068 */\ntag_39:\n /* \"#utility.yul\":1107:1108 */\n 0x00\n /* \"#utility.yul\":1132:1196 */\n tag_41\n /* \"#utility.yul\":1188:1195 */\n dup6\n /* \"#utility.yul\":1179:1185 */\n dup3\n /* \"#utility.yul\":1168:1177 */\n dup7\n /* \"#utility.yul\":1164:1186 */\n add\n /* \"#utility.yul\":1132:1196 */\n tag_19\n jump\t// in\ntag_41:\n /* \"#utility.yul\":1122:1196 */\n swap3\n pop\n /* \"#utility.yul\":1078:1206 */\n pop\n /* \"#utility.yul\":1245:1247 */\n 0x20\n /* \"#utility.yul\":1271:1335 */\n tag_42\n /* \"#utility.yul\":1327:1334 */\n dup6\n /* \"#utility.yul\":1318:1324 */\n dup3\n /* \"#utility.yul\":1307:1316 */\n dup7\n /* \"#utility.yul\":1303:1325 */\n add\n /* \"#utility.yul\":1271:1335 */\n tag_19\n jump\t// in\ntag_42:\n /* \"#utility.yul\":1261:1335 */\n swap2\n pop\n /* \"#utility.yul\":1216:1345 */\n pop\n /* \"#utility.yul\":845:1352 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1358:1476 */\ntag_20:\n /* \"#utility.yul\":1445:1469 */\n tag_44\n /* \"#utility.yul\":1463:1468 */\n dup2\n /* \"#utility.yul\":1445:1469 */\n tag_17\n jump\t// in\ntag_44:\n /* \"#utility.yul\":1440:1443 */\n dup3\n /* \"#utility.yul\":1433:1470 */\n mstore\n /* \"#utility.yul\":1358:1476 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1482:1559 */\ntag_21:\n /* \"#utility.yul\":1519:1526 */\n 0x00\n /* \"#utility.yul\":1548:1553 */\n dup2\n /* \"#utility.yul\":1537:1553 */\n swap1\n pop\n /* \"#utility.yul\":1482:1559 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1565:1683 */\ntag_22:\n /* \"#utility.yul\":1652:1676 */\n tag_47\n /* \"#utility.yul\":1670:1675 */\n dup2\n /* \"#utility.yul\":1652:1676 */\n tag_21\n jump\t// in\ntag_47:\n /* \"#utility.yul\":1647:1650 */\n dup3\n /* \"#utility.yul\":1640:1677 */\n mstore\n /* \"#utility.yul\":1565:1683 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1689:2021 */\ntag_7:\n /* \"#utility.yul\":1810:1814 */\n 0x00\n /* \"#utility.yul\":1848:1850 */\n 0x40\n /* \"#utility.yul\":1837:1846 */\n dup3\n /* \"#utility.yul\":1833:1851 */\n add\n /* \"#utility.yul\":1825:1851 */\n swap1\n pop\n /* \"#utility.yul\":1861:1932 */\n tag_49\n /* \"#utility.yul\":1929:1930 */\n 0x00\n /* \"#utility.yul\":1918:1927 */\n dup4\n /* \"#utility.yul\":1914:1931 */\n add\n /* \"#utility.yul\":1905:1911 */\n dup6\n /* \"#utility.yul\":1861:1932 */\n tag_20\n jump\t// in\ntag_49:\n /* \"#utility.yul\":1942:2014 */\n tag_50\n /* \"#utility.yul\":2010:2012 */\n 0x20\n /* \"#utility.yul\":1999:2008 */\n dup4\n /* \"#utility.yul\":1995:2013 */\n add\n /* \"#utility.yul\":1986:1992 */\n dup5\n /* \"#utility.yul\":1942:2014 */\n tag_22\n jump\t// in\ntag_50:\n /* \"#utility.yul\":1689:2021 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2027:2117 */\ntag_23:\n /* \"#utility.yul\":2061:2068 */\n 0x00\n /* \"#utility.yul\":2104:2109 */\n dup2\n /* \"#utility.yul\":2097:2110 */\n iszero\n /* \"#utility.yul\":2090:2111 */\n iszero\n /* \"#utility.yul\":2079:2111 */\n swap1\n pop\n /* \"#utility.yul\":2027:2117 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2123:2239 */\ntag_24:\n /* \"#utility.yul\":2193:2214 */\n tag_53\n /* \"#utility.yul\":2208:2213 */\n dup2\n /* \"#utility.yul\":2193:2214 */\n tag_23\n jump\t// in\ntag_53:\n /* \"#utility.yul\":2186:2191 */\n dup2\n /* \"#utility.yul\":2183:2215 */\n eq\n /* \"#utility.yul\":2173:2233 */\n tag_54\n jumpi\n /* \"#utility.yul\":2229:2230 */\n 0x00\n /* \"#utility.yul\":2226:2227 */\n dup1\n /* \"#utility.yul\":2219:2231 */\n revert\n /* \"#utility.yul\":2173:2233 */\ntag_54:\n /* \"#utility.yul\":2123:2239 */\n pop\n jump\t// out\n /* \"#utility.yul\":2245:2382 */\ntag_25:\n /* \"#utility.yul\":2299:2304 */\n 0x00\n /* \"#utility.yul\":2330:2336 */\n dup2\n /* \"#utility.yul\":2324:2337 */\n mload\n /* \"#utility.yul\":2315:2337 */\n swap1\n pop\n /* \"#utility.yul\":2346:2376 */\n tag_56\n /* \"#utility.yul\":2370:2375 */\n dup2\n /* \"#utility.yul\":2346:2376 */\n tag_24\n jump\t// in\ntag_56:\n /* \"#utility.yul\":2245:2382 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2388:2733 */\ntag_11:\n /* \"#utility.yul\":2455:2461 */\n 0x00\n /* \"#utility.yul\":2504:2506 */\n 0x20\n /* \"#utility.yul\":2492:2501 */\n dup3\n /* \"#utility.yul\":2483:2490 */\n dup5\n /* \"#utility.yul\":2479:2502 */\n sub\n /* \"#utility.yul\":2475:2507 */\n slt\n /* \"#utility.yul\":2472:2591 */\n iszero\n tag_58\n jumpi\n /* \"#utility.yul\":2510:2589 */\n tag_59\n tag_14\n jump\t// in\ntag_59:\n /* \"#utility.yul\":2472:2591 */\ntag_58:\n /* \"#utility.yul\":2630:2631 */\n 0x00\n /* \"#utility.yul\":2655:2716 */\n tag_60\n /* \"#utility.yul\":2708:2715 */\n dup5\n /* \"#utility.yul\":2699:2705 */\n dup3\n /* \"#utility.yul\":2688:2697 */\n dup6\n /* \"#utility.yul\":2684:2706 */\n add\n /* \"#utility.yul\":2655:2716 */\n tag_25\n jump\t// in\ntag_60:\n /* \"#utility.yul\":2645:2716 */\n swap2\n pop\n /* \"#utility.yul\":2601:2726 */\n pop\n /* \"#utility.yul\":2388:2733 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"CCIPSender_Unsafe.sol\":351:1074 contract CCIPSender_Unsafe {... */\ntag_12:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"CCIPSender_Unsafe.sol\":351:1074 contract CCIPSender_Unsafe {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x570b31f0\n eq\n tag_3\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"CCIPSender_Unsafe.sol\":601:1071 function send(address receiver, string memory someText, uint64 destinationChainSelector) external {... */\n tag_3:\n tag_4\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_5\n swap2\n swap1\n tag_6\n jump\t// in\n tag_5:\n tag_7\n jump\t// in\n tag_4:\n stop\n tag_7:\n /* \"CCIPSender_Unsafe.sol\":710:746 Client.EVM2AnyMessage memory message */\n 0x00\n /* \"CCIPSender_Unsafe.sol\":749:985 Client.EVM2AnyMessage({... */\n mload(0x40)\n dup1\n 0xa0\n add\n 0x40\n mstore\n dup1\n /* \"CCIPSender_Unsafe.sol\":807:815 receiver */\n dup6\n /* \"CCIPSender_Unsafe.sol\":796:816 abi.encode(receiver) */\n add(0x20, mload(0x40))\n tag_9\n swap2\n swap1\n tag_10\n jump\t// in\n tag_9:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"CCIPSender_Unsafe.sol\":749:985 Client.EVM2AnyMessage({... */\n dup2\n mstore\n 0x20\n add\n /* \"CCIPSender_Unsafe.sol\":848:856 someText */\n dup5\n /* \"CCIPSender_Unsafe.sol\":837:857 abi.encode(someText) */\n add(0x20, mload(0x40))\n tag_11\n swap2\n swap1\n tag_12\n jump\t// in\n tag_11:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"CCIPSender_Unsafe.sol\":749:985 Client.EVM2AnyMessage({... */\n dup2\n mstore\n 0x20\n add\n /* \"CCIPSender_Unsafe.sol\":914:915 0 */\n 0x00\n /* \"CCIPSender_Unsafe.sol\":886:916 new Client.EVMTokenAmount[](0) */\n 0xffffffffffffffff\n dup2\n gt\n iszero\n tag_13\n jumpi\n tag_14\n tag_15\n jump\t// in\n tag_14:\n tag_13:\n mload(0x40)\n swap1\n dup1\n dup3\n mstore\n dup1\n 0x20\n mul\n 0x20\n add\n dup3\n add\n 0x40\n mstore\n dup1\n iszero\n tag_16\n jumpi\n dup2\n 0x20\n add\n tag_17:\n tag_18\n tag_19\n jump\t// in\n tag_18:\n dup2\n mstore\n 0x20\n add\n swap1\n 0x01\n swap1\n sub\n swap1\n dup2\n tag_17\n jumpi\n swap1\n pop\n tag_16:\n pop\n /* \"CCIPSender_Unsafe.sol\":749:985 Client.EVM2AnyMessage({... */\n dup2\n mstore\n 0x20\n add\n /* \"CCIPSender_Unsafe.sol\":969:973 link */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"CCIPSender_Unsafe.sol\":749:985 Client.EVM2AnyMessage({... */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n mload(0x40)\n dup1\n 0x20\n add\n 0x40\n mstore\n dup1\n 0x00\n dup2\n mstore\n pop\n dup2\n mstore\n pop\n /* \"CCIPSender_Unsafe.sol\":710:985 Client.EVM2AnyMessage memory message = Client.EVM2AnyMessage({... */\n swap1\n pop\n /* \"CCIPSender_Unsafe.sol\":1012:1018 router */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"CCIPSender_Unsafe.sol\":998:1028 IRouterClient(router).ccipSend */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x96f4e9f9\n /* \"CCIPSender_Unsafe.sol\":1029:1053 destinationChainSelector */\n dup4\n /* \"CCIPSender_Unsafe.sol\":1055:1062 message */\n dup4\n /* \"CCIPSender_Unsafe.sol\":998:1063 IRouterClient(router).ccipSend(destinationChainSelector, message) */\n mload(0x40)\n dup4\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_20\n swap3\n swap2\n swap1\n tag_21\n jump\t// in\n tag_20:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_23\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_23:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_24\n swap2\n swap1\n tag_25\n jump\t// in\n tag_24:\n pop\n /* \"CCIPSender_Unsafe.sol\":699:1071 {... */\n pop\n /* \"CCIPSender_Unsafe.sol\":601:1071 function send(address receiver, string memory someText, uint64 destinationChainSelector) external {... */\n pop\n pop\n pop\n jump\t// out\n tag_19:\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n and(0xffffffffffffffffffffffffffffffffffffffff, 0x00)\n dup2\n mstore\n 0x20\n add\n 0x00\n dup2\n mstore\n pop\n swap1\n jump\t// out\n /* \"#utility.yul\":7:82 */\n tag_26:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\n tag_27:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\n tag_28:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:460 */\n tag_29:\n /* \"#utility.yul\":371:378 */\n 0x00\n /* \"#utility.yul\":411:453 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":404:409 */\n dup3\n /* \"#utility.yul\":400:454 */\n and\n /* \"#utility.yul\":389:454 */\n swap1\n pop\n /* \"#utility.yul\":334:460 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":466:562 */\n tag_30:\n /* \"#utility.yul\":503:510 */\n 0x00\n /* \"#utility.yul\":532:556 */\n tag_74\n /* \"#utility.yul\":550:555 */\n dup3\n /* \"#utility.yul\":532:556 */\n tag_29\n jump\t// in\n tag_74:\n /* \"#utility.yul\":521:556 */\n swap1\n pop\n /* \"#utility.yul\":466:562 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":568:690 */\n tag_31:\n /* \"#utility.yul\":641:665 */\n tag_76\n /* \"#utility.yul\":659:664 */\n dup2\n /* \"#utility.yul\":641:665 */\n tag_30\n jump\t// in\n tag_76:\n /* \"#utility.yul\":634:639 */\n dup2\n /* \"#utility.yul\":631:666 */\n eq\n /* \"#utility.yul\":621:684 */\n tag_77\n jumpi\n /* \"#utility.yul\":680:681 */\n 0x00\n /* \"#utility.yul\":677:678 */\n dup1\n /* \"#utility.yul\":670:682 */\n revert\n /* \"#utility.yul\":621:684 */\n tag_77:\n /* \"#utility.yul\":568:690 */\n pop\n jump\t// out\n /* \"#utility.yul\":696:835 */\n tag_32:\n /* \"#utility.yul\":742:747 */\n 0x00\n /* \"#utility.yul\":780:786 */\n dup2\n /* \"#utility.yul\":767:787 */\n calldataload\n /* \"#utility.yul\":758:787 */\n swap1\n pop\n /* \"#utility.yul\":796:829 */\n tag_79\n /* \"#utility.yul\":823:828 */\n dup2\n /* \"#utility.yul\":796:829 */\n tag_31\n jump\t// in\n tag_79:\n /* \"#utility.yul\":696:835 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":841:958 */\n tag_33:\n /* \"#utility.yul\":950:951 */\n 0x00\n /* \"#utility.yul\":947:948 */\n dup1\n /* \"#utility.yul\":940:952 */\n revert\n /* \"#utility.yul\":964:1081 */\n tag_34:\n /* \"#utility.yul\":1073:1074 */\n 0x00\n /* \"#utility.yul\":1070:1071 */\n dup1\n /* \"#utility.yul\":1063:1075 */\n revert\n /* \"#utility.yul\":1087:1189 */\n tag_35:\n /* \"#utility.yul\":1128:1134 */\n 0x00\n /* \"#utility.yul\":1179:1181 */\n 0x1f\n /* \"#utility.yul\":1175:1182 */\n not\n /* \"#utility.yul\":1170:1172 */\n 0x1f\n /* \"#utility.yul\":1163:1168 */\n dup4\n /* \"#utility.yul\":1159:1173 */\n add\n /* \"#utility.yul\":1155:1183 */\n and\n /* \"#utility.yul\":1145:1183 */\n swap1\n pop\n /* \"#utility.yul\":1087:1189 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1195:1375 */\n tag_15:\n /* \"#utility.yul\":1243:1320 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1240:1241 */\n 0x00\n /* \"#utility.yul\":1233:1321 */\n mstore\n /* \"#utility.yul\":1340:1344 */\n 0x41\n /* \"#utility.yul\":1337:1338 */\n 0x04\n /* \"#utility.yul\":1330:1345 */\n mstore\n /* \"#utility.yul\":1364:1368 */\n 0x24\n /* \"#utility.yul\":1361:1362 */\n 0x00\n /* \"#utility.yul\":1354:1369 */\n revert\n /* \"#utility.yul\":1381:1662 */\n tag_36:\n /* \"#utility.yul\":1464:1491 */\n tag_85\n /* \"#utility.yul\":1486:1490 */\n dup3\n /* \"#utility.yul\":1464:1491 */\n tag_35\n jump\t// in\n tag_85:\n /* \"#utility.yul\":1456:1462 */\n dup2\n /* \"#utility.yul\":1452:1492 */\n add\n /* \"#utility.yul\":1594:1600 */\n dup2\n /* \"#utility.yul\":1582:1592 */\n dup2\n /* \"#utility.yul\":1579:1601 */\n lt\n /* \"#utility.yul\":1558:1576 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1546:1556 */\n dup3\n /* \"#utility.yul\":1543:1577 */\n gt\n /* \"#utility.yul\":1540:1602 */\n or\n /* \"#utility.yul\":1537:1625 */\n iszero\n tag_86\n jumpi\n /* \"#utility.yul\":1605:1623 */\n tag_87\n tag_15\n jump\t// in\n tag_87:\n /* \"#utility.yul\":1537:1625 */\n tag_86:\n /* \"#utility.yul\":1645:1655 */\n dup1\n /* \"#utility.yul\":1641:1643 */\n 0x40\n /* \"#utility.yul\":1634:1656 */\n mstore\n /* \"#utility.yul\":1424:1662 */\n pop\n /* \"#utility.yul\":1381:1662 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1668:1797 */\n tag_37:\n /* \"#utility.yul\":1702:1708 */\n 0x00\n /* \"#utility.yul\":1729:1749 */\n tag_89\n tag_26\n jump\t// in\n tag_89:\n /* \"#utility.yul\":1719:1749 */\n swap1\n pop\n /* \"#utility.yul\":1758:1791 */\n tag_90\n /* \"#utility.yul\":1786:1790 */\n dup3\n /* \"#utility.yul\":1778:1784 */\n dup3\n /* \"#utility.yul\":1758:1791 */\n tag_36\n jump\t// in\n tag_90:\n /* \"#utility.yul\":1668:1797 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1803:2111 */\n tag_38:\n /* \"#utility.yul\":1865:1869 */\n 0x00\n /* \"#utility.yul\":1955:1973 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1947:1953 */\n dup3\n /* \"#utility.yul\":1944:1974 */\n gt\n /* \"#utility.yul\":1941:1997 */\n iszero\n tag_92\n jumpi\n /* \"#utility.yul\":1977:1995 */\n tag_93\n tag_15\n jump\t// in\n tag_93:\n /* \"#utility.yul\":1941:1997 */\n tag_92:\n /* \"#utility.yul\":2015:2044 */\n tag_94\n /* \"#utility.yul\":2037:2043 */\n dup3\n /* \"#utility.yul\":2015:2044 */\n tag_35\n jump\t// in\n tag_94:\n /* \"#utility.yul\":2007:2044 */\n swap1\n pop\n /* \"#utility.yul\":2099:2103 */\n 0x20\n /* \"#utility.yul\":2093:2097 */\n dup2\n /* \"#utility.yul\":2089:2104 */\n add\n /* \"#utility.yul\":2081:2104 */\n swap1\n pop\n /* \"#utility.yul\":1803:2111 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2117:2263 */\n tag_39:\n /* \"#utility.yul\":2214:2220 */\n dup3\n /* \"#utility.yul\":2209:2212 */\n dup2\n /* \"#utility.yul\":2204:2207 */\n dup4\n /* \"#utility.yul\":2191:2221 */\n calldatacopy\n /* \"#utility.yul\":2255:2256 */\n 0x00\n /* \"#utility.yul\":2246:2252 */\n dup4\n /* \"#utility.yul\":2241:2244 */\n dup4\n /* \"#utility.yul\":2237:2253 */\n add\n /* \"#utility.yul\":2230:2257 */\n mstore\n /* \"#utility.yul\":2117:2263 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2269:2694 */\n tag_40:\n /* \"#utility.yul\":2347:2352 */\n 0x00\n /* \"#utility.yul\":2372:2438 */\n tag_97\n /* \"#utility.yul\":2388:2437 */\n tag_98\n /* \"#utility.yul\":2430:2436 */\n dup5\n /* \"#utility.yul\":2388:2437 */\n tag_38\n jump\t// in\n tag_98:\n /* \"#utility.yul\":2372:2438 */\n tag_37\n jump\t// in\n tag_97:\n /* \"#utility.yul\":2363:2438 */\n swap1\n pop\n /* \"#utility.yul\":2461:2467 */\n dup3\n /* \"#utility.yul\":2454:2459 */\n dup2\n /* \"#utility.yul\":2447:2468 */\n mstore\n /* \"#utility.yul\":2499:2503 */\n 0x20\n /* \"#utility.yul\":2492:2497 */\n dup2\n /* \"#utility.yul\":2488:2504 */\n add\n /* \"#utility.yul\":2537:2540 */\n dup5\n /* \"#utility.yul\":2528:2534 */\n dup5\n /* \"#utility.yul\":2523:2526 */\n dup5\n /* \"#utility.yul\":2519:2535 */\n add\n /* \"#utility.yul\":2516:2541 */\n gt\n /* \"#utility.yul\":2513:2625 */\n iszero\n tag_99\n jumpi\n /* \"#utility.yul\":2544:2623 */\n tag_100\n tag_34\n jump\t// in\n tag_100:\n /* \"#utility.yul\":2513:2625 */\n tag_99:\n /* \"#utility.yul\":2634:2688 */\n tag_101\n /* \"#utility.yul\":2681:2687 */\n dup5\n /* \"#utility.yul\":2676:2679 */\n dup3\n /* \"#utility.yul\":2671:2674 */\n dup6\n /* \"#utility.yul\":2634:2688 */\n tag_39\n jump\t// in\n tag_101:\n /* \"#utility.yul\":2353:2694 */\n pop\n /* \"#utility.yul\":2269:2694 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2714:3054 */\n tag_41:\n /* \"#utility.yul\":2770:2775 */\n 0x00\n /* \"#utility.yul\":2819:2822 */\n dup3\n /* \"#utility.yul\":2812:2816 */\n 0x1f\n /* \"#utility.yul\":2804:2810 */\n dup4\n /* \"#utility.yul\":2800:2817 */\n add\n /* \"#utility.yul\":2796:2823 */\n slt\n /* \"#utility.yul\":2786:2908 */\n tag_103\n jumpi\n /* \"#utility.yul\":2827:2906 */\n tag_104\n tag_33\n jump\t// in\n tag_104:\n /* \"#utility.yul\":2786:2908 */\n tag_103:\n /* \"#utility.yul\":2944:2950 */\n dup2\n /* \"#utility.yul\":2931:2951 */\n calldataload\n /* \"#utility.yul\":2969:3048 */\n tag_105\n /* \"#utility.yul\":3044:3047 */\n dup5\n /* \"#utility.yul\":3036:3042 */\n dup3\n /* \"#utility.yul\":3029:3033 */\n 0x20\n /* \"#utility.yul\":3021:3027 */\n dup7\n /* \"#utility.yul\":3017:3034 */\n add\n /* \"#utility.yul\":2969:3048 */\n tag_40\n jump\t// in\n tag_105:\n /* \"#utility.yul\":2960:3048 */\n swap2\n pop\n /* \"#utility.yul\":2776:3054 */\n pop\n /* \"#utility.yul\":2714:3054 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3060:3161 */\n tag_42:\n /* \"#utility.yul\":3096:3103 */\n 0x00\n /* \"#utility.yul\":3136:3154 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3129:3134 */\n dup3\n /* \"#utility.yul\":3125:3155 */\n and\n /* \"#utility.yul\":3114:3155 */\n swap1\n pop\n /* \"#utility.yul\":3060:3161 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3167:3287 */\n tag_43:\n /* \"#utility.yul\":3239:3262 */\n tag_108\n /* \"#utility.yul\":3256:3261 */\n dup2\n /* \"#utility.yul\":3239:3262 */\n tag_42\n jump\t// in\n tag_108:\n /* \"#utility.yul\":3232:3237 */\n dup2\n /* \"#utility.yul\":3229:3263 */\n eq\n /* \"#utility.yul\":3219:3281 */\n tag_109\n jumpi\n /* \"#utility.yul\":3277:3278 */\n 0x00\n /* \"#utility.yul\":3274:3275 */\n dup1\n /* \"#utility.yul\":3267:3279 */\n revert\n /* \"#utility.yul\":3219:3281 */\n tag_109:\n /* \"#utility.yul\":3167:3287 */\n pop\n jump\t// out\n /* \"#utility.yul\":3293:3430 */\n tag_44:\n /* \"#utility.yul\":3338:3343 */\n 0x00\n /* \"#utility.yul\":3376:3382 */\n dup2\n /* \"#utility.yul\":3363:3383 */\n calldataload\n /* \"#utility.yul\":3354:3383 */\n swap1\n pop\n /* \"#utility.yul\":3392:3424 */\n tag_111\n /* \"#utility.yul\":3418:3423 */\n dup2\n /* \"#utility.yul\":3392:3424 */\n tag_43\n jump\t// in\n tag_111:\n /* \"#utility.yul\":3293:3430 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3436:4233 */\n tag_6:\n /* \"#utility.yul\":3522:3528 */\n 0x00\n /* \"#utility.yul\":3530:3536 */\n dup1\n /* \"#utility.yul\":3538:3544 */\n 0x00\n /* \"#utility.yul\":3587:3589 */\n 0x60\n /* \"#utility.yul\":3575:3584 */\n dup5\n /* \"#utility.yul\":3566:3573 */\n dup7\n /* \"#utility.yul\":3562:3585 */\n sub\n /* \"#utility.yul\":3558:3590 */\n slt\n /* \"#utility.yul\":3555:3674 */\n iszero\n tag_113\n jumpi\n /* \"#utility.yul\":3593:3672 */\n tag_114\n tag_27\n jump\t// in\n tag_114:\n /* \"#utility.yul\":3555:3674 */\n tag_113:\n /* \"#utility.yul\":3713:3714 */\n 0x00\n /* \"#utility.yul\":3738:3791 */\n tag_115\n /* \"#utility.yul\":3783:3790 */\n dup7\n /* \"#utility.yul\":3774:3780 */\n dup3\n /* \"#utility.yul\":3763:3772 */\n dup8\n /* \"#utility.yul\":3759:3781 */\n add\n /* \"#utility.yul\":3738:3791 */\n tag_32\n jump\t// in\n tag_115:\n /* \"#utility.yul\":3728:3791 */\n swap4\n pop\n /* \"#utility.yul\":3684:3801 */\n pop\n /* \"#utility.yul\":3868:3870 */\n 0x20\n /* \"#utility.yul\":3857:3866 */\n dup5\n /* \"#utility.yul\":3853:3871 */\n add\n /* \"#utility.yul\":3840:3872 */\n calldataload\n /* \"#utility.yul\":3899:3917 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3891:3897 */\n dup2\n /* \"#utility.yul\":3888:3918 */\n gt\n /* \"#utility.yul\":3885:4002 */\n iszero\n tag_116\n jumpi\n /* \"#utility.yul\":3921:4000 */\n tag_117\n tag_28\n jump\t// in\n tag_117:\n /* \"#utility.yul\":3885:4002 */\n tag_116:\n /* \"#utility.yul\":4026:4089 */\n tag_118\n /* \"#utility.yul\":4081:4088 */\n dup7\n /* \"#utility.yul\":4072:4078 */\n dup3\n /* \"#utility.yul\":4061:4070 */\n dup8\n /* \"#utility.yul\":4057:4079 */\n add\n /* \"#utility.yul\":4026:4089 */\n tag_41\n jump\t// in\n tag_118:\n /* \"#utility.yul\":4016:4089 */\n swap3\n pop\n /* \"#utility.yul\":3811:4099 */\n pop\n /* \"#utility.yul\":4138:4140 */\n 0x40\n /* \"#utility.yul\":4164:4216 */\n tag_119\n /* \"#utility.yul\":4208:4215 */\n dup7\n /* \"#utility.yul\":4199:4205 */\n dup3\n /* \"#utility.yul\":4188:4197 */\n dup8\n /* \"#utility.yul\":4184:4206 */\n add\n /* \"#utility.yul\":4164:4216 */\n tag_44\n jump\t// in\n tag_119:\n /* \"#utility.yul\":4154:4216 */\n swap2\n pop\n /* \"#utility.yul\":4109:4226 */\n pop\n /* \"#utility.yul\":3436:4233 */\n swap3\n pop\n swap3\n pop\n swap3\n jump\t// out\n /* \"#utility.yul\":4239:4357 */\n tag_45:\n /* \"#utility.yul\":4326:4350 */\n tag_121\n /* \"#utility.yul\":4344:4349 */\n dup2\n /* \"#utility.yul\":4326:4350 */\n tag_30\n jump\t// in\n tag_121:\n /* \"#utility.yul\":4321:4324 */\n dup3\n /* \"#utility.yul\":4314:4351 */\n mstore\n /* \"#utility.yul\":4239:4357 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4363:4585 */\n tag_10:\n /* \"#utility.yul\":4456:4460 */\n 0x00\n /* \"#utility.yul\":4494:4496 */\n 0x20\n /* \"#utility.yul\":4483:4492 */\n dup3\n /* \"#utility.yul\":4479:4497 */\n add\n /* \"#utility.yul\":4471:4497 */\n swap1\n pop\n /* \"#utility.yul\":4507:4578 */\n tag_123\n /* \"#utility.yul\":4575:4576 */\n 0x00\n /* \"#utility.yul\":4564:4573 */\n dup4\n /* \"#utility.yul\":4560:4577 */\n add\n /* \"#utility.yul\":4551:4557 */\n dup5\n /* \"#utility.yul\":4507:4578 */\n tag_45\n jump\t// in\n tag_123:\n /* \"#utility.yul\":4363:4585 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4591:4690 */\n tag_46:\n /* \"#utility.yul\":4643:4649 */\n 0x00\n /* \"#utility.yul\":4677:4682 */\n dup2\n /* \"#utility.yul\":4671:4683 */\n mload\n /* \"#utility.yul\":4661:4683 */\n swap1\n pop\n /* \"#utility.yul\":4591:4690 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4696:4865 */\n tag_47:\n /* \"#utility.yul\":4780:4791 */\n 0x00\n /* \"#utility.yul\":4814:4820 */\n dup3\n /* \"#utility.yul\":4809:4812 */\n dup3\n /* \"#utility.yul\":4802:4821 */\n mstore\n /* \"#utility.yul\":4854:4858 */\n 0x20\n /* \"#utility.yul\":4849:4852 */\n dup3\n /* \"#utility.yul\":4845:4859 */\n add\n /* \"#utility.yul\":4830:4859 */\n swap1\n pop\n /* \"#utility.yul\":4696:4865 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4871:5117 */\n tag_48:\n /* \"#utility.yul\":4952:4953 */\n 0x00\n /* \"#utility.yul\":4962:5075 */\n tag_127:\n /* \"#utility.yul\":4976:4982 */\n dup4\n /* \"#utility.yul\":4973:4974 */\n dup2\n /* \"#utility.yul\":4970:4983 */\n lt\n /* \"#utility.yul\":4962:5075 */\n iszero\n tag_129\n jumpi\n /* \"#utility.yul\":5061:5062 */\n dup1\n /* \"#utility.yul\":5056:5059 */\n dup3\n /* \"#utility.yul\":5052:5063 */\n add\n /* \"#utility.yul\":5046:5064 */\n mload\n /* \"#utility.yul\":5042:5043 */\n dup2\n /* \"#utility.yul\":5037:5040 */\n dup5\n /* \"#utility.yul\":5033:5044 */\n add\n /* \"#utility.yul\":5026:5065 */\n mstore\n /* \"#utility.yul\":4998:5000 */\n 0x20\n /* \"#utility.yul\":4995:4996 */\n dup2\n /* \"#utility.yul\":4991:5001 */\n add\n /* \"#utility.yul\":4986:5001 */\n swap1\n pop\n /* \"#utility.yul\":4962:5075 */\n jump(tag_127)\n tag_129:\n /* \"#utility.yul\":5109:5110 */\n 0x00\n /* \"#utility.yul\":5100:5106 */\n dup5\n /* \"#utility.yul\":5095:5098 */\n dup5\n /* \"#utility.yul\":5091:5107 */\n add\n /* \"#utility.yul\":5084:5111 */\n mstore\n /* \"#utility.yul\":4933:5117 */\n pop\n /* \"#utility.yul\":4871:5117 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5123:5500 */\n tag_49:\n /* \"#utility.yul\":5211:5214 */\n 0x00\n /* \"#utility.yul\":5239:5278 */\n tag_131\n /* \"#utility.yul\":5272:5277 */\n dup3\n /* \"#utility.yul\":5239:5278 */\n tag_46\n jump\t// in\n tag_131:\n /* \"#utility.yul\":5294:5365 */\n tag_132\n /* \"#utility.yul\":5358:5364 */\n dup2\n /* \"#utility.yul\":5353:5356 */\n dup6\n /* \"#utility.yul\":5294:5365 */\n tag_47\n jump\t// in\n tag_132:\n /* \"#utility.yul\":5287:5365 */\n swap4\n pop\n /* \"#utility.yul\":5374:5439 */\n tag_133\n /* \"#utility.yul\":5432:5438 */\n dup2\n /* \"#utility.yul\":5427:5430 */\n dup6\n /* \"#utility.yul\":5420:5424 */\n 0x20\n /* \"#utility.yul\":5413:5418 */\n dup7\n /* \"#utility.yul\":5409:5425 */\n add\n /* \"#utility.yul\":5374:5439 */\n tag_48\n jump\t// in\n tag_133:\n /* \"#utility.yul\":5464:5493 */\n tag_134\n /* \"#utility.yul\":5486:5492 */\n dup2\n /* \"#utility.yul\":5464:5493 */\n tag_35\n jump\t// in\n tag_134:\n /* \"#utility.yul\":5459:5462 */\n dup5\n /* \"#utility.yul\":5455:5494 */\n add\n /* \"#utility.yul\":5448:5494 */\n swap2\n pop\n /* \"#utility.yul\":5215:5500 */\n pop\n /* \"#utility.yul\":5123:5500 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5506:5819 */\n tag_12:\n /* \"#utility.yul\":5619:5623 */\n 0x00\n /* \"#utility.yul\":5657:5659 */\n 0x20\n /* \"#utility.yul\":5646:5655 */\n dup3\n /* \"#utility.yul\":5642:5660 */\n add\n /* \"#utility.yul\":5634:5660 */\n swap1\n pop\n /* \"#utility.yul\":5706:5715 */\n dup2\n /* \"#utility.yul\":5700:5704 */\n dup2\n /* \"#utility.yul\":5696:5716 */\n sub\n /* \"#utility.yul\":5692:5693 */\n 0x00\n /* \"#utility.yul\":5681:5690 */\n dup4\n /* \"#utility.yul\":5677:5694 */\n add\n /* \"#utility.yul\":5670:5717 */\n mstore\n /* \"#utility.yul\":5734:5812 */\n tag_136\n /* \"#utility.yul\":5807:5811 */\n dup2\n /* \"#utility.yul\":5798:5804 */\n dup5\n /* \"#utility.yul\":5734:5812 */\n tag_49\n jump\t// in\n tag_136:\n /* \"#utility.yul\":5726:5812 */\n swap1\n pop\n /* \"#utility.yul\":5506:5819 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5825:5940 */\n tag_50:\n /* \"#utility.yul\":5910:5933 */\n tag_138\n /* \"#utility.yul\":5927:5932 */\n dup2\n /* \"#utility.yul\":5910:5933 */\n tag_42\n jump\t// in\n tag_138:\n /* \"#utility.yul\":5905:5908 */\n dup3\n /* \"#utility.yul\":5898:5934 */\n mstore\n /* \"#utility.yul\":5825:5940 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5946:6044 */\n tag_51:\n /* \"#utility.yul\":5997:6003 */\n 0x00\n /* \"#utility.yul\":6031:6036 */\n dup2\n /* \"#utility.yul\":6025:6037 */\n mload\n /* \"#utility.yul\":6015:6037 */\n swap1\n pop\n /* \"#utility.yul\":5946:6044 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6050:6208 */\n tag_52:\n /* \"#utility.yul\":6123:6134 */\n 0x00\n /* \"#utility.yul\":6157:6163 */\n dup3\n /* \"#utility.yul\":6152:6155 */\n dup3\n /* \"#utility.yul\":6145:6164 */\n mstore\n /* \"#utility.yul\":6197:6201 */\n 0x20\n /* \"#utility.yul\":6192:6195 */\n dup3\n /* \"#utility.yul\":6188:6202 */\n add\n /* \"#utility.yul\":6173:6202 */\n swap1\n pop\n /* \"#utility.yul\":6050:6208 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6214:6567 */\n tag_53:\n /* \"#utility.yul\":6290:6293 */\n 0x00\n /* \"#utility.yul\":6318:6356 */\n tag_142\n /* \"#utility.yul\":6350:6355 */\n dup3\n /* \"#utility.yul\":6318:6356 */\n tag_51\n jump\t// in\n tag_142:\n /* \"#utility.yul\":6372:6432 */\n tag_143\n /* \"#utility.yul\":6425:6431 */\n dup2\n /* \"#utility.yul\":6420:6423 */\n dup6\n /* \"#utility.yul\":6372:6432 */\n tag_52\n jump\t// in\n tag_143:\n /* \"#utility.yul\":6365:6432 */\n swap4\n pop\n /* \"#utility.yul\":6441:6506 */\n tag_144\n /* \"#utility.yul\":6499:6505 */\n dup2\n /* \"#utility.yul\":6494:6497 */\n dup6\n /* \"#utility.yul\":6487:6491 */\n 0x20\n /* \"#utility.yul\":6480:6485 */\n dup7\n /* \"#utility.yul\":6476:6492 */\n add\n /* \"#utility.yul\":6441:6506 */\n tag_48\n jump\t// in\n tag_144:\n /* \"#utility.yul\":6531:6560 */\n tag_145\n /* \"#utility.yul\":6553:6559 */\n dup2\n /* \"#utility.yul\":6531:6560 */\n tag_35\n jump\t// in\n tag_145:\n /* \"#utility.yul\":6526:6529 */\n dup5\n /* \"#utility.yul\":6522:6561 */\n add\n /* \"#utility.yul\":6515:6561 */\n swap2\n pop\n /* \"#utility.yul\":6294:6567 */\n pop\n /* \"#utility.yul\":6214:6567 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6573:6717 */\n tag_54:\n /* \"#utility.yul\":6670:6676 */\n 0x00\n /* \"#utility.yul\":6704:6709 */\n dup2\n /* \"#utility.yul\":6698:6710 */\n mload\n /* \"#utility.yul\":6688:6710 */\n swap1\n pop\n /* \"#utility.yul\":6573:6717 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6723:6927 */\n tag_55:\n /* \"#utility.yul\":6842:6853 */\n 0x00\n /* \"#utility.yul\":6876:6882 */\n dup3\n /* \"#utility.yul\":6871:6874 */\n dup3\n /* \"#utility.yul\":6864:6883 */\n mstore\n /* \"#utility.yul\":6916:6920 */\n 0x20\n /* \"#utility.yul\":6911:6914 */\n dup3\n /* \"#utility.yul\":6907:6921 */\n add\n /* \"#utility.yul\":6892:6921 */\n swap1\n pop\n /* \"#utility.yul\":6723:6927 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6933:7095 */\n tag_56:\n /* \"#utility.yul\":7030:7034 */\n 0x00\n /* \"#utility.yul\":7053:7056 */\n dup2\n /* \"#utility.yul\":7045:7056 */\n swap1\n pop\n /* \"#utility.yul\":7083:7087 */\n 0x20\n /* \"#utility.yul\":7078:7081 */\n dup3\n /* \"#utility.yul\":7074:7088 */\n add\n /* \"#utility.yul\":7066:7088 */\n swap1\n pop\n /* \"#utility.yul\":6933:7095 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7101:7209 */\n tag_57:\n /* \"#utility.yul\":7178:7202 */\n tag_150\n /* \"#utility.yul\":7196:7201 */\n dup2\n /* \"#utility.yul\":7178:7202 */\n tag_30\n jump\t// in\n tag_150:\n /* \"#utility.yul\":7173:7176 */\n dup3\n /* \"#utility.yul\":7166:7203 */\n mstore\n /* \"#utility.yul\":7101:7209 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7215:7292 */\n tag_58:\n /* \"#utility.yul\":7252:7259 */\n 0x00\n /* \"#utility.yul\":7281:7286 */\n dup2\n /* \"#utility.yul\":7270:7286 */\n swap1\n pop\n /* \"#utility.yul\":7215:7292 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7298:7406 */\n tag_59:\n /* \"#utility.yul\":7375:7399 */\n tag_153\n /* \"#utility.yul\":7393:7398 */\n dup2\n /* \"#utility.yul\":7375:7399 */\n tag_58\n jump\t// in\n tag_153:\n /* \"#utility.yul\":7370:7373 */\n dup3\n /* \"#utility.yul\":7363:7400 */\n mstore\n /* \"#utility.yul\":7298:7406 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7480:7990 */\n tag_60:\n /* \"#utility.yul\":7627:7631 */\n 0x40\n /* \"#utility.yul\":7622:7625 */\n dup3\n /* \"#utility.yul\":7618:7632 */\n add\n /* \"#utility.yul\":7715:7719 */\n 0x00\n /* \"#utility.yul\":7708:7713 */\n dup3\n /* \"#utility.yul\":7704:7720 */\n add\n /* \"#utility.yul\":7698:7721 */\n mload\n /* \"#utility.yul\":7734:7797 */\n tag_155\n /* \"#utility.yul\":7791:7795 */\n 0x00\n /* \"#utility.yul\":7786:7789 */\n dup6\n /* \"#utility.yul\":7782:7796 */\n add\n /* \"#utility.yul\":7768:7780 */\n dup3\n /* \"#utility.yul\":7734:7797 */\n tag_57\n jump\t// in\n tag_155:\n /* \"#utility.yul\":7642:7807 */\n pop\n /* \"#utility.yul\":7891:7895 */\n 0x20\n /* \"#utility.yul\":7884:7889 */\n dup3\n /* \"#utility.yul\":7880:7896 */\n add\n /* \"#utility.yul\":7874:7897 */\n mload\n /* \"#utility.yul\":7910:7973 */\n tag_156\n /* \"#utility.yul\":7967:7971 */\n 0x20\n /* \"#utility.yul\":7962:7965 */\n dup6\n /* \"#utility.yul\":7958:7972 */\n add\n /* \"#utility.yul\":7944:7956 */\n dup3\n /* \"#utility.yul\":7910:7973 */\n tag_59\n jump\t// in\n tag_156:\n /* \"#utility.yul\":7817:7983 */\n pop\n /* \"#utility.yul\":7596:7990 */\n pop\n /* \"#utility.yul\":7480:7990 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7996:8295 */\n tag_61:\n /* \"#utility.yul\":8125:8135 */\n 0x00\n /* \"#utility.yul\":8146:8252 */\n tag_158\n /* \"#utility.yul\":8248:8251 */\n dup4\n /* \"#utility.yul\":8240:8246 */\n dup4\n /* \"#utility.yul\":8146:8252 */\n tag_60\n jump\t// in\n tag_158:\n /* \"#utility.yul\":8284:8288 */\n 0x40\n /* \"#utility.yul\":8279:8282 */\n dup4\n /* \"#utility.yul\":8275:8289 */\n add\n /* \"#utility.yul\":8261:8289 */\n swap1\n pop\n /* \"#utility.yul\":7996:8295 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8301:8444 */\n tag_62:\n /* \"#utility.yul\":8401:8405 */\n 0x00\n /* \"#utility.yul\":8433:8437 */\n 0x20\n /* \"#utility.yul\":8428:8431 */\n dup3\n /* \"#utility.yul\":8424:8438 */\n add\n /* \"#utility.yul\":8416:8438 */\n swap1\n pop\n /* \"#utility.yul\":8301:8444 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8522:9474 */\n tag_63:\n /* \"#utility.yul\":8691:8694 */\n 0x00\n /* \"#utility.yul\":8720:8804 */\n tag_161\n /* \"#utility.yul\":8798:8803 */\n dup3\n /* \"#utility.yul\":8720:8804 */\n tag_54\n jump\t// in\n tag_161:\n /* \"#utility.yul\":8820:8926 */\n tag_162\n /* \"#utility.yul\":8919:8925 */\n dup2\n /* \"#utility.yul\":8914:8917 */\n dup6\n /* \"#utility.yul\":8820:8926 */\n tag_55\n jump\t// in\n tag_162:\n /* \"#utility.yul\":8813:8926 */\n swap4\n pop\n /* \"#utility.yul\":8950:9036 */\n tag_163\n /* \"#utility.yul\":9030:9035 */\n dup4\n /* \"#utility.yul\":8950:9036 */\n tag_56\n jump\t// in\n tag_163:\n /* \"#utility.yul\":9059:9066 */\n dup1\n /* \"#utility.yul\":9090:9091 */\n 0x00\n /* \"#utility.yul\":9075:9449 */\n tag_164:\n /* \"#utility.yul\":9100:9106 */\n dup4\n /* \"#utility.yul\":9097:9098 */\n dup2\n /* \"#utility.yul\":9094:9107 */\n lt\n /* \"#utility.yul\":9075:9449 */\n iszero\n tag_166\n jumpi\n /* \"#utility.yul\":9176:9182 */\n dup2\n /* \"#utility.yul\":9170:9183 */\n mload\n /* \"#utility.yul\":9203:9326 */\n tag_167\n /* \"#utility.yul\":9322:9325 */\n dup9\n /* \"#utility.yul\":9307:9320 */\n dup3\n /* \"#utility.yul\":9203:9326 */\n tag_61\n jump\t// in\n tag_167:\n /* \"#utility.yul\":9196:9326 */\n swap8\n pop\n /* \"#utility.yul\":9349:9439 */\n tag_168\n /* \"#utility.yul\":9432:9438 */\n dup4\n /* \"#utility.yul\":9349:9439 */\n tag_62\n jump\t// in\n tag_168:\n /* \"#utility.yul\":9339:9439 */\n swap3\n pop\n /* \"#utility.yul\":9135:9449 */\n pop\n /* \"#utility.yul\":9122:9123 */\n 0x01\n /* \"#utility.yul\":9119:9120 */\n dup2\n /* \"#utility.yul\":9115:9124 */\n add\n /* \"#utility.yul\":9110:9124 */\n swap1\n pop\n /* \"#utility.yul\":9075:9449 */\n jump(tag_164)\n tag_166:\n /* \"#utility.yul\":9079:9093 */\n pop\n /* \"#utility.yul\":9465:9468 */\n dup6\n /* \"#utility.yul\":9458:9468 */\n swap4\n pop\n /* \"#utility.yul\":8696:9474 */\n pop\n pop\n pop\n /* \"#utility.yul\":8522:9474 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9548:11004 */\n tag_64:\n /* \"#utility.yul\":9677:9680 */\n 0x00\n /* \"#utility.yul\":9713:9717 */\n 0xa0\n /* \"#utility.yul\":9708:9711 */\n dup4\n /* \"#utility.yul\":9704:9718 */\n add\n /* \"#utility.yul\":9804:9808 */\n 0x00\n /* \"#utility.yul\":9797:9802 */\n dup4\n /* \"#utility.yul\":9793:9809 */\n add\n /* \"#utility.yul\":9787:9810 */\n mload\n /* \"#utility.yul\":9857:9860 */\n dup5\n /* \"#utility.yul\":9851:9855 */\n dup3\n /* \"#utility.yul\":9847:9861 */\n sub\n /* \"#utility.yul\":9840:9844 */\n 0x00\n /* \"#utility.yul\":9835:9838 */\n dup7\n /* \"#utility.yul\":9831:9845 */\n add\n /* \"#utility.yul\":9824:9862 */\n mstore\n /* \"#utility.yul\":9883:9954 */\n tag_170\n /* \"#utility.yul\":9949:9953 */\n dup3\n /* \"#utility.yul\":9935:9947 */\n dup3\n /* \"#utility.yul\":9883:9954 */\n tag_53\n jump\t// in\n tag_170:\n /* \"#utility.yul\":9875:9954 */\n swap2\n pop\n /* \"#utility.yul\":9728:9965 */\n pop\n /* \"#utility.yul\":10047:10051 */\n 0x20\n /* \"#utility.yul\":10040:10045 */\n dup4\n /* \"#utility.yul\":10036:10052 */\n add\n /* \"#utility.yul\":10030:10053 */\n mload\n /* \"#utility.yul\":10100:10103 */\n dup5\n /* \"#utility.yul\":10094:10098 */\n dup3\n /* \"#utility.yul\":10090:10104 */\n sub\n /* \"#utility.yul\":10083:10087 */\n 0x20\n /* \"#utility.yul\":10078:10081 */\n dup7\n /* \"#utility.yul\":10074:10088 */\n add\n /* \"#utility.yul\":10067:10105 */\n mstore\n /* \"#utility.yul\":10126:10197 */\n tag_171\n /* \"#utility.yul\":10192:10196 */\n dup3\n /* \"#utility.yul\":10178:10190 */\n dup3\n /* \"#utility.yul\":10126:10197 */\n tag_53\n jump\t// in\n tag_171:\n /* \"#utility.yul\":10118:10197 */\n swap2\n pop\n /* \"#utility.yul\":9975:10208 */\n pop\n /* \"#utility.yul\":10298:10302 */\n 0x40\n /* \"#utility.yul\":10291:10296 */\n dup4\n /* \"#utility.yul\":10287:10303 */\n add\n /* \"#utility.yul\":10281:10304 */\n mload\n /* \"#utility.yul\":10351:10354 */\n dup5\n /* \"#utility.yul\":10345:10349 */\n dup3\n /* \"#utility.yul\":10341:10355 */\n sub\n /* \"#utility.yul\":10334:10338 */\n 0x40\n /* \"#utility.yul\":10329:10332 */\n dup7\n /* \"#utility.yul\":10325:10339 */\n add\n /* \"#utility.yul\":10318:10356 */\n mstore\n /* \"#utility.yul\":10377:10540 */\n tag_172\n /* \"#utility.yul\":10535:10539 */\n dup3\n /* \"#utility.yul\":10521:10533 */\n dup3\n /* \"#utility.yul\":10377:10540 */\n tag_63\n jump\t// in\n tag_172:\n /* \"#utility.yul\":10369:10540 */\n swap2\n pop\n /* \"#utility.yul\":10218:10551 */\n pop\n /* \"#utility.yul\":10637:10641 */\n 0x60\n /* \"#utility.yul\":10630:10635 */\n dup4\n /* \"#utility.yul\":10626:10642 */\n add\n /* \"#utility.yul\":10620:10643 */\n mload\n /* \"#utility.yul\":10656:10719 */\n tag_173\n /* \"#utility.yul\":10713:10717 */\n 0x60\n /* \"#utility.yul\":10708:10711 */\n dup7\n /* \"#utility.yul\":10704:10718 */\n add\n /* \"#utility.yul\":10690:10702 */\n dup3\n /* \"#utility.yul\":10656:10719 */\n tag_57\n jump\t// in\n tag_173:\n /* \"#utility.yul\":10561:10729 */\n pop\n /* \"#utility.yul\":10816:10820 */\n 0x80\n /* \"#utility.yul\":10809:10814 */\n dup4\n /* \"#utility.yul\":10805:10821 */\n add\n /* \"#utility.yul\":10799:10822 */\n mload\n /* \"#utility.yul\":10869:10872 */\n dup5\n /* \"#utility.yul\":10863:10867 */\n dup3\n /* \"#utility.yul\":10859:10873 */\n sub\n /* \"#utility.yul\":10852:10856 */\n 0x80\n /* \"#utility.yul\":10847:10850 */\n dup7\n /* \"#utility.yul\":10843:10857 */\n add\n /* \"#utility.yul\":10836:10874 */\n mstore\n /* \"#utility.yul\":10895:10966 */\n tag_174\n /* \"#utility.yul\":10961:10965 */\n dup3\n /* \"#utility.yul\":10947:10959 */\n dup3\n /* \"#utility.yul\":10895:10966 */\n tag_53\n jump\t// in\n tag_174:\n /* \"#utility.yul\":10887:10966 */\n swap2\n pop\n /* \"#utility.yul\":10739:10977 */\n pop\n /* \"#utility.yul\":10994:10998 */\n dup1\n /* \"#utility.yul\":10987:10998 */\n swap2\n pop\n /* \"#utility.yul\":9682:11004 */\n pop\n /* \"#utility.yul\":9548:11004 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11010:11509 */\n tag_21:\n /* \"#utility.yul\":11189:11193 */\n 0x00\n /* \"#utility.yul\":11227:11229 */\n 0x40\n /* \"#utility.yul\":11216:11225 */\n dup3\n /* \"#utility.yul\":11212:11230 */\n add\n /* \"#utility.yul\":11204:11230 */\n swap1\n pop\n /* \"#utility.yul\":11240:11309 */\n tag_176\n /* \"#utility.yul\":11306:11307 */\n 0x00\n /* \"#utility.yul\":11295:11304 */\n dup4\n /* \"#utility.yul\":11291:11308 */\n add\n /* \"#utility.yul\":11282:11288 */\n dup6\n /* \"#utility.yul\":11240:11309 */\n tag_50\n jump\t// in\n tag_176:\n /* \"#utility.yul\":11356:11365 */\n dup2\n /* \"#utility.yul\":11350:11354 */\n dup2\n /* \"#utility.yul\":11346:11366 */\n sub\n /* \"#utility.yul\":11341:11343 */\n 0x20\n /* \"#utility.yul\":11330:11339 */\n dup4\n /* \"#utility.yul\":11326:11344 */\n add\n /* \"#utility.yul\":11319:11367 */\n mstore\n /* \"#utility.yul\":11384:11502 */\n tag_177\n /* \"#utility.yul\":11497:11501 */\n dup2\n /* \"#utility.yul\":11488:11494 */\n dup5\n /* \"#utility.yul\":11384:11502 */\n tag_64\n jump\t// in\n tag_177:\n /* \"#utility.yul\":11376:11502 */\n swap1\n pop\n /* \"#utility.yul\":11010:11509 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11515:11592 */\n tag_65:\n /* \"#utility.yul\":11552:11559 */\n 0x00\n /* \"#utility.yul\":11581:11586 */\n dup2\n /* \"#utility.yul\":11570:11586 */\n swap1\n pop\n /* \"#utility.yul\":11515:11592 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":11598:11720 */\n tag_66:\n /* \"#utility.yul\":11671:11695 */\n tag_180\n /* \"#utility.yul\":11689:11694 */\n dup2\n /* \"#utility.yul\":11671:11695 */\n tag_65\n jump\t// in\n tag_180:\n /* \"#utility.yul\":11664:11669 */\n dup2\n /* \"#utility.yul\":11661:11696 */\n eq\n /* \"#utility.yul\":11651:11714 */\n tag_181\n jumpi\n /* \"#utility.yul\":11710:11711 */\n 0x00\n /* \"#utility.yul\":11707:11708 */\n dup1\n /* \"#utility.yul\":11700:11712 */\n revert\n /* \"#utility.yul\":11651:11714 */\n tag_181:\n /* \"#utility.yul\":11598:11720 */\n pop\n jump\t// out\n /* \"#utility.yul\":11726:11869 */\n tag_67:\n /* \"#utility.yul\":11783:11788 */\n 0x00\n /* \"#utility.yul\":11814:11820 */\n dup2\n /* \"#utility.yul\":11808:11821 */\n mload\n /* \"#utility.yul\":11799:11821 */\n swap1\n pop\n /* \"#utility.yul\":11830:11863 */\n tag_183\n /* \"#utility.yul\":11857:11862 */\n dup2\n /* \"#utility.yul\":11830:11863 */\n tag_66\n jump\t// in\n tag_183:\n /* \"#utility.yul\":11726:11869 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":11875:12226 */\n tag_25:\n /* \"#utility.yul\":11945:11951 */\n 0x00\n /* \"#utility.yul\":11994:11996 */\n 0x20\n /* \"#utility.yul\":11982:11991 */\n dup3\n /* \"#utility.yul\":11973:11980 */\n dup5\n /* \"#utility.yul\":11969:11992 */\n sub\n /* \"#utility.yul\":11965:11997 */\n slt\n /* \"#utility.yul\":11962:12081 */\n iszero\n tag_185\n jumpi\n /* \"#utility.yul\":12000:12079 */\n tag_186\n tag_27\n jump\t// in\n tag_186:\n /* \"#utility.yul\":11962:12081 */\n tag_185:\n /* \"#utility.yul\":12120:12121 */\n 0x00\n /* \"#utility.yul\":12145:12209 */\n tag_187\n /* \"#utility.yul\":12201:12208 */\n dup5\n /* \"#utility.yul\":12192:12198 */\n dup3\n /* \"#utility.yul\":12181:12190 */\n dup6\n /* \"#utility.yul\":12177:12199 */\n add\n /* \"#utility.yul\":12145:12209 */\n tag_67\n jump\t// in\n tag_187:\n /* \"#utility.yul\":12135:12209 */\n swap2\n pop\n /* \"#utility.yul\":12091:12219 */\n pop\n /* \"#utility.yul\":11875:12226 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220d64317fa7c0865e8663f2bc05589f0201c9917b9685fe39695a05642ba0e1a0d64736f6c63430008130033\n}\n",
"bytecode": {
"functionDebugData": {
"@_241": {
"entryPoint": null,
"id": 241,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_t_address_fromMemory": {
"entryPoint": 505,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool_fromMemory": {
"entryPoint": 726,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address_fromMemory": {
"entryPoint": 528,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bool_fromMemory": {
"entryPoint": 749,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 599,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 626,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 643,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 459,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 688,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 427,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 616,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 422,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 479,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 700,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:2736:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:4"
},
"nodeType": "YulFunctionCall",
"src": "67:9:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:4"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:4",
"type": ""
}
],
"src": "7:75:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:4"
},
"nodeType": "YulFunctionCall",
"src": "187:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:4"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:4"
},
"nodeType": "YulFunctionCall",
"src": "310:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:4"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:4"
},
"nodeType": "YulFunctionCall",
"src": "400:54:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:4"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:4",
"type": ""
}
],
"src": "334:126:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:4"
},
"nodeType": "YulFunctionCall",
"src": "532:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:4"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:4",
"type": ""
}
],
"src": "466:96:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:4"
},
"nodeType": "YulFunctionCall",
"src": "670:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:4"
},
"nodeType": "YulFunctionCall",
"src": "641:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:4"
},
"nodeType": "YulFunctionCall",
"src": "631:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:4"
},
"nodeType": "YulFunctionCall",
"src": "624:43:4"
},
"nodeType": "YulIf",
"src": "621:63:4"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:4",
"type": ""
}
],
"src": "568:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "759:80:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "769:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "784:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "778:5:4"
},
"nodeType": "YulFunctionCall",
"src": "778:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "769:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "827:5:4"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "800:26:4"
},
"nodeType": "YulFunctionCall",
"src": "800:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "800:33:4"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "737:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "745:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "753:5:4",
"type": ""
}
],
"src": "696:143:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "939:413:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "985:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "987:77:4"
},
"nodeType": "YulFunctionCall",
"src": "987:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "987:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "960:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "969:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "956:3:4"
},
"nodeType": "YulFunctionCall",
"src": "956:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "981:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "952:3:4"
},
"nodeType": "YulFunctionCall",
"src": "952:32:4"
},
"nodeType": "YulIf",
"src": "949:119:4"
},
{
"nodeType": "YulBlock",
"src": "1078:128:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1093:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1107:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1097:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1122:74:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1168:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1179:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1164:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1164:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1188:7:4"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "1132:31:4"
},
"nodeType": "YulFunctionCall",
"src": "1132:64:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1122:6:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1216:129:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1231:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1245:2:4",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1235:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1261:74:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1307:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1318:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1303:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1303:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1327:7:4"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "1271:31:4"
},
"nodeType": "YulFunctionCall",
"src": "1271:64:4"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1261:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "901:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "912:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "924:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "932:6:4",
"type": ""
}
],
"src": "845:507:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1423:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1440:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1463:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1445:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1445:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1433:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1433:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "1433:37:4"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1411:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1418:3:4",
"type": ""
}
],
"src": "1358:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1527:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1537:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1548:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1537:7:4"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1509:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1519:7:4",
"type": ""
}
],
"src": "1482:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1630:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1647:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1670:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1652:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1652:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1640:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1640:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "1640:37:4"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1618:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1625:3:4",
"type": ""
}
],
"src": "1565:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1815:206:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1825:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1837:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1848:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1833:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1833:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1825:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1905:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1918:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1929:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1914:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1914:17:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "1861:43:4"
},
"nodeType": "YulFunctionCall",
"src": "1861:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "1861:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1986:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1999:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2010:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1995:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1995:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1942:43:4"
},
"nodeType": "YulFunctionCall",
"src": "1942:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "1942:72:4"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1779:9:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1791:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1799:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1810:4:4",
"type": ""
}
],
"src": "1689:332:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2069:48:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2079:32:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2104:5:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2097:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2097:13:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2090:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2090:21:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2079:7:4"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2051:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2061:7:4",
"type": ""
}
],
"src": "2027:90:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2163:76:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2217:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2226:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2229:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2219:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2219:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "2219:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2186:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2208:5:4"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "2193:14:4"
},
"nodeType": "YulFunctionCall",
"src": "2193:21:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2183:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2183:32:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2176:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2176:40:4"
},
"nodeType": "YulIf",
"src": "2173:60:4"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2156:5:4",
"type": ""
}
],
"src": "2123:116:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2305:77:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2315:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2330:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2324:5:4"
},
"nodeType": "YulFunctionCall",
"src": "2324:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2315:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2370:5:4"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "2346:23:4"
},
"nodeType": "YulFunctionCall",
"src": "2346:30:4"
},
"nodeType": "YulExpressionStatement",
"src": "2346:30:4"
}
]
},
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2283:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2291:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2299:5:4",
"type": ""
}
],
"src": "2245:137:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2462:271:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2508:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2510:77:4"
},
"nodeType": "YulFunctionCall",
"src": "2510:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "2510:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2483:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2492:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2479:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2479:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2504:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2475:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2475:32:4"
},
"nodeType": "YulIf",
"src": "2472:119:4"
},
{
"nodeType": "YulBlock",
"src": "2601:125:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2616:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2630:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2620:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2645:71:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2688:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2699:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2684:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2684:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2708:7:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "2655:28:4"
},
"nodeType": "YulFunctionCall",
"src": "2655:61:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2645:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2432:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2443:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2455:6:4",
"type": ""
}
],
"src": "2388:345:4"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b5060405162000b4438038062000b44833981810160405281019062000037919062000210565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200015792919062000283565b6020604051808303816000875af115801562000177573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019d9190620002ed565b5050506200031f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001d882620001ab565b9050919050565b620001ea81620001cb565b8114620001f657600080fd5b50565b6000815190506200020a81620001df565b92915050565b600080604083850312156200022a5762000229620001a6565b5b60006200023a85828601620001f9565b92505060206200024d85828601620001f9565b9150509250929050565b6200026281620001cb565b82525050565b6000819050919050565b6200027d8162000268565b82525050565b60006040820190506200029a600083018562000257565b620002a9602083018462000272565b9392505050565b60008115159050919050565b620002c781620002b0565b8114620002d357600080fd5b50565b600081519050620002e781620002bc565b92915050565b600060208284031215620003065762000305620001a6565b5b60006200031684828501620002d6565b91505092915050565b610815806200032f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063570b31f014610030575b600080fd5b61004a6004803603810190610045919061041d565b61004c565b005b60006040518060a001604052808560405160200161006a919061049b565b60405160208183030381529060405281526020018460405160200161008f9190610535565b6040516020818303038152906040528152602001600067ffffffffffffffff8111156100be576100bd6102b2565b5b6040519080825280602002602001820160405280156100f757816020015b6100e46101f5565b8152602001906001900390816100dc5790505b50815260200160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528060008152508152509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166396f4e9f983836040518363ffffffff1660e01b81526004016101ab92919061074c565b6020604051808303816000875af11580156101ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ee91906107b2565b5050505050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061026482610239565b9050919050565b61027481610259565b811461027f57600080fd5b50565b6000813590506102918161026b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102ea826102a1565b810181811067ffffffffffffffff82111715610309576103086102b2565b5b80604052505050565b600061031c610225565b905061032882826102e1565b919050565b600067ffffffffffffffff821115610348576103476102b2565b5b610351826102a1565b9050602081019050919050565b82818337600083830152505050565b600061038061037b8461032d565b610312565b90508281526020810184848401111561039c5761039b61029c565b5b6103a784828561035e565b509392505050565b600082601f8301126103c4576103c3610297565b5b81356103d484826020860161036d565b91505092915050565b600067ffffffffffffffff82169050919050565b6103fa816103dd565b811461040557600080fd5b50565b600081359050610417816103f1565b92915050565b6000806000606084860312156104365761043561022f565b5b600061044486828701610282565b935050602084013567ffffffffffffffff81111561046557610464610234565b5b610471868287016103af565b925050604061048286828701610408565b9150509250925092565b61049581610259565b82525050565b60006020820190506104b0600083018461048c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156104f05780820151818401526020810190506104d5565b60008484015250505050565b6000610507826104b6565b61051181856104c1565b93506105218185602086016104d2565b61052a816102a1565b840191505092915050565b6000602082019050818103600083015261054f81846104fc565b905092915050565b610560816103dd565b82525050565b600081519050919050565b600082825260208201905092915050565b600061058d82610566565b6105978185610571565b93506105a78185602086016104d2565b6105b0816102a1565b840191505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6105f081610259565b82525050565b6000819050919050565b610609816105f6565b82525050565b60408201600082015161062560008501826105e7565b5060208201516106386020850182610600565b50505050565b600061064a838361060f565b60408301905092915050565b6000602082019050919050565b600061066e826105bb565b61067881856105c6565b9350610683836105d7565b8060005b838110156106b457815161069b888261063e565b97506106a683610656565b925050600181019050610687565b5085935050505092915050565b600060a08301600083015184820360008601526106de8282610582565b915050602083015184820360208601526106f88282610582565b915050604083015184820360408601526107128282610663565b915050606083015161072760608601826105e7565b506080830151848203608086015261073f8282610582565b9150508091505092915050565b60006040820190506107616000830185610557565b818103602083015261077381846106c1565b90509392505050565b6000819050919050565b61078f8161077c565b811461079a57600080fd5b50565b6000815190506107ac81610786565b92915050565b6000602082840312156107c8576107c761022f565b5b60006107d68482850161079d565b9150509291505056fea2646970667358221220d64317fa7c0865e8663f2bc05589f0201c9917b9685fe39695a05642ba0e1a0d64736f6c63430008130033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xB44 CODESIZE SUB DUP1 PUSH3 0xB44 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x210 JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x157 SWAP3 SWAP2 SWAP1 PUSH3 0x283 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH3 0x177 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x19D SWAP2 SWAP1 PUSH3 0x2ED JUMP JUMPDEST POP POP POP PUSH3 0x31F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D8 DUP3 PUSH3 0x1AB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1EA DUP2 PUSH3 0x1CB JUMP JUMPDEST DUP2 EQ PUSH3 0x1F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x20A DUP2 PUSH3 0x1DF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x22A JUMPI PUSH3 0x229 PUSH3 0x1A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x23A DUP6 DUP3 DUP7 ADD PUSH3 0x1F9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x24D DUP6 DUP3 DUP7 ADD PUSH3 0x1F9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x262 DUP2 PUSH3 0x1CB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x27D DUP2 PUSH3 0x268 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0x29A PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x257 JUMP JUMPDEST PUSH3 0x2A9 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x272 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x2C7 DUP2 PUSH3 0x2B0 JUMP JUMPDEST DUP2 EQ PUSH3 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x2E7 DUP2 PUSH3 0x2BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x306 JUMPI PUSH3 0x305 PUSH3 0x1A6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x316 DUP5 DUP3 DUP6 ADD PUSH3 0x2D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x815 DUP1 PUSH3 0x32F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x570B31F0 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x41D JUMP JUMPDEST PUSH2 0x4C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x49B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x535 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBE JUMPI PUSH2 0xBD PUSH2 0x2B2 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF7 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE4 PUSH2 0x1F5 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xDC JUMPI SWAP1 POP JUMPDEST POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 MSTORE POP SWAP1 POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x96F4E9F9 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AB SWAP3 SWAP2 SWAP1 PUSH2 0x74C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0x7B2 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x264 DUP3 PUSH2 0x239 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x274 DUP2 PUSH2 0x259 JUMP JUMPDEST DUP2 EQ PUSH2 0x27F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x291 DUP2 PUSH2 0x26B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2EA DUP3 PUSH2 0x2A1 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x309 JUMPI PUSH2 0x308 PUSH2 0x2B2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31C PUSH2 0x225 JUMP JUMPDEST SWAP1 POP PUSH2 0x328 DUP3 DUP3 PUSH2 0x2E1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x348 JUMPI PUSH2 0x347 PUSH2 0x2B2 JUMP JUMPDEST JUMPDEST PUSH2 0x351 DUP3 PUSH2 0x2A1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x380 PUSH2 0x37B DUP5 PUSH2 0x32D JUMP JUMPDEST PUSH2 0x312 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x39C JUMPI PUSH2 0x39B PUSH2 0x29C JUMP JUMPDEST JUMPDEST PUSH2 0x3A7 DUP5 DUP3 DUP6 PUSH2 0x35E JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3C4 JUMPI PUSH2 0x3C3 PUSH2 0x297 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3D4 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x36D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FA DUP2 PUSH2 0x3DD JUMP JUMPDEST DUP2 EQ PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x417 DUP2 PUSH2 0x3F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x436 JUMPI PUSH2 0x435 PUSH2 0x22F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x444 DUP7 DUP3 DUP8 ADD PUSH2 0x282 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x465 JUMPI PUSH2 0x464 PUSH2 0x234 JUMP JUMPDEST JUMPDEST PUSH2 0x471 DUP7 DUP3 DUP8 ADD PUSH2 0x3AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x482 DUP7 DUP3 DUP8 ADD PUSH2 0x408 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x495 DUP2 PUSH2 0x259 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4B0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x48C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F0 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4D5 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x507 DUP3 PUSH2 0x4B6 JUMP JUMPDEST PUSH2 0x511 DUP2 DUP6 PUSH2 0x4C1 JUMP JUMPDEST SWAP4 POP PUSH2 0x521 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x52A DUP2 PUSH2 0x2A1 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x54F DUP2 DUP5 PUSH2 0x4FC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x560 DUP2 PUSH2 0x3DD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58D DUP3 PUSH2 0x566 JUMP JUMPDEST PUSH2 0x597 DUP2 DUP6 PUSH2 0x571 JUMP JUMPDEST SWAP4 POP PUSH2 0x5A7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x5B0 DUP2 PUSH2 0x2A1 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5F0 DUP2 PUSH2 0x259 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x609 DUP2 PUSH2 0x5F6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x625 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x5E7 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x638 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x600 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x64A DUP4 DUP4 PUSH2 0x60F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66E DUP3 PUSH2 0x5BB JUMP JUMPDEST PUSH2 0x678 DUP2 DUP6 PUSH2 0x5C6 JUMP JUMPDEST SWAP4 POP PUSH2 0x683 DUP4 PUSH2 0x5D7 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6B4 JUMPI DUP2 MLOAD PUSH2 0x69B DUP9 DUP3 PUSH2 0x63E JUMP JUMPDEST SWAP8 POP PUSH2 0x6A6 DUP4 PUSH2 0x656 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x687 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x6DE DUP3 DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x6F8 DUP3 DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x712 DUP3 DUP3 PUSH2 0x663 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x727 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x5E7 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x73F DUP3 DUP3 PUSH2 0x582 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x761 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x557 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x773 DUP2 DUP5 PUSH2 0x6C1 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x78F DUP2 PUSH2 0x77C JUMP JUMPDEST DUP2 EQ PUSH2 0x79A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7AC DUP2 PUSH2 0x786 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7C8 JUMPI PUSH2 0x7C7 PUSH2 0x22F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x7D6 DUP5 DUP3 DUP6 ADD PUSH2 0x79D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 NUMBER OR STATICCALL PUSH29 0x865E8663F2BC05589F0201C9917B9685FE39695A05642BA0E1A0D6473 PUSH16 0x6C634300081300330000000000000000 ",
"sourceMap": "351:723:3:-:0;;;423:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;485:5;478:4;;:12;;;;;;;;;;;;;;;;;;510:7;501:6;;:16;;;;;;;;;;;;;;;;;;547:4;;;;;;;;;;528:32;;;561:6;;;;;;;;;;;569:17;528:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;423:172;;351:723;;88:117:4;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;1358:118::-;1445:24;1463:5;1445:24;:::i;:::-;1440:3;1433:37;1358:118;;:::o;1482:77::-;1519:7;1548:5;1537:16;;1482:77;;;:::o;1565:118::-;1652:24;1670:5;1652:24;:::i;:::-;1647:3;1640:37;1565:118;;:::o;1689:332::-;1810:4;1848:2;1837:9;1833:18;1825:26;;1861:71;1929:1;1918:9;1914:17;1905:6;1861:71;:::i;:::-;1942:72;2010:2;1999:9;1995:18;1986:6;1942:72;:::i;:::-;1689:332;;;;;:::o;2027:90::-;2061:7;2104:5;2097:13;2090:21;2079:32;;2027:90;;;:::o;2123:116::-;2193:21;2208:5;2193:21;:::i;:::-;2186:5;2183:32;2173:60;;2229:1;2226;2219:12;2173:60;2123:116;:::o;2245:137::-;2299:5;2330:6;2324:13;2315:22;;2346:30;2370:5;2346:30;:::i;:::-;2245:137;;;;:::o;2388:345::-;2455:6;2504:2;2492:9;2483:7;2479:23;2475:32;2472:119;;;2510:79;;:::i;:::-;2472:119;2630:1;2655:61;2708:7;2699:6;2688:9;2684:22;2655:61;:::i;:::-;2645:71;;2601:125;2388:345;;;;:::o;351:723:3:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@send_284": {
"entryPoint": 76,
"id": 284,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 877,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 642,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32_fromMemory": {
"entryPoint": 1949,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 943,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint64": {
"entryPoint": 1032,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_string_memory_ptrt_uint64": {
"entryPoint": 1053,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_bytes32_fromMemory": {
"entryPoint": 1970,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr": {
"entryPoint": 1598,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address": {
"entryPoint": 1511,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1164,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_EVMTokenAmount_$58_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1635,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr": {
"entryPoint": 1410,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1276,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_struct$_EVM2AnyMessage_$84_memory_ptr_to_t_struct$_EVM2AnyMessage_$84_memory_ptr_fromStack": {
"entryPoint": 1729,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_struct$_EVMTokenAmount_$58_memory_ptr_to_t_struct$_EVMTokenAmount_$58_memory_ptr": {
"entryPoint": 1551,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 1536,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint64_to_t_uint64_fromStack": {
"entryPoint": 1367,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 1179,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1333,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint64_t_struct$_EVM2AnyMessage_$84_memory_ptr__to_t_uint64_t_struct$_EVM2AnyMessage_$84_memory_ptr__fromStack_reversed": {
"entryPoint": 1868,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 786,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 549,
"id": null
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment