Skip to content

Instantly share code, notes, and snippets.

@utkarsh-aryan
Created March 26, 2023 17:24
Show Gist options
  • Save utkarsh-aryan/22dd1634ba1d914bbf656185737d724d to your computer and use it in GitHub Desktop.
Save utkarsh-aryan/22dd1634ba1d914bbf656185737d724d 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.6.0+commit.26b70077.js&optimize=false&runs=200&gist=
{
"id": "a846319137b5db0126db4aa3e096ef43",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.6.0",
"solcLongVersion": "0.6.0+commit.26b70077",
"input": {
"language": "Solidity",
"sources": {
"SMARTCONT.sol": {
"content": "pragma solidity ^0.6.0;\n\ncontract SupplyChain {\n \n event Added(uint256 index);\n \n struct State{\n string description;\n address person;\n }\n \n struct Product{\n address creator;\n string productName;\n uint256 productId;\n string date;\n uint256 totalStates;\n mapping (uint256 => State) positions;\n }\n \n mapping(uint => Product) allProducts;\n uint256 items=0;\n \n function concat(string memory _a, string memory _b) public returns (string memory){\n bytes memory bytes_a = bytes(_a);\n bytes memory bytes_b = bytes(_b);\n string memory length_ab = new string(bytes_a.length + bytes_b.length);\n bytes memory bytes_c = bytes(length_ab);\n uint k = 0;\n for (uint i = 0; i < bytes_a.length; i++) bytes_c[k++] = bytes_a[i];\n for (uint i = 0; i < bytes_b.length; i++) bytes_c[k++] = bytes_b[i];\n return string(bytes_c);\n }\n \n function newItem(string memory _text, string memory _date) public returns (bool) {\n Product memory newItem = Product({creator: msg.sender, totalStates: 0,productName: _text, productId: items, date: _date});\n allProducts[items]=newItem;\n items = items+1;\n emit Added(items-1);\n return true;\n }\n \n function addState(uint _productId, string memory info) public returns (string memory) {\n require(_productId<=items);\n \n State memory newState = State({person: msg.sender, description: info});\n \n allProducts[_productId].positions[ allProducts[_productId].totalStates ]=newState;\n \n allProducts[_productId].totalStates = allProducts[_productId].totalStates +1;\n return info;\n }\n \n function searchProduct(uint _productId) public returns (string memory) {\n\n require(_productId<=items);\n string memory output=\"Product Name: \";\n output=concat(output, allProducts[_productId].productName);\n output=concat(output, \"<br>Manufacture Date: \");\n output=concat(output, allProducts[_productId].date);\n \n for (uint256 j=0; j<allProducts[_productId].totalStates; j++){\n output=concat(output, allProducts[_productId].positions[j].description);\n }\n return output;\n \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"
]
}
}
}
},
"output": {
"contracts": {
"SMARTCONT.sol": {
"SupplyChain": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "Added",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_productId",
"type": "uint256"
},
{
"internalType": "string",
"name": "info",
"type": "string"
}
],
"name": "addState",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_a",
"type": "string"
},
{
"internalType": "string",
"name": "_b",
"type": "string"
}
],
"name": "concat",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_text",
"type": "string"
},
{
"internalType": "string",
"name": "_date",
"type": "string"
}
],
"name": "newItem",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_productId",
"type": "uint256"
}
],
"name": "searchProduct",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"SMARTCONT.sol\":25:2313 contract SupplyChain {... */\n mstore(0x40, 0x80)\n /* \"SMARTCONT.sol\":438:439 0 */\n 0x00\n /* \"SMARTCONT.sol\":424:439 uint256 items=0 */\n 0x01\n sstore\n /* \"SMARTCONT.sol\":25:2313 contract SupplyChain {... */\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"SMARTCONT.sol\":25:2313 contract SupplyChain {... */\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"SMARTCONT.sol\":25:2313 contract SupplyChain {... */\n mstore(0x40, 0x80)\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_1:\n /* \"SMARTCONT.sol\":25:2313 contract SupplyChain {... */\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x3cde01b5\n eq\n tag_3\n jumpi\n dup1\n 0x453bccb6\n eq\n tag_4\n jumpi\n dup1\n 0x89c19ddb\n eq\n tag_5\n jumpi\n dup1\n 0xa3d835c0\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"SMARTCONT.sol\":1751:2306 function searchProduct(uint _productId) public returns (string memory) {... */\n tag_3:\n tag_7\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x20\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_8\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_8:\n /* \"SMARTCONT.sol\":1751:2306 function searchProduct(uint _productId) public returns (string memory) {... */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_9\n jump\t// in\n tag_7:\n mload(0x40)\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n /* \"--CODEGEN--\":23:24 */\n 0x00\n /* \"--CODEGEN--\":8:108 */\n tag_10:\n /* \"--CODEGEN--\":33:36 */\n dup4\n /* \"--CODEGEN--\":30:31 */\n dup2\n /* \"--CODEGEN--\":27:37 */\n lt\n /* \"--CODEGEN--\":8:108 */\n iszero\n tag_12\n jumpi\n /* \"--CODEGEN--\":99:100 */\n dup1\n /* \"--CODEGEN--\":94:97 */\n dup3\n /* \"--CODEGEN--\":90:101 */\n add\n /* \"--CODEGEN--\":84:102 */\n mload\n /* \"--CODEGEN--\":80:81 */\n dup2\n /* \"--CODEGEN--\":75:78 */\n dup5\n /* \"--CODEGEN--\":71:82 */\n add\n /* \"--CODEGEN--\":64:103 */\n mstore\n /* \"--CODEGEN--\":52:54 */\n 0x20\n /* \"--CODEGEN--\":49:50 */\n dup2\n /* \"--CODEGEN--\":45:55 */\n add\n /* \"--CODEGEN--\":40:55 */\n swap1\n pop\n /* \"--CODEGEN--\":8:108 */\n jump(tag_10)\n tag_12:\n /* \"--CODEGEN--\":12:26 */\n pop\n /* \"SMARTCONT.sol\":1751:2306 function searchProduct(uint _productId) public returns (string memory) {... */\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_13\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_13:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"SMARTCONT.sol\":1307:1741 function addState(uint _productId, string memory info) public returns (string memory) {... */\n tag_4:\n tag_14\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x40\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_15\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_15:\n /* \"SMARTCONT.sol\":1307:1741 function addState(uint _productId, string memory info) public returns (string memory) {... */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n /* \"--CODEGEN--\":21:32 */\n 0x0100000000\n /* \"--CODEGEN--\":8:19 */\n dup2\n /* \"--CODEGEN--\":5:33 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_16\n jumpi\n /* \"--CODEGEN--\":46:47 */\n 0x00\n /* \"--CODEGEN--\":43:44 */\n dup1\n /* \"--CODEGEN--\":36:48 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_16:\n /* \"SMARTCONT.sol\":1307:1741 function addState(uint _productId, string memory info) public returns (string memory) {... */\n dup3\n add\n /* \"--CODEGEN--\":35:44 */\n dup4\n /* \"--CODEGEN--\":28:32 */\n 0x20\n /* \"--CODEGEN--\":12:26 */\n dup3\n /* \"--CODEGEN--\":8:33 */\n add\n /* \"--CODEGEN--\":5:45 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_17\n jumpi\n /* \"--CODEGEN--\":58:59 */\n 0x00\n /* \"--CODEGEN--\":55:56 */\n dup1\n /* \"--CODEGEN--\":48:60 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_17:\n /* \"SMARTCONT.sol\":1307:1741 function addState(uint _productId, string memory info) public returns (string memory) {... */\n dup1\n calldataload\n swap1\n 0x20\n add\n swap2\n /* \"--CODEGEN--\":100:109 */\n dup5\n /* \"--CODEGEN--\":95:96 */\n 0x01\n /* \"--CODEGEN--\":81:93 */\n dup4\n /* \"--CODEGEN--\":77:97 */\n mul\n /* \"--CODEGEN--\":67:75 */\n dup5\n /* \"--CODEGEN--\":63:98 */\n add\n /* \"--CODEGEN--\":60:110 */\n gt\n /* \"--CODEGEN--\":39:50 */\n 0x0100000000\n /* \"--CODEGEN--\":25:37 */\n dup4\n /* \"--CODEGEN--\":22:51 */\n gt\n /* \"--CODEGEN--\":11:118 */\n or\n /* \"--CODEGEN--\":8:10 */\n iszero\n tag_18\n jumpi\n /* \"--CODEGEN--\":131:132 */\n 0x00\n /* \"--CODEGEN--\":128:129 */\n dup1\n /* \"--CODEGEN--\":121:133 */\n revert\n /* \"--CODEGEN--\":8:10 */\n tag_18:\n /* \"SMARTCONT.sol\":1307:1741 function addState(uint _productId, string memory info) public returns (string memory) {... */\n swap2\n swap1\n dup1\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n /* \"--CODEGEN--\":30:33 */\n dup1\n /* \"--CODEGEN--\":22:28 */\n dup3\n /* \"--CODEGEN--\":14:20 */\n dup5\n /* \"--CODEGEN--\":1:34 */\n calldatacopy\n /* \"--CODEGEN--\":99:100 */\n 0x00\n /* \"--CODEGEN--\":93:96 */\n dup2\n /* \"--CODEGEN--\":85:91 */\n dup5\n /* \"--CODEGEN--\":81:97 */\n add\n /* \"--CODEGEN--\":74:101 */\n mstore\n /* \"--CODEGEN--\":137:141 */\n 0x1f\n /* \"--CODEGEN--\":133:142 */\n not\n /* \"--CODEGEN--\":126:130 */\n 0x1f\n /* \"--CODEGEN--\":121:124 */\n dup3\n /* \"--CODEGEN--\":117:131 */\n add\n /* \"--CODEGEN--\":113:143 */\n and\n /* \"--CODEGEN--\":106:143 */\n swap1\n pop\n /* \"--CODEGEN--\":169:172 */\n dup1\n /* \"--CODEGEN--\":161:167 */\n dup4\n /* \"--CODEGEN--\":157:173 */\n add\n /* \"--CODEGEN--\":147:173 */\n swap3\n pop\n /* \"SMARTCONT.sol\":1307:1741 function addState(uint _productId, string memory info) public returns (string memory) {... */\n pop\n pop\n pop\n pop\n pop\n pop\n swap2\n swap3\n swap2\n swap3\n swap1\n pop\n pop\n pop\n tag_19\n jump\t// in\n tag_14:\n mload(0x40)\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n /* \"--CODEGEN--\":23:24 */\n 0x00\n /* \"--CODEGEN--\":8:108 */\n tag_20:\n /* \"--CODEGEN--\":33:36 */\n dup4\n /* \"--CODEGEN--\":30:31 */\n dup2\n /* \"--CODEGEN--\":27:37 */\n lt\n /* \"--CODEGEN--\":8:108 */\n iszero\n tag_22\n jumpi\n /* \"--CODEGEN--\":99:100 */\n dup1\n /* \"--CODEGEN--\":94:97 */\n dup3\n /* \"--CODEGEN--\":90:101 */\n add\n /* \"--CODEGEN--\":84:102 */\n mload\n /* \"--CODEGEN--\":80:81 */\n dup2\n /* \"--CODEGEN--\":75:78 */\n dup5\n /* \"--CODEGEN--\":71:82 */\n add\n /* \"--CODEGEN--\":64:103 */\n mstore\n /* \"--CODEGEN--\":52:54 */\n 0x20\n /* \"--CODEGEN--\":49:50 */\n dup2\n /* \"--CODEGEN--\":45:55 */\n add\n /* \"--CODEGEN--\":40:55 */\n swap1\n pop\n /* \"--CODEGEN--\":8:108 */\n jump(tag_20)\n tag_22:\n /* \"--CODEGEN--\":12:26 */\n pop\n /* \"SMARTCONT.sol\":1307:1741 function addState(uint _productId, string memory info) public returns (string memory) {... */\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_23\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_23:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n tag_5:\n tag_24\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x40\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_25\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_25:\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n /* \"--CODEGEN--\":21:32 */\n 0x0100000000\n /* \"--CODEGEN--\":8:19 */\n dup2\n /* \"--CODEGEN--\":5:33 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_26\n jumpi\n /* \"--CODEGEN--\":46:47 */\n 0x00\n /* \"--CODEGEN--\":43:44 */\n dup1\n /* \"--CODEGEN--\":36:48 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_26:\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n dup3\n add\n /* \"--CODEGEN--\":35:44 */\n dup4\n /* \"--CODEGEN--\":28:32 */\n 0x20\n /* \"--CODEGEN--\":12:26 */\n dup3\n /* \"--CODEGEN--\":8:33 */\n add\n /* \"--CODEGEN--\":5:45 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_27\n jumpi\n /* \"--CODEGEN--\":58:59 */\n 0x00\n /* \"--CODEGEN--\":55:56 */\n dup1\n /* \"--CODEGEN--\":48:60 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_27:\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n dup1\n calldataload\n swap1\n 0x20\n add\n swap2\n /* \"--CODEGEN--\":100:109 */\n dup5\n /* \"--CODEGEN--\":95:96 */\n 0x01\n /* \"--CODEGEN--\":81:93 */\n dup4\n /* \"--CODEGEN--\":77:97 */\n mul\n /* \"--CODEGEN--\":67:75 */\n dup5\n /* \"--CODEGEN--\":63:98 */\n add\n /* \"--CODEGEN--\":60:110 */\n gt\n /* \"--CODEGEN--\":39:50 */\n 0x0100000000\n /* \"--CODEGEN--\":25:37 */\n dup4\n /* \"--CODEGEN--\":22:51 */\n gt\n /* \"--CODEGEN--\":11:118 */\n or\n /* \"--CODEGEN--\":8:10 */\n iszero\n tag_28\n jumpi\n /* \"--CODEGEN--\":131:132 */\n 0x00\n /* \"--CODEGEN--\":128:129 */\n dup1\n /* \"--CODEGEN--\":121:133 */\n revert\n /* \"--CODEGEN--\":8:10 */\n tag_28:\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n swap2\n swap1\n dup1\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n /* \"--CODEGEN--\":30:33 */\n dup1\n /* \"--CODEGEN--\":22:28 */\n dup3\n /* \"--CODEGEN--\":14:20 */\n dup5\n /* \"--CODEGEN--\":1:34 */\n calldatacopy\n /* \"--CODEGEN--\":99:100 */\n 0x00\n /* \"--CODEGEN--\":93:96 */\n dup2\n /* \"--CODEGEN--\":85:91 */\n dup5\n /* \"--CODEGEN--\":81:97 */\n add\n /* \"--CODEGEN--\":74:101 */\n mstore\n /* \"--CODEGEN--\":137:141 */\n 0x1f\n /* \"--CODEGEN--\":133:142 */\n not\n /* \"--CODEGEN--\":126:130 */\n 0x1f\n /* \"--CODEGEN--\":121:124 */\n dup3\n /* \"--CODEGEN--\":117:131 */\n add\n /* \"--CODEGEN--\":113:143 */\n and\n /* \"--CODEGEN--\":106:143 */\n swap1\n pop\n /* \"--CODEGEN--\":169:172 */\n dup1\n /* \"--CODEGEN--\":161:167 */\n dup4\n /* \"--CODEGEN--\":157:173 */\n add\n /* \"--CODEGEN--\":147:173 */\n swap3\n pop\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n pop\n pop\n pop\n pop\n pop\n pop\n swap2\n swap3\n swap2\n swap3\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n /* \"--CODEGEN--\":21:32 */\n 0x0100000000\n /* \"--CODEGEN--\":8:19 */\n dup2\n /* \"--CODEGEN--\":5:33 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_29\n jumpi\n /* \"--CODEGEN--\":46:47 */\n 0x00\n /* \"--CODEGEN--\":43:44 */\n dup1\n /* \"--CODEGEN--\":36:48 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_29:\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n dup3\n add\n /* \"--CODEGEN--\":35:44 */\n dup4\n /* \"--CODEGEN--\":28:32 */\n 0x20\n /* \"--CODEGEN--\":12:26 */\n dup3\n /* \"--CODEGEN--\":8:33 */\n add\n /* \"--CODEGEN--\":5:45 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_30\n jumpi\n /* \"--CODEGEN--\":58:59 */\n 0x00\n /* \"--CODEGEN--\":55:56 */\n dup1\n /* \"--CODEGEN--\":48:60 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_30:\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n dup1\n calldataload\n swap1\n 0x20\n add\n swap2\n /* \"--CODEGEN--\":100:109 */\n dup5\n /* \"--CODEGEN--\":95:96 */\n 0x01\n /* \"--CODEGEN--\":81:93 */\n dup4\n /* \"--CODEGEN--\":77:97 */\n mul\n /* \"--CODEGEN--\":67:75 */\n dup5\n /* \"--CODEGEN--\":63:98 */\n add\n /* \"--CODEGEN--\":60:110 */\n gt\n /* \"--CODEGEN--\":39:50 */\n 0x0100000000\n /* \"--CODEGEN--\":25:37 */\n dup4\n /* \"--CODEGEN--\":22:51 */\n gt\n /* \"--CODEGEN--\":11:118 */\n or\n /* \"--CODEGEN--\":8:10 */\n iszero\n tag_31\n jumpi\n /* \"--CODEGEN--\":131:132 */\n 0x00\n /* \"--CODEGEN--\":128:129 */\n dup1\n /* \"--CODEGEN--\":121:133 */\n revert\n /* \"--CODEGEN--\":8:10 */\n tag_31:\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n swap2\n swap1\n dup1\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n /* \"--CODEGEN--\":30:33 */\n dup1\n /* \"--CODEGEN--\":22:28 */\n dup3\n /* \"--CODEGEN--\":14:20 */\n dup5\n /* \"--CODEGEN--\":1:34 */\n calldatacopy\n /* \"--CODEGEN--\":99:100 */\n 0x00\n /* \"--CODEGEN--\":93:96 */\n dup2\n /* \"--CODEGEN--\":85:91 */\n dup5\n /* \"--CODEGEN--\":81:97 */\n add\n /* \"--CODEGEN--\":74:101 */\n mstore\n /* \"--CODEGEN--\":137:141 */\n 0x1f\n /* \"--CODEGEN--\":133:142 */\n not\n /* \"--CODEGEN--\":126:130 */\n 0x1f\n /* \"--CODEGEN--\":121:124 */\n dup3\n /* \"--CODEGEN--\":117:131 */\n add\n /* \"--CODEGEN--\":113:143 */\n and\n /* \"--CODEGEN--\":106:143 */\n swap1\n pop\n /* \"--CODEGEN--\":169:172 */\n dup1\n /* \"--CODEGEN--\":161:167 */\n dup4\n /* \"--CODEGEN--\":157:173 */\n add\n /* \"--CODEGEN--\":147:173 */\n swap3\n pop\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n pop\n pop\n pop\n pop\n pop\n pop\n swap2\n swap3\n swap2\n swap3\n swap1\n pop\n pop\n pop\n tag_32\n jump\t// in\n tag_24:\n mload(0x40)\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n /* \"--CODEGEN--\":23:24 */\n 0x00\n /* \"--CODEGEN--\":8:108 */\n tag_33:\n /* \"--CODEGEN--\":33:36 */\n dup4\n /* \"--CODEGEN--\":30:31 */\n dup2\n /* \"--CODEGEN--\":27:37 */\n lt\n /* \"--CODEGEN--\":8:108 */\n iszero\n tag_35\n jumpi\n /* \"--CODEGEN--\":99:100 */\n dup1\n /* \"--CODEGEN--\":94:97 */\n dup3\n /* \"--CODEGEN--\":90:101 */\n add\n /* \"--CODEGEN--\":84:102 */\n mload\n /* \"--CODEGEN--\":80:81 */\n dup2\n /* \"--CODEGEN--\":75:78 */\n dup5\n /* \"--CODEGEN--\":71:82 */\n add\n /* \"--CODEGEN--\":64:103 */\n mstore\n /* \"--CODEGEN--\":52:54 */\n 0x20\n /* \"--CODEGEN--\":49:50 */\n dup2\n /* \"--CODEGEN--\":45:55 */\n add\n /* \"--CODEGEN--\":40:55 */\n swap1\n pop\n /* \"--CODEGEN--\":8:108 */\n jump(tag_33)\n tag_35:\n /* \"--CODEGEN--\":12:26 */\n pop\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_36\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_36:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n tag_6:\n tag_37\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x40\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_38\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_38:\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n /* \"--CODEGEN--\":21:32 */\n 0x0100000000\n /* \"--CODEGEN--\":8:19 */\n dup2\n /* \"--CODEGEN--\":5:33 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_39\n jumpi\n /* \"--CODEGEN--\":46:47 */\n 0x00\n /* \"--CODEGEN--\":43:44 */\n dup1\n /* \"--CODEGEN--\":36:48 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_39:\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n dup3\n add\n /* \"--CODEGEN--\":35:44 */\n dup4\n /* \"--CODEGEN--\":28:32 */\n 0x20\n /* \"--CODEGEN--\":12:26 */\n dup3\n /* \"--CODEGEN--\":8:33 */\n add\n /* \"--CODEGEN--\":5:45 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_40\n jumpi\n /* \"--CODEGEN--\":58:59 */\n 0x00\n /* \"--CODEGEN--\":55:56 */\n dup1\n /* \"--CODEGEN--\":48:60 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_40:\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n dup1\n calldataload\n swap1\n 0x20\n add\n swap2\n /* \"--CODEGEN--\":100:109 */\n dup5\n /* \"--CODEGEN--\":95:96 */\n 0x01\n /* \"--CODEGEN--\":81:93 */\n dup4\n /* \"--CODEGEN--\":77:97 */\n mul\n /* \"--CODEGEN--\":67:75 */\n dup5\n /* \"--CODEGEN--\":63:98 */\n add\n /* \"--CODEGEN--\":60:110 */\n gt\n /* \"--CODEGEN--\":39:50 */\n 0x0100000000\n /* \"--CODEGEN--\":25:37 */\n dup4\n /* \"--CODEGEN--\":22:51 */\n gt\n /* \"--CODEGEN--\":11:118 */\n or\n /* \"--CODEGEN--\":8:10 */\n iszero\n tag_41\n jumpi\n /* \"--CODEGEN--\":131:132 */\n 0x00\n /* \"--CODEGEN--\":128:129 */\n dup1\n /* \"--CODEGEN--\":121:133 */\n revert\n /* \"--CODEGEN--\":8:10 */\n tag_41:\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n swap2\n swap1\n dup1\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n /* \"--CODEGEN--\":30:33 */\n dup1\n /* \"--CODEGEN--\":22:28 */\n dup3\n /* \"--CODEGEN--\":14:20 */\n dup5\n /* \"--CODEGEN--\":1:34 */\n calldatacopy\n /* \"--CODEGEN--\":99:100 */\n 0x00\n /* \"--CODEGEN--\":93:96 */\n dup2\n /* \"--CODEGEN--\":85:91 */\n dup5\n /* \"--CODEGEN--\":81:97 */\n add\n /* \"--CODEGEN--\":74:101 */\n mstore\n /* \"--CODEGEN--\":137:141 */\n 0x1f\n /* \"--CODEGEN--\":133:142 */\n not\n /* \"--CODEGEN--\":126:130 */\n 0x1f\n /* \"--CODEGEN--\":121:124 */\n dup3\n /* \"--CODEGEN--\":117:131 */\n add\n /* \"--CODEGEN--\":113:143 */\n and\n /* \"--CODEGEN--\":106:143 */\n swap1\n pop\n /* \"--CODEGEN--\":169:172 */\n dup1\n /* \"--CODEGEN--\":161:167 */\n dup4\n /* \"--CODEGEN--\":157:173 */\n add\n /* \"--CODEGEN--\":147:173 */\n swap3\n pop\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n pop\n pop\n pop\n pop\n pop\n pop\n swap2\n swap3\n swap2\n swap3\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n /* \"--CODEGEN--\":21:32 */\n 0x0100000000\n /* \"--CODEGEN--\":8:19 */\n dup2\n /* \"--CODEGEN--\":5:33 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_42\n jumpi\n /* \"--CODEGEN--\":46:47 */\n 0x00\n /* \"--CODEGEN--\":43:44 */\n dup1\n /* \"--CODEGEN--\":36:48 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_42:\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n dup3\n add\n /* \"--CODEGEN--\":35:44 */\n dup4\n /* \"--CODEGEN--\":28:32 */\n 0x20\n /* \"--CODEGEN--\":12:26 */\n dup3\n /* \"--CODEGEN--\":8:33 */\n add\n /* \"--CODEGEN--\":5:45 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_43\n jumpi\n /* \"--CODEGEN--\":58:59 */\n 0x00\n /* \"--CODEGEN--\":55:56 */\n dup1\n /* \"--CODEGEN--\":48:60 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_43:\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n dup1\n calldataload\n swap1\n 0x20\n add\n swap2\n /* \"--CODEGEN--\":100:109 */\n dup5\n /* \"--CODEGEN--\":95:96 */\n 0x01\n /* \"--CODEGEN--\":81:93 */\n dup4\n /* \"--CODEGEN--\":77:97 */\n mul\n /* \"--CODEGEN--\":67:75 */\n dup5\n /* \"--CODEGEN--\":63:98 */\n add\n /* \"--CODEGEN--\":60:110 */\n gt\n /* \"--CODEGEN--\":39:50 */\n 0x0100000000\n /* \"--CODEGEN--\":25:37 */\n dup4\n /* \"--CODEGEN--\":22:51 */\n gt\n /* \"--CODEGEN--\":11:118 */\n or\n /* \"--CODEGEN--\":8:10 */\n iszero\n tag_44\n jumpi\n /* \"--CODEGEN--\":131:132 */\n 0x00\n /* \"--CODEGEN--\":128:129 */\n dup1\n /* \"--CODEGEN--\":121:133 */\n revert\n /* \"--CODEGEN--\":8:10 */\n tag_44:\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n swap2\n swap1\n dup1\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n /* \"--CODEGEN--\":30:33 */\n dup1\n /* \"--CODEGEN--\":22:28 */\n dup3\n /* \"--CODEGEN--\":14:20 */\n dup5\n /* \"--CODEGEN--\":1:34 */\n calldatacopy\n /* \"--CODEGEN--\":99:100 */\n 0x00\n /* \"--CODEGEN--\":93:96 */\n dup2\n /* \"--CODEGEN--\":85:91 */\n dup5\n /* \"--CODEGEN--\":81:97 */\n add\n /* \"--CODEGEN--\":74:101 */\n mstore\n /* \"--CODEGEN--\":137:141 */\n 0x1f\n /* \"--CODEGEN--\":133:142 */\n not\n /* \"--CODEGEN--\":126:130 */\n 0x1f\n /* \"--CODEGEN--\":121:124 */\n dup3\n /* \"--CODEGEN--\":117:131 */\n add\n /* \"--CODEGEN--\":113:143 */\n and\n /* \"--CODEGEN--\":106:143 */\n swap1\n pop\n /* \"--CODEGEN--\":169:172 */\n dup1\n /* \"--CODEGEN--\":161:167 */\n dup4\n /* \"--CODEGEN--\":157:173 */\n add\n /* \"--CODEGEN--\":147:173 */\n swap3\n pop\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n pop\n pop\n pop\n pop\n pop\n pop\n swap2\n swap3\n swap2\n swap3\n swap1\n pop\n pop\n pop\n tag_45\n jump\t// in\n tag_37:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"SMARTCONT.sol\":1751:2306 function searchProduct(uint _productId) public returns (string memory) {... */\n tag_9:\n /* \"SMARTCONT.sol\":1807:1820 string memory */\n 0x60\n /* \"SMARTCONT.sol\":1853:1858 items */\n sload(0x01)\n /* \"SMARTCONT.sol\":1841:1851 _productId */\n dup3\n /* \"SMARTCONT.sol\":1841:1858 _productId<=items */\n gt\n iszero\n /* \"SMARTCONT.sol\":1833:1859 require(_productId<=items) */\n tag_47\n jumpi\n 0x00\n dup1\n revert\n tag_47:\n /* \"SMARTCONT.sol\":1869:1889 string memory output */\n 0x60\n /* \"SMARTCONT.sol\":1869:1906 string memory output=\"Product Name: \" */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x0e\n dup2\n mstore\n 0x20\n add\n 0x50726f64756374204e616d653a20000000000000000000000000000000000000\n dup2\n mstore\n pop\n swap1\n pop\n /* \"SMARTCONT.sol\":1923:1974 concat(output, allProducts[_productId].productName) */\n tag_48\n /* \"SMARTCONT.sol\":1930:1936 output */\n dup2\n /* \"SMARTCONT.sol\":1938:1949 allProducts */\n 0x00\n /* \"SMARTCONT.sol\":1938:1961 allProducts[_productId] */\n dup1\n /* \"SMARTCONT.sol\":1950:1960 _productId */\n dup7\n /* \"SMARTCONT.sol\":1938:1961 allProducts[_productId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":1938:1973 allProducts[_productId].productName */\n 0x01\n add\n /* \"SMARTCONT.sol\":1923:1974 concat(output, allProducts[_productId].productName) */\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n iszero\n tag_49\n jumpi\n dup1\n 0x1f\n lt\n tag_50\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_49)\n tag_50:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_51:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_51\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_49:\n pop\n pop\n pop\n pop\n pop\n /* \"SMARTCONT.sol\":1923:1929 concat */\n tag_32\n /* \"SMARTCONT.sol\":1923:1974 concat(output, allProducts[_productId].productName) */\n jump\t// in\n tag_48:\n /* \"SMARTCONT.sol\":1916:1974 output=concat(output, allProducts[_productId].productName) */\n swap1\n pop\n /* \"SMARTCONT.sol\":1991:2031 concat(output, \"<br>Manufacture Date: \") */\n tag_52\n /* \"SMARTCONT.sol\":1998:2004 output */\n dup2\n /* \"SMARTCONT.sol\":1991:2031 concat(output, \"<br>Manufacture Date: \") */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x16\n dup2\n mstore\n 0x20\n add\n 0x3c62723e4d616e756661637475726520446174653a2000000000000000000000\n dup2\n mstore\n pop\n /* \"SMARTCONT.sol\":1991:1997 concat */\n tag_32\n /* \"SMARTCONT.sol\":1991:2031 concat(output, \"<br>Manufacture Date: \") */\n jump\t// in\n tag_52:\n /* \"SMARTCONT.sol\":1984:2031 output=concat(output, \"<br>Manufacture Date: \") */\n swap1\n pop\n /* \"SMARTCONT.sol\":2048:2092 concat(output, allProducts[_productId].date) */\n tag_53\n /* \"SMARTCONT.sol\":2055:2061 output */\n dup2\n /* \"SMARTCONT.sol\":2063:2074 allProducts */\n 0x00\n /* \"SMARTCONT.sol\":2063:2086 allProducts[_productId] */\n dup1\n /* \"SMARTCONT.sol\":2075:2085 _productId */\n dup7\n /* \"SMARTCONT.sol\":2063:2086 allProducts[_productId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":2063:2091 allProducts[_productId].date */\n 0x03\n add\n /* \"SMARTCONT.sol\":2048:2092 concat(output, allProducts[_productId].date) */\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n iszero\n tag_54\n jumpi\n dup1\n 0x1f\n lt\n tag_55\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_54)\n tag_55:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_56:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_56\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_54:\n pop\n pop\n pop\n pop\n pop\n /* \"SMARTCONT.sol\":2048:2054 concat */\n tag_32\n /* \"SMARTCONT.sol\":2048:2092 concat(output, allProducts[_productId].date) */\n jump\t// in\n tag_53:\n /* \"SMARTCONT.sol\":2041:2092 output=concat(output, allProducts[_productId].date) */\n swap1\n pop\n /* \"SMARTCONT.sol\":2116:2125 uint256 j */\n 0x00\n /* \"SMARTCONT.sol\":2126:2127 0 */\n dup1\n /* \"SMARTCONT.sol\":2116:2127 uint256 j=0 */\n swap1\n pop\n /* \"SMARTCONT.sol\":2111:2268 for (uint256 j=0; j<allProducts[_productId].totalStates; j++){... */\n tag_57:\n /* \"SMARTCONT.sol\":2131:2142 allProducts */\n 0x00\n /* \"SMARTCONT.sol\":2131:2154 allProducts[_productId] */\n dup1\n /* \"SMARTCONT.sol\":2143:2153 _productId */\n dup6\n /* \"SMARTCONT.sol\":2131:2154 allProducts[_productId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":2131:2166 allProducts[_productId].totalStates */\n 0x04\n add\n sload\n /* \"SMARTCONT.sol\":2129:2130 j */\n dup2\n /* \"SMARTCONT.sol\":2129:2166 j<allProducts[_productId].totalStates */\n lt\n /* \"SMARTCONT.sol\":2111:2268 for (uint256 j=0; j<allProducts[_productId].totalStates; j++){... */\n iszero\n tag_58\n jumpi\n /* \"SMARTCONT.sol\":2193:2257 concat(output, allProducts[_productId].positions[j].description) */\n tag_60\n /* \"SMARTCONT.sol\":2200:2206 output */\n dup3\n /* \"SMARTCONT.sol\":2208:2219 allProducts */\n 0x00\n /* \"SMARTCONT.sol\":2208:2231 allProducts[_productId] */\n dup1\n /* \"SMARTCONT.sol\":2220:2230 _productId */\n dup8\n /* \"SMARTCONT.sol\":2208:2231 allProducts[_productId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":2208:2241 allProducts[_productId].positions */\n 0x05\n add\n /* \"SMARTCONT.sol\":2208:2244 allProducts[_productId].positions[j] */\n 0x00\n /* \"SMARTCONT.sol\":2242:2243 j */\n dup5\n /* \"SMARTCONT.sol\":2208:2244 allProducts[_productId].positions[j] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":2208:2256 allProducts[_productId].positions[j].description */\n 0x00\n add\n /* \"SMARTCONT.sol\":2193:2257 concat(output, allProducts[_productId].positions[j].description) */\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n iszero\n tag_61\n jumpi\n dup1\n 0x1f\n lt\n tag_62\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_61)\n tag_62:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_63:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_63\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_61:\n pop\n pop\n pop\n pop\n pop\n /* \"SMARTCONT.sol\":2193:2199 concat */\n tag_32\n /* \"SMARTCONT.sol\":2193:2257 concat(output, allProducts[_productId].positions[j].description) */\n jump\t// in\n tag_60:\n /* \"SMARTCONT.sol\":2186:2257 output=concat(output, allProducts[_productId].positions[j].description) */\n swap2\n pop\n /* \"SMARTCONT.sol\":2168:2171 j++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"SMARTCONT.sol\":2111:2268 for (uint256 j=0; j<allProducts[_productId].totalStates; j++){... */\n jump(tag_57)\n tag_58:\n pop\n /* \"SMARTCONT.sol\":2284:2290 output */\n dup1\n /* \"SMARTCONT.sol\":2277:2290 return output */\n swap2\n pop\n pop\n /* \"SMARTCONT.sol\":1751:2306 function searchProduct(uint _productId) public returns (string memory) {... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"SMARTCONT.sol\":1307:1741 function addState(uint _productId, string memory info) public returns (string memory) {... */\n tag_19:\n /* \"SMARTCONT.sol\":1378:1391 string memory */\n 0x60\n /* \"SMARTCONT.sol\":1423:1428 items */\n sload(0x01)\n /* \"SMARTCONT.sol\":1411:1421 _productId */\n dup4\n /* \"SMARTCONT.sol\":1411:1428 _productId<=items */\n gt\n iszero\n /* \"SMARTCONT.sol\":1403:1429 require(_productId<=items) */\n tag_65\n jumpi\n 0x00\n dup1\n revert\n tag_65:\n /* \"SMARTCONT.sol\":1448:1469 State memory newState */\n tag_66\n tag_67\n jump\t// in\n tag_66:\n /* \"SMARTCONT.sol\":1472:1518 State({person: msg.sender, description: info}) */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n /* \"SMARTCONT.sol\":1512:1516 info */\n dup5\n /* \"SMARTCONT.sol\":1472:1518 State({person: msg.sender, description: info}) */\n dup2\n mstore\n 0x20\n add\n /* \"SMARTCONT.sol\":1487:1497 msg.sender */\n caller\n /* \"SMARTCONT.sol\":1472:1518 State({person: msg.sender, description: info}) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n pop\n /* \"SMARTCONT.sol\":1448:1518 State memory newState = State({person: msg.sender, description: info}) */\n swap1\n pop\n /* \"SMARTCONT.sol\":1610:1618 newState */\n dup1\n /* \"SMARTCONT.sol\":1537:1548 allProducts */\n 0x00\n /* \"SMARTCONT.sol\":1537:1560 allProducts[_productId] */\n dup1\n /* \"SMARTCONT.sol\":1549:1559 _productId */\n dup7\n /* \"SMARTCONT.sol\":1537:1560 allProducts[_productId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":1537:1570 allProducts[_productId].positions */\n 0x05\n add\n /* \"SMARTCONT.sol\":1537:1609 allProducts[_productId].positions[ allProducts[_productId].totalStates ] */\n 0x00\n /* \"SMARTCONT.sol\":1572:1583 allProducts */\n dup1\n /* \"SMARTCONT.sol\":1572:1595 allProducts[_productId] */\n 0x00\n /* \"SMARTCONT.sol\":1584:1594 _productId */\n dup9\n /* \"SMARTCONT.sol\":1572:1595 allProducts[_productId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":1572:1607 allProducts[_productId].totalStates */\n 0x04\n add\n sload\n /* \"SMARTCONT.sol\":1537:1609 allProducts[_productId].positions[ allProducts[_productId].totalStates ] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":1537:1618 allProducts[_productId].positions[ allProducts[_productId].totalStates ]=newState */\n 0x00\n dup3\n add\n mload\n dup2\n 0x00\n add\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_68\n swap3\n swap2\n swap1\n tag_69\n jump\t// in\n tag_68:\n pop\n 0x20\n dup3\n add\n mload\n dup2\n 0x01\n add\n exp(0x0100, 0x00)\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 swap1\n pop\n pop\n /* \"SMARTCONT.sol\":1712:1713 1 */\n 0x01\n /* \"SMARTCONT.sol\":1675:1686 allProducts */\n 0x00\n /* \"SMARTCONT.sol\":1675:1698 allProducts[_productId] */\n dup1\n /* \"SMARTCONT.sol\":1687:1697 _productId */\n dup7\n /* \"SMARTCONT.sol\":1675:1698 allProducts[_productId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":1675:1710 allProducts[_productId].totalStates */\n 0x04\n add\n sload\n /* \"SMARTCONT.sol\":1675:1713 allProducts[_productId].totalStates +1 */\n add\n /* \"SMARTCONT.sol\":1637:1648 allProducts */\n 0x00\n /* \"SMARTCONT.sol\":1637:1660 allProducts[_productId] */\n dup1\n /* \"SMARTCONT.sol\":1649:1659 _productId */\n dup7\n /* \"SMARTCONT.sol\":1637:1660 allProducts[_productId] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":1637:1672 allProducts[_productId].totalStates */\n 0x04\n add\n /* \"SMARTCONT.sol\":1637:1713 allProducts[_productId].totalStates = allProducts[_productId].totalStates +1 */\n dup2\n swap1\n sstore\n pop\n /* \"SMARTCONT.sol\":1730:1734 info */\n dup3\n /* \"SMARTCONT.sol\":1723:1734 return info */\n swap2\n pop\n pop\n /* \"SMARTCONT.sol\":1307:1741 function addState(uint _productId, string memory info) public returns (string memory) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n tag_32:\n /* \"SMARTCONT.sol\":518:531 string memory */\n 0x60\n /* \"SMARTCONT.sol\":542:562 bytes memory bytes_a */\n dup1\n /* \"SMARTCONT.sol\":571:573 _a */\n dup4\n /* \"SMARTCONT.sol\":542:574 bytes memory bytes_a = bytes(_a) */\n swap1\n pop\n /* \"SMARTCONT.sol\":584:604 bytes memory bytes_b */\n 0x60\n /* \"SMARTCONT.sol\":613:615 _b */\n dup4\n /* \"SMARTCONT.sol\":584:616 bytes memory bytes_b = bytes(_b) */\n swap1\n pop\n /* \"SMARTCONT.sol\":626:649 string memory length_ab */\n 0x60\n /* \"SMARTCONT.sol\":680:687 bytes_b */\n dup2\n /* \"SMARTCONT.sol\":680:694 bytes_b.length */\n mload\n /* \"SMARTCONT.sol\":663:670 bytes_a */\n dup4\n /* \"SMARTCONT.sol\":663:677 bytes_a.length */\n mload\n /* \"SMARTCONT.sol\":663:694 bytes_a.length + bytes_b.length */\n add\n /* \"SMARTCONT.sol\":652:695 new string(bytes_a.length + bytes_b.length) */\n mload(0x40)\n swap1\n dup1\n dup3\n mstore\n dup1\n 0x1f\n add\n not(0x1f)\n and\n 0x20\n add\n dup3\n add\n 0x40\n mstore\n dup1\n iszero\n tag_71\n jumpi\n dup2\n 0x20\n add\n /* \"--CODEGEN--\":29:30 */\n 0x01\n /* \"--CODEGEN--\":21:27 */\n dup3\n /* \"--CODEGEN--\":17:31 */\n mul\n /* \"--CODEGEN--\":116:120 */\n dup1\n /* \"--CODEGEN--\":104:114 */\n codesize\n /* \"--CODEGEN--\":96:102 */\n dup4\n /* \"--CODEGEN--\":87:121 */\n codecopy\n /* \"--CODEGEN--\":147:151 */\n dup1\n /* \"--CODEGEN--\":139:145 */\n dup3\n /* \"--CODEGEN--\":135:152 */\n add\n /* \"--CODEGEN--\":125:152 */\n swap2\n pop\n /* \"--CODEGEN--\":0:156 */\n pop\n /* \"SMARTCONT.sol\":652:695 new string(bytes_a.length + bytes_b.length) */\n swap1\n pop\n tag_71:\n pop\n /* \"SMARTCONT.sol\":626:695 string memory length_ab = new string(bytes_a.length + bytes_b.length) */\n swap1\n pop\n /* \"SMARTCONT.sol\":705:725 bytes memory bytes_c */\n 0x60\n /* \"SMARTCONT.sol\":734:743 length_ab */\n dup2\n /* \"SMARTCONT.sol\":705:744 bytes memory bytes_c = bytes(length_ab) */\n swap1\n pop\n /* \"SMARTCONT.sol\":754:760 uint k */\n 0x00\n /* \"SMARTCONT.sol\":763:764 0 */\n dup1\n /* \"SMARTCONT.sol\":754:764 uint k = 0 */\n swap1\n pop\n /* \"SMARTCONT.sol\":779:785 uint i */\n 0x00\n /* \"SMARTCONT.sol\":788:789 0 */\n dup1\n /* \"SMARTCONT.sol\":779:789 uint i = 0 */\n swap1\n pop\n /* \"SMARTCONT.sol\":774:841 for (uint i = 0; i < bytes_a.length; i++) bytes_c[k++] = bytes_a[i] */\n tag_72:\n /* \"SMARTCONT.sol\":795:802 bytes_a */\n dup6\n /* \"SMARTCONT.sol\":795:809 bytes_a.length */\n mload\n /* \"SMARTCONT.sol\":791:792 i */\n dup2\n /* \"SMARTCONT.sol\":791:809 i < bytes_a.length */\n lt\n /* \"SMARTCONT.sol\":774:841 for (uint i = 0; i < bytes_a.length; i++) bytes_c[k++] = bytes_a[i] */\n iszero\n tag_73\n jumpi\n /* \"SMARTCONT.sol\":831:838 bytes_a */\n dup6\n /* \"SMARTCONT.sol\":839:840 i */\n dup2\n /* \"SMARTCONT.sol\":831:841 bytes_a[i] */\n dup2\n mload\n dup2\n lt\n tag_75\n jumpi\n invalid\n tag_75:\n 0x20\n add\n add\n mload\n 0xf8\n shr\n 0xf8\n shl\n /* \"SMARTCONT.sol\":816:823 bytes_c */\n dup4\n /* \"SMARTCONT.sol\":824:827 k++ */\n dup4\n dup1\n 0x01\n add\n swap5\n pop\n /* \"SMARTCONT.sol\":816:828 bytes_c[k++] */\n dup2\n mload\n dup2\n lt\n tag_76\n jumpi\n invalid\n tag_76:\n 0x20\n add\n add\n /* \"SMARTCONT.sol\":816:841 bytes_c[k++] = bytes_a[i] */\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n swap1\n dup2\n 0x00\n byte\n swap1\n mstore8\n pop\n /* \"SMARTCONT.sol\":811:814 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"SMARTCONT.sol\":774:841 for (uint i = 0; i < bytes_a.length; i++) bytes_c[k++] = bytes_a[i] */\n jump(tag_72)\n tag_73:\n pop\n /* \"SMARTCONT.sol\":856:862 uint i */\n 0x00\n /* \"SMARTCONT.sol\":865:866 0 */\n dup1\n /* \"SMARTCONT.sol\":856:866 uint i = 0 */\n swap1\n pop\n /* \"SMARTCONT.sol\":851:918 for (uint i = 0; i < bytes_b.length; i++) bytes_c[k++] = bytes_b[i] */\n tag_77:\n /* \"SMARTCONT.sol\":872:879 bytes_b */\n dup5\n /* \"SMARTCONT.sol\":872:886 bytes_b.length */\n mload\n /* \"SMARTCONT.sol\":868:869 i */\n dup2\n /* \"SMARTCONT.sol\":868:886 i < bytes_b.length */\n lt\n /* \"SMARTCONT.sol\":851:918 for (uint i = 0; i < bytes_b.length; i++) bytes_c[k++] = bytes_b[i] */\n iszero\n tag_78\n jumpi\n /* \"SMARTCONT.sol\":908:915 bytes_b */\n dup5\n /* \"SMARTCONT.sol\":916:917 i */\n dup2\n /* \"SMARTCONT.sol\":908:918 bytes_b[i] */\n dup2\n mload\n dup2\n lt\n tag_80\n jumpi\n invalid\n tag_80:\n 0x20\n add\n add\n mload\n 0xf8\n shr\n 0xf8\n shl\n /* \"SMARTCONT.sol\":893:900 bytes_c */\n dup4\n /* \"SMARTCONT.sol\":901:904 k++ */\n dup4\n dup1\n 0x01\n add\n swap5\n pop\n /* \"SMARTCONT.sol\":893:905 bytes_c[k++] */\n dup2\n mload\n dup2\n lt\n tag_81\n jumpi\n invalid\n tag_81:\n 0x20\n add\n add\n /* \"SMARTCONT.sol\":893:918 bytes_c[k++] = bytes_b[i] */\n swap1\n not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n and\n swap1\n dup2\n 0x00\n byte\n swap1\n mstore8\n pop\n /* \"SMARTCONT.sol\":888:891 i++ */\n dup1\n dup1\n 0x01\n add\n swap2\n pop\n pop\n /* \"SMARTCONT.sol\":851:918 for (uint i = 0; i < bytes_b.length; i++) bytes_c[k++] = bytes_b[i] */\n jump(tag_77)\n tag_78:\n pop\n /* \"SMARTCONT.sol\":942:949 bytes_c */\n dup2\n /* \"SMARTCONT.sol\":928:950 return string(bytes_c) */\n swap6\n pop\n pop\n pop\n pop\n pop\n pop\n /* \"SMARTCONT.sol\":450:957 function concat(string memory _a, string memory _b) public returns (string memory){... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n tag_45:\n /* \"SMARTCONT.sol\":1042:1046 bool */\n 0x00\n /* \"SMARTCONT.sol\":1058:1080 Product memory newItem */\n tag_83\n tag_84\n jump\t// in\n tag_83:\n /* \"SMARTCONT.sol\":1083:1179 Product({creator: msg.sender, totalStates: 0,productName: _text, productId: items, date: _date}) */\n mload(0x40)\n dup1\n 0xa0\n add\n 0x40\n mstore\n dup1\n /* \"SMARTCONT.sol\":1101:1111 msg.sender */\n caller\n /* \"SMARTCONT.sol\":1083:1179 Product({creator: msg.sender, totalStates: 0,productName: _text, productId: items, date: _date}) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n /* \"SMARTCONT.sol\":1141:1146 _text */\n dup6\n /* \"SMARTCONT.sol\":1083:1179 Product({creator: msg.sender, totalStates: 0,productName: _text, productId: items, date: _date}) */\n dup2\n mstore\n 0x20\n add\n /* \"SMARTCONT.sol\":1159:1164 items */\n sload(0x01)\n /* \"SMARTCONT.sol\":1083:1179 Product({creator: msg.sender, totalStates: 0,productName: _text, productId: items, date: _date}) */\n dup2\n mstore\n 0x20\n add\n /* \"SMARTCONT.sol\":1172:1177 _date */\n dup5\n /* \"SMARTCONT.sol\":1083:1179 Product({creator: msg.sender, totalStates: 0,productName: _text, productId: items, date: _date}) */\n dup2\n mstore\n 0x20\n add\n /* \"SMARTCONT.sol\":1126:1127 0 */\n 0x00\n /* \"SMARTCONT.sol\":1083:1179 Product({creator: msg.sender, totalStates: 0,productName: _text, productId: items, date: _date}) */\n dup2\n mstore\n pop\n /* \"SMARTCONT.sol\":1058:1179 Product memory newItem = Product({creator: msg.sender, totalStates: 0,productName: _text, productId: items, date: _date}) */\n swap1\n pop\n /* \"SMARTCONT.sol\":1208:1215 newItem */\n dup1\n /* \"SMARTCONT.sol\":1189:1200 allProducts */\n 0x00\n /* \"SMARTCONT.sol\":1189:1207 allProducts[items] */\n dup1\n /* \"SMARTCONT.sol\":1201:1206 items */\n sload(0x01)\n /* \"SMARTCONT.sol\":1189:1207 allProducts[items] */\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"SMARTCONT.sol\":1189:1215 allProducts[items]=newItem */\n 0x00\n dup3\n add\n mload\n dup2\n 0x00\n add\n exp(0x0100, 0x00)\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 0x20\n dup3\n add\n mload\n dup2\n 0x01\n add\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_85\n swap3\n swap2\n swap1\n tag_69\n jump\t// in\n tag_85:\n pop\n 0x40\n dup3\n add\n mload\n dup2\n 0x02\n add\n sstore\n 0x60\n dup3\n add\n mload\n dup2\n 0x03\n add\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_86\n swap3\n swap2\n swap1\n tag_69\n jump\t// in\n tag_86:\n pop\n 0x80\n dup3\n add\n mload\n dup2\n 0x04\n add\n sstore\n swap1\n pop\n pop\n /* \"SMARTCONT.sol\":1239:1240 1 */\n 0x01\n /* \"SMARTCONT.sol\":1233:1238 items */\n dup1\n sload\n /* \"SMARTCONT.sol\":1233:1240 items+1 */\n add\n /* \"SMARTCONT.sol\":1225:1230 items */\n 0x01\n /* \"SMARTCONT.sol\":1225:1240 items = items+1 */\n dup2\n swap1\n sstore\n pop\n /* \"SMARTCONT.sol\":1255:1269 Added(items-1) */\n 0x64a55044d1f2eddebe1b90e8e2853e8e96931cefadbfa0b2ceb34bee36061941\n /* \"SMARTCONT.sol\":1267:1268 1 */\n 0x01\n /* \"SMARTCONT.sol\":1261:1266 items */\n dup1\n sload\n /* \"SMARTCONT.sol\":1261:1268 items-1 */\n sub\n /* \"SMARTCONT.sol\":1255:1269 Added(items-1) */\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log1\n /* \"SMARTCONT.sol\":1286:1290 true */\n 0x01\n /* \"SMARTCONT.sol\":1279:1290 return true */\n swap2\n pop\n pop\n /* \"SMARTCONT.sol\":967:1297 function newItem(string memory _text, string memory _date) public returns (bool) {... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"SMARTCONT.sol\":25:2313 contract SupplyChain {... */\n tag_67:\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n 0x60\n dup2\n mstore\n 0x20\n add\n and(0xffffffffffffffffffffffffffffffffffffffff, 0x00)\n dup2\n mstore\n pop\n swap1\n jump\t// out\n tag_69:\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x1f\n add\n 0x20\n swap1\n div\n dup2\n add\n swap3\n dup3\n 0x1f\n lt\n tag_88\n jumpi\n dup1\n mload\n not(0xff)\n and\n dup4\n dup1\n add\n or\n dup6\n sstore\n jump(tag_87)\n tag_88:\n dup3\n dup1\n add\n 0x01\n add\n dup6\n sstore\n dup3\n iszero\n tag_87\n jumpi\n swap2\n dup3\n add\n tag_89:\n dup3\n dup2\n gt\n iszero\n tag_90\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x01\n add\n swap1\n jump(tag_89)\n tag_90:\n tag_87:\n pop\n swap1\n pop\n tag_91\n swap2\n swap1\n tag_92\n jump\t// in\n tag_91:\n pop\n swap1\n jump\t// out\n tag_84:\n mload(0x40)\n dup1\n 0xa0\n add\n 0x40\n mstore\n dup1\n and(0xffffffffffffffffffffffffffffffffffffffff, 0x00)\n dup2\n mstore\n 0x20\n add\n 0x60\n dup2\n mstore\n 0x20\n add\n 0x00\n dup2\n mstore\n 0x20\n add\n 0x60\n dup2\n mstore\n 0x20\n add\n 0x00\n dup2\n mstore\n pop\n swap1\n jump\t// out\n tag_92:\n tag_93\n swap2\n swap1\n tag_94:\n dup1\n dup3\n gt\n iszero\n tag_95\n jumpi\n 0x00\n dup2\n 0x00\n swap1\n sstore\n pop\n 0x01\n add\n jump(tag_94)\n tag_95:\n pop\n swap1\n jump\n tag_93:\n swap1\n jump\t// out\n\n auxdata: 0xa2646970667358221220de56449e7bde4eef4b13237db4c5b0519cbbfda9986757a8146b28bd9483955e64736f6c63430006000033\n}\n",
"bytecode": {
"linkReferences": {},
"object": "6080604052600060015534801561001557600080fd5b50610d78806100256000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80633cde01b514610051578063453bccb6146100f857806389c19ddb14610236578063a3d835c014610401575b600080fd5b61007d6004803603602081101561006757600080fd5b810190808035906020019092919050505061056b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100bd5780820151818401526020810190506100a2565b50505050905090810190601f1680156100ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101bb6004803603604081101561010e57600080fd5b81019080803590602001909291908035906020019064010000000081111561013557600080fd5b82018360208201111561014757600080fd5b8035906020019184600183028401116401000000008311171561016957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610870565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fb5780820151818401526020810190506101e0565b50505050905090810190601f1680156102285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103866004803603604081101561024c57600080fd5b810190808035906020019064010000000081111561026957600080fd5b82018360208201111561027b57600080fd5b8035906020019184600183028401116401000000008311171561029d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561030057600080fd5b82018360208201111561031257600080fd5b8035906020019184600183028401116401000000008311171561033457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610995565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c65780820151818401526020810190506103ab565b50505050905090810190601f1680156103f35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105516004803603604081101561041757600080fd5b810190808035906020019064010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460018302840111640100000000831117156104ff57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610ade565b604051808215151515815260200191505060405180910390f35b606060015482111561057c57600080fd5b60606040518060400160405280600e81526020017f50726f64756374204e616d653a20000000000000000000000000000000000000815250905061066d816000808681526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106635780601f1061063857610100808354040283529160200191610663565b820191906000526020600020905b81548152906001019060200180831161064657829003601f168201915b5050505050610995565b90506106ae816040518060400160405280601681526020017f3c62723e4d616e756661637475726520446174653a2000000000000000000000815250610995565b9050610767816000808681526020019081526020016000206003018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075d5780601f106107325761010080835404028352916020019161075d565b820191906000526020600020905b81548152906001019060200180831161074057829003601f168201915b5050505050610995565b905060008090505b60008085815260200190815260200160002060040154811015610866576108578260008087815260200190815260200160002060050160008481526020019081526020016000206000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561084d5780601f106108225761010080835404028352916020019161084d565b820191906000526020600020905b81548152906001019060200180831161083057829003601f168201915b5050505050610995565b9150808060010191505061076f565b5080915050919050565b606060015483111561088157600080fd5b610889610c28565b60405180604001604052808481526020013373ffffffffffffffffffffffffffffffffffffffff168152509050806000808681526020019081526020016000206005016000806000888152602001908152602001600020600401548152602001908152602001600020600082015181600001908051906020019061090e929190610c58565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060016000808681526020019081526020016000206004015401600080868152602001908152602001600020600401819055508291505092915050565b6060808390506060839050606081518351016040519080825280601f01601f1916602001820160405280156109d95781602001600182028038833980820191505090505b5090506060819050600080905060008090505b8551811015610a5a57858181518110610a0157fe5b602001015160f81c60f81b838380600101945081518110610a1e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806001019150506109ec565b5060008090505b8451811015610acf57848181518110610a7657fe5b602001015160f81c60f81b838380600101945081518110610a9357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050610a61565b50819550505050505092915050565b6000610ae8610cd8565b6040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200185815260200160015481526020018481526020016000815250905080600080600154815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610ba2929190610c58565b50604082015181600201556060820151816003019080519060200190610bc9929190610c58565b506080820151816004015590505060018054016001819055507f64a55044d1f2eddebe1b90e8e2853e8e96931cefadbfa0b2ceb34bee3606194160018054036040518082815260200191505060405180910390a1600191505092915050565b604051806040016040528060608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c9957805160ff1916838001178555610cc7565b82800160010185558215610cc7579182015b82811115610cc6578251825591602001919060010190610cab565b5b509050610cd49190610d1d565b5090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016000815260200160608152602001600081525090565b610d3f91905b80821115610d3b576000816000905550600101610d23565b5090565b9056fea2646970667358221220de56449e7bde4eef4b13237db4c5b0519cbbfda9986757a8146b28bd9483955e64736f6c63430006000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD78 DUP1 PUSH2 0x25 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 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3CDE01B5 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x453BCCB6 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0x89C19DDB EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xA3D835C0 EQ PUSH2 0x401 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x56B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xBD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA2 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x870 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1E0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x386 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x995 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3C6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3AB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3F3 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x551 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x417 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x434 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x468 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x4DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x4FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xADE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x50726F64756374204E616D653A20000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x66D DUP2 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x663 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x638 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x663 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 0x646 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH2 0x6AE DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3C62723E4D616E756661637475726520446174653A2000000000000000000000 DUP2 MSTORE POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH2 0x767 DUP2 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x75D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x732 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x75D 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 0x740 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x866 JUMPI PUSH2 0x857 DUP3 PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x84D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x822 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84D 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 0x830 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x76F JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 SLOAD DUP4 GT ISZERO PUSH2 0x881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x889 PUSH2 0xC28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x90E SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD ADD PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP DUP3 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 DUP4 SWAP1 POP PUSH1 0x60 DUP4 SWAP1 POP PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x9D9 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x60 DUP2 SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0xA5A JUMPI DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA01 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA1E JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x9EC JUMP JUMPDEST POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xACF JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA76 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA93 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xA61 JUMP JUMPDEST POP DUP2 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE8 PUSH2 0xCD8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBA2 SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBC9 SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE SWAP1 POP POP PUSH1 0x1 DUP1 SLOAD ADD PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH32 0x64A55044D1F2EDDEBE1B90E8E2853E8E96931CEFADBFA0B2CEB34BEE36061941 PUSH1 0x1 DUP1 SLOAD SUB PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xC99 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xCC7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xCC7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xCC6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xCAB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xCD4 SWAP2 SWAP1 PUSH2 0xD1D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0xD3F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xD3B JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xD23 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE JUMP DIFFICULTY SWAP15 PUSH28 0xDE4EEF4B13237DB4C5B0519CBBFDA9986757A8146B28BD9483955E64 PUSH20 0x6F6C634300060000330000000000000000000000 ",
"sourceMap": "25:2288:0:-:0;;;438:1;424:15;;25:2288;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:2288:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80633cde01b514610051578063453bccb6146100f857806389c19ddb14610236578063a3d835c014610401575b600080fd5b61007d6004803603602081101561006757600080fd5b810190808035906020019092919050505061056b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100bd5780820151818401526020810190506100a2565b50505050905090810190601f1680156100ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101bb6004803603604081101561010e57600080fd5b81019080803590602001909291908035906020019064010000000081111561013557600080fd5b82018360208201111561014757600080fd5b8035906020019184600183028401116401000000008311171561016957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610870565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fb5780820151818401526020810190506101e0565b50505050905090810190601f1680156102285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103866004803603604081101561024c57600080fd5b810190808035906020019064010000000081111561026957600080fd5b82018360208201111561027b57600080fd5b8035906020019184600183028401116401000000008311171561029d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561030057600080fd5b82018360208201111561031257600080fd5b8035906020019184600183028401116401000000008311171561033457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610995565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c65780820151818401526020810190506103ab565b50505050905090810190601f1680156103f35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105516004803603604081101561041757600080fd5b810190808035906020019064010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460018302840111640100000000831117156104ff57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610ade565b604051808215151515815260200191505060405180910390f35b606060015482111561057c57600080fd5b60606040518060400160405280600e81526020017f50726f64756374204e616d653a20000000000000000000000000000000000000815250905061066d816000808681526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106635780601f1061063857610100808354040283529160200191610663565b820191906000526020600020905b81548152906001019060200180831161064657829003601f168201915b5050505050610995565b90506106ae816040518060400160405280601681526020017f3c62723e4d616e756661637475726520446174653a2000000000000000000000815250610995565b9050610767816000808681526020019081526020016000206003018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075d5780601f106107325761010080835404028352916020019161075d565b820191906000526020600020905b81548152906001019060200180831161074057829003601f168201915b5050505050610995565b905060008090505b60008085815260200190815260200160002060040154811015610866576108578260008087815260200190815260200160002060050160008481526020019081526020016000206000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561084d5780601f106108225761010080835404028352916020019161084d565b820191906000526020600020905b81548152906001019060200180831161083057829003601f168201915b5050505050610995565b9150808060010191505061076f565b5080915050919050565b606060015483111561088157600080fd5b610889610c28565b60405180604001604052808481526020013373ffffffffffffffffffffffffffffffffffffffff168152509050806000808681526020019081526020016000206005016000806000888152602001908152602001600020600401548152602001908152602001600020600082015181600001908051906020019061090e929190610c58565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060016000808681526020019081526020016000206004015401600080868152602001908152602001600020600401819055508291505092915050565b6060808390506060839050606081518351016040519080825280601f01601f1916602001820160405280156109d95781602001600182028038833980820191505090505b5090506060819050600080905060008090505b8551811015610a5a57858181518110610a0157fe5b602001015160f81c60f81b838380600101945081518110610a1e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806001019150506109ec565b5060008090505b8451811015610acf57848181518110610a7657fe5b602001015160f81c60f81b838380600101945081518110610a9357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050610a61565b50819550505050505092915050565b6000610ae8610cd8565b6040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200185815260200160015481526020018481526020016000815250905080600080600154815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610ba2929190610c58565b50604082015181600201556060820151816003019080519060200190610bc9929190610c58565b506080820151816004015590505060018054016001819055507f64a55044d1f2eddebe1b90e8e2853e8e96931cefadbfa0b2ceb34bee3606194160018054036040518082815260200191505060405180910390a1600191505092915050565b604051806040016040528060608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c9957805160ff1916838001178555610cc7565b82800160010185558215610cc7579182015b82811115610cc6578251825591602001919060010190610cab565b5b509050610cd49190610d1d565b5090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016000815260200160608152602001600081525090565b610d3f91905b80821115610d3b576000816000905550600101610d23565b5090565b9056fea2646970667358221220de56449e7bde4eef4b13237db4c5b0519cbbfda9986757a8146b28bd9483955e64736f6c63430006000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3CDE01B5 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x453BCCB6 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0x89C19DDB EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xA3D835C0 EQ PUSH2 0x401 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x56B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xBD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA2 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x870 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1E0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x386 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x995 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3C6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3AB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3F3 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x551 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x417 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x434 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x468 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x4DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x4FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xADE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x50726F64756374204E616D653A20000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x66D DUP2 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x663 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x638 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x663 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 0x646 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH2 0x6AE DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3C62723E4D616E756661637475726520446174653A2000000000000000000000 DUP2 MSTORE POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH2 0x767 DUP2 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x75D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x732 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x75D 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 0x740 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x866 JUMPI PUSH2 0x857 DUP3 PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x84D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x822 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84D 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 0x830 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x76F JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 SLOAD DUP4 GT ISZERO PUSH2 0x881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x889 PUSH2 0xC28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x90E SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD ADD PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP DUP3 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 DUP4 SWAP1 POP PUSH1 0x60 DUP4 SWAP1 POP PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x9D9 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x60 DUP2 SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0xA5A JUMPI DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA01 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA1E JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x9EC JUMP JUMPDEST POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xACF JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA76 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA93 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xA61 JUMP JUMPDEST POP DUP2 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE8 PUSH2 0xCD8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBA2 SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBC9 SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE SWAP1 POP POP PUSH1 0x1 DUP1 SLOAD ADD PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH32 0x64A55044D1F2EDDEBE1B90E8E2853E8E96931CEFADBFA0B2CEB34BEE36061941 PUSH1 0x1 DUP1 SLOAD SUB PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xC99 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xCC7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xCC7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xCC6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xCAB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xCD4 SWAP2 SWAP1 PUSH2 0xD1D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0xD3F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xD3B JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xD23 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE JUMP DIFFICULTY SWAP15 PUSH28 0xDE4EEF4B13237DB4C5B0519CBBFDA9986757A8146B28BD9483955E64 PUSH20 0x6F6C634300060000330000000000000000000000 ",
"sourceMap": "25:2288:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:2288:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1751:555;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1751:555:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1751:555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:434;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1307:434:0;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1307:434:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1307:434:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1307:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1307:434:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1307:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;450:507;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;450:507:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;450:507:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;450:507:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;450:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;450:507:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;450:507:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;450:507:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;450:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;450:507:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;450:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;967:330;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;967:330:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;967:330:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;967:330:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;967:330:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;967:330:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;967:330:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;967:330:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;967:330:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;967:330:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1751:555;1807:13;1853:5;;1841:10;:17;;1833:26;;;;;;1869:20;:37;;;;;;;;;;;;;;;;;;;1923:51;1930:6;1938:11;:23;1950:10;1938:23;;;;;;;;;;;:35;;1923:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;:51::i;:::-;1916:58;;1991:40;1998:6;1991:40;;;;;;;;;;;;;;;;;:6;:40::i;:::-;1984:47;;2048:44;2055:6;2063:11;:23;2075:10;2063:23;;;;;;;;;;;:28;;2048:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;:44::i;:::-;2041:51;;2116:9;2126:1;2116:11;;2111:157;2131:11;:23;2143:10;2131:23;;;;;;;;;;;:35;;;2129:1;:37;2111:157;;;2193:64;2200:6;2208:11;:23;2220:10;2208:23;;;;;;;;;;;:33;;:36;2242:1;2208:36;;;;;;;;;;;:48;;2193:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;:64::i;:::-;2186:71;;2168:3;;;;;;;2111:157;;;;2284:6;2277:13;;;1751:555;;;:::o;1307:434::-;1378:13;1423:5;;1411:10;:17;;1403:26;;;;;;1448:21;;:::i;:::-;1472:46;;;;;;;;1512:4;1472:46;;;;1487:10;1472:46;;;;;1448:70;;1610:8;1537:11;:23;1549:10;1537:23;;;;;;;;;;;:33;;:72;1572:11;:23;1584:10;1572:23;;;;;;;;;;;:35;;;1537:72;;;;;;;;;;;:81;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:1;1675:11;:23;1687:10;1675:23;;;;;;;;;;;:35;;;:38;1637:11;:23;1649:10;1637:23;;;;;;;;;;;:35;;:76;;;;1730:4;1723:11;;;1307:434;;;;:::o;450:507::-;518:13;542:20;571:2;542:32;;584:20;613:2;584:32;;626:23;680:7;:14;663:7;:14;:31;652:43;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;652:43:0;;;;626:69;;705:20;734:9;705:39;;754:6;763:1;754:10;;779:6;788:1;779:10;;774:67;795:7;:14;791:1;:18;774:67;;;831:7;839:1;831:10;;;;;;;;;;;;;;;;816:7;824:3;;;;;;816:12;;;;;;;;;;;:25;;;;;;;;;;;811:3;;;;;;;774:67;;;;856:6;865:1;856:10;;851:67;872:7;:14;868:1;:18;851:67;;;908:7;916:1;908:10;;;;;;;;;;;;;;;;893:7;901:3;;;;;;893:12;;;;;;;;;;;:25;;;;;;;;;;;888:3;;;;;;;851:67;;;;942:7;928:22;;;;;;;450:507;;;;:::o;967:330::-;1042:4;1058:22;;:::i;:::-;1083:96;;;;;;;;1101:10;1083:96;;;;;;1141:5;1083:96;;;;1159:5;;1083:96;;;;1172:5;1083:96;;;;1126:1;1083:96;;;1058:121;;1208:7;1189:11;:18;1201:5;;1189:18;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1239:1;1233:5;;:7;1225:5;:15;;;;1255:14;1267:1;1261:5;;:7;1255:14;;;;;;;;;;;;;;;;;;1286:4;1279:11;;;967:330;;;;:::o;25:2288::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "689600",
"executionCost": "5727",
"totalCost": "695327"
},
"external": {
"addState(uint256,string)": "infinite",
"concat(string,string)": "infinite",
"newItem(string,string)": "infinite",
"searchProduct(uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "80"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "40"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 438,
"end": 439,
"name": "PUSH",
"value": "0"
},
{
"begin": 424,
"end": 439,
"name": "PUSH",
"value": "1"
},
{
"begin": 424,
"end": 439,
"name": "SSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "POP"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "CODECOPY"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220de56449e7bde4eef4b13237db4c5b0519cbbfda9986757a8146b28bd9483955e64736f6c63430006000033",
".code": [
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "80"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "40"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "POP"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "4"
},
{
"begin": 25,
"end": 2313,
"name": "CALLDATASIZE"
},
{
"begin": 25,
"end": 2313,
"name": "LT"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPI"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "CALLDATALOAD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "E0"
},
{
"begin": 25,
"end": 2313,
"name": "SHR"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "3CDE01B5"
},
{
"begin": 25,
"end": 2313,
"name": "EQ"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "3"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPI"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "453BCCB6"
},
{
"begin": 25,
"end": 2313,
"name": "EQ"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPI"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "89C19DDB"
},
{
"begin": 25,
"end": 2313,
"name": "EQ"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPI"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "A3D835C0"
},
{
"begin": 25,
"end": 2313,
"name": "EQ"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPI"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "2"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "REVERT"
},
{
"begin": 1751,
"end": 2306,
"name": "tag",
"value": "3"
},
{
"begin": 1751,
"end": 2306,
"name": "JUMPDEST"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "4"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "CALLDATASIZE"
},
{
"begin": 1751,
"end": 2306,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "20"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "8"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP2"
},
{
"begin": 1751,
"end": 2306,
"name": "ADD"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "CALLDATALOAD"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "20"
},
{
"begin": 1751,
"end": 2306,
"name": "ADD"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP3"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP2"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH [tag]",
"value": "9"
},
{
"begin": 1751,
"end": 2306,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1751,
"end": 2306,
"name": "tag",
"value": "7"
},
{
"begin": 1751,
"end": 2306,
"name": "JUMPDEST"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "40"
},
{
"begin": 1751,
"end": 2306,
"name": "MLOAD"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "20"
},
{
"begin": 1751,
"end": 2306,
"name": "ADD"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP3"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP2"
},
{
"begin": 1751,
"end": 2306,
"name": "SUB"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP3"
},
{
"begin": 1751,
"end": 2306,
"name": "MSTORE"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP4"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP2"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP2"
},
{
"begin": 1751,
"end": 2306,
"name": "MLOAD"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP2"
},
{
"begin": 1751,
"end": 2306,
"name": "MSTORE"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "20"
},
{
"begin": 1751,
"end": 2306,
"name": "ADD"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP2"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "MLOAD"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "20"
},
{
"begin": 1751,
"end": 2306,
"name": "ADD"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP4"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP4"
},
{
"begin": 23,
"end": 24,
"name": "PUSH",
"value": "0"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "10"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 33,
"end": 36,
"name": "DUP4"
},
{
"begin": 30,
"end": 31,
"name": "DUP2"
},
{
"begin": 27,
"end": 37,
"name": "LT"
},
{
"begin": 8,
"end": 108,
"name": "ISZERO"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "12"
},
{
"begin": 8,
"end": 108,
"name": "JUMPI"
},
{
"begin": 99,
"end": 100,
"name": "DUP1"
},
{
"begin": 94,
"end": 97,
"name": "DUP3"
},
{
"begin": 90,
"end": 101,
"name": "ADD"
},
{
"begin": 84,
"end": 102,
"name": "MLOAD"
},
{
"begin": 80,
"end": 81,
"name": "DUP2"
},
{
"begin": 75,
"end": 78,
"name": "DUP5"
},
{
"begin": 71,
"end": 82,
"name": "ADD"
},
{
"begin": 64,
"end": 103,
"name": "MSTORE"
},
{
"begin": 52,
"end": 54,
"name": "PUSH",
"value": "20"
},
{
"begin": 49,
"end": 50,
"name": "DUP2"
},
{
"begin": 45,
"end": 55,
"name": "ADD"
},
{
"begin": 40,
"end": 55,
"name": "SWAP1"
},
{
"begin": 40,
"end": 55,
"name": "POP"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "10"
},
{
"begin": 8,
"end": 108,
"name": "JUMP"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "12"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 12,
"end": 26,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP2"
},
{
"begin": 1751,
"end": 2306,
"name": "ADD"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1751,
"end": 2306,
"name": "AND"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "ISZERO"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 1751,
"end": 2306,
"name": "JUMPI"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP3"
},
{
"begin": 1751,
"end": 2306,
"name": "SUB"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "MLOAD"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "1"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP4"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "20"
},
{
"begin": 1751,
"end": 2306,
"name": "SUB"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "100"
},
{
"begin": 1751,
"end": 2306,
"name": "EXP"
},
{
"begin": 1751,
"end": 2306,
"name": "SUB"
},
{
"begin": 1751,
"end": 2306,
"name": "NOT"
},
{
"begin": 1751,
"end": 2306,
"name": "AND"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP2"
},
{
"begin": 1751,
"end": 2306,
"name": "MSTORE"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "20"
},
{
"begin": 1751,
"end": 2306,
"name": "ADD"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP2"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "tag",
"value": "13"
},
{
"begin": 1751,
"end": 2306,
"name": "JUMPDEST"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP3"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "PUSH",
"value": "40"
},
{
"begin": 1751,
"end": 2306,
"name": "MLOAD"
},
{
"begin": 1751,
"end": 2306,
"name": "DUP1"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP2"
},
{
"begin": 1751,
"end": 2306,
"name": "SUB"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "RETURN"
},
{
"begin": 1307,
"end": 1741,
"name": "tag",
"value": "4"
},
{
"begin": 1307,
"end": 1741,
"name": "JUMPDEST"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH [tag]",
"value": "14"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "4"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "CALLDATASIZE"
},
{
"begin": 1307,
"end": 1741,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "40"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "15"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "15"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "CALLDATALOAD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP3"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "CALLDATALOAD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 21,
"end": 32,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 8,
"end": 19,
"name": "DUP2"
},
{
"begin": 5,
"end": 33,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "16"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 46,
"end": 47,
"name": "PUSH",
"value": "0"
},
{
"begin": 43,
"end": 44,
"name": "DUP1"
},
{
"begin": 36,
"end": 48,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "16"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP3"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 35,
"end": 44,
"name": "DUP4"
},
{
"begin": 28,
"end": 32,
"name": "PUSH",
"value": "20"
},
{
"begin": 12,
"end": 26,
"name": "DUP3"
},
{
"begin": 8,
"end": 33,
"name": "ADD"
},
{
"begin": 5,
"end": 45,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "17"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 58,
"end": 59,
"name": "PUSH",
"value": "0"
},
{
"begin": 55,
"end": 56,
"name": "DUP1"
},
{
"begin": 48,
"end": 60,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "17"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "CALLDATALOAD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 100,
"end": 109,
"name": "DUP5"
},
{
"begin": 95,
"end": 96,
"name": "PUSH",
"value": "1"
},
{
"begin": 81,
"end": 93,
"name": "DUP4"
},
{
"begin": 77,
"end": 97,
"name": "MUL"
},
{
"begin": 67,
"end": 75,
"name": "DUP5"
},
{
"begin": 63,
"end": 98,
"name": "ADD"
},
{
"begin": 60,
"end": 110,
"name": "GT"
},
{
"begin": 39,
"end": 50,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 25,
"end": 37,
"name": "DUP4"
},
{
"begin": 22,
"end": 51,
"name": "GT"
},
{
"begin": 11,
"end": 118,
"name": "OR"
},
{
"begin": 8,
"end": 10,
"name": "ISZERO"
},
{
"begin": 8,
"end": 10,
"name": "PUSH [tag]",
"value": "18"
},
{
"begin": 8,
"end": 10,
"name": "JUMPI"
},
{
"begin": 131,
"end": 132,
"name": "PUSH",
"value": "0"
},
{
"begin": 128,
"end": 129,
"name": "DUP1"
},
{
"begin": 121,
"end": 133,
"name": "REVERT"
},
{
"begin": 8,
"end": 10,
"name": "tag",
"value": "18"
},
{
"begin": 8,
"end": 10,
"name": "JUMPDEST"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "DIV"
},
{
"begin": 1307,
"end": 1741,
"name": "MUL"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "40"
},
{
"begin": 1307,
"end": 1741,
"name": "MLOAD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "40"
},
{
"begin": 1307,
"end": 1741,
"name": "MSTORE"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP4"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP3"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "MSTORE"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP4"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP4"
},
{
"begin": 30,
"end": 33,
"name": "DUP1"
},
{
"begin": 22,
"end": 28,
"name": "DUP3"
},
{
"begin": 14,
"end": 20,
"name": "DUP5"
},
{
"begin": 1,
"end": 34,
"name": "CALLDATACOPY"
},
{
"begin": 99,
"end": 100,
"name": "PUSH",
"value": "0"
},
{
"begin": 93,
"end": 96,
"name": "DUP2"
},
{
"begin": 85,
"end": 91,
"name": "DUP5"
},
{
"begin": 81,
"end": 97,
"name": "ADD"
},
{
"begin": 74,
"end": 101,
"name": "MSTORE"
},
{
"begin": 137,
"end": 141,
"name": "PUSH",
"value": "1F"
},
{
"begin": 133,
"end": 142,
"name": "NOT"
},
{
"begin": 126,
"end": 130,
"name": "PUSH",
"value": "1F"
},
{
"begin": 121,
"end": 124,
"name": "DUP3"
},
{
"begin": 117,
"end": 131,
"name": "ADD"
},
{
"begin": 113,
"end": 143,
"name": "AND"
},
{
"begin": 106,
"end": 143,
"name": "SWAP1"
},
{
"begin": 106,
"end": 143,
"name": "POP"
},
{
"begin": 169,
"end": 172,
"name": "DUP1"
},
{
"begin": 161,
"end": 167,
"name": "DUP4"
},
{
"begin": 157,
"end": 173,
"name": "ADD"
},
{
"begin": 147,
"end": 173,
"name": "SWAP3"
},
{
"begin": 147,
"end": 173,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP3"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP3"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH [tag]",
"value": "19"
},
{
"begin": 1307,
"end": 1741,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1307,
"end": 1741,
"name": "tag",
"value": "14"
},
{
"begin": 1307,
"end": 1741,
"name": "JUMPDEST"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "40"
},
{
"begin": 1307,
"end": 1741,
"name": "MLOAD"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP3"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "SUB"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP3"
},
{
"begin": 1307,
"end": 1741,
"name": "MSTORE"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP4"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "MLOAD"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "MSTORE"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "MLOAD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP4"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP4"
},
{
"begin": 23,
"end": 24,
"name": "PUSH",
"value": "0"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "20"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 33,
"end": 36,
"name": "DUP4"
},
{
"begin": 30,
"end": 31,
"name": "DUP2"
},
{
"begin": 27,
"end": 37,
"name": "LT"
},
{
"begin": 8,
"end": 108,
"name": "ISZERO"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "22"
},
{
"begin": 8,
"end": 108,
"name": "JUMPI"
},
{
"begin": 99,
"end": 100,
"name": "DUP1"
},
{
"begin": 94,
"end": 97,
"name": "DUP3"
},
{
"begin": 90,
"end": 101,
"name": "ADD"
},
{
"begin": 84,
"end": 102,
"name": "MLOAD"
},
{
"begin": 80,
"end": 81,
"name": "DUP2"
},
{
"begin": 75,
"end": 78,
"name": "DUP5"
},
{
"begin": 71,
"end": 82,
"name": "ADD"
},
{
"begin": 64,
"end": 103,
"name": "MSTORE"
},
{
"begin": 52,
"end": 54,
"name": "PUSH",
"value": "20"
},
{
"begin": 49,
"end": 50,
"name": "DUP2"
},
{
"begin": 45,
"end": 55,
"name": "ADD"
},
{
"begin": 40,
"end": 55,
"name": "SWAP1"
},
{
"begin": 40,
"end": 55,
"name": "POP"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "20"
},
{
"begin": 8,
"end": 108,
"name": "JUMP"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "22"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 12,
"end": 26,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1307,
"end": 1741,
"name": "AND"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "ISZERO"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH [tag]",
"value": "23"
},
{
"begin": 1307,
"end": 1741,
"name": "JUMPI"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP3"
},
{
"begin": 1307,
"end": 1741,
"name": "SUB"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "MLOAD"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "1"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP4"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "SUB"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "100"
},
{
"begin": 1307,
"end": 1741,
"name": "EXP"
},
{
"begin": 1307,
"end": 1741,
"name": "SUB"
},
{
"begin": 1307,
"end": 1741,
"name": "NOT"
},
{
"begin": 1307,
"end": 1741,
"name": "AND"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP2"
},
{
"begin": 1307,
"end": 1741,
"name": "MSTORE"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "20"
},
{
"begin": 1307,
"end": 1741,
"name": "ADD"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "tag",
"value": "23"
},
{
"begin": 1307,
"end": 1741,
"name": "JUMPDEST"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP3"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "PUSH",
"value": "40"
},
{
"begin": 1307,
"end": 1741,
"name": "MLOAD"
},
{
"begin": 1307,
"end": 1741,
"name": "DUP1"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "SUB"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP1"
},
{
"begin": 1307,
"end": 1741,
"name": "RETURN"
},
{
"begin": 450,
"end": 957,
"name": "tag",
"value": "5"
},
{
"begin": 450,
"end": 957,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "PUSH [tag]",
"value": "24"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "4"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "CALLDATASIZE"
},
{
"begin": 450,
"end": 957,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "40"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "25"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "25"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "CALLDATALOAD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 21,
"end": 32,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 8,
"end": 19,
"name": "DUP2"
},
{
"begin": 5,
"end": 33,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "26"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 46,
"end": 47,
"name": "PUSH",
"value": "0"
},
{
"begin": 43,
"end": 44,
"name": "DUP1"
},
{
"begin": 36,
"end": 48,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "26"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "DUP3"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 35,
"end": 44,
"name": "DUP4"
},
{
"begin": 28,
"end": 32,
"name": "PUSH",
"value": "20"
},
{
"begin": 12,
"end": 26,
"name": "DUP3"
},
{
"begin": 8,
"end": 33,
"name": "ADD"
},
{
"begin": 5,
"end": 45,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "27"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 58,
"end": 59,
"name": "PUSH",
"value": "0"
},
{
"begin": 55,
"end": 56,
"name": "DUP1"
},
{
"begin": 48,
"end": 60,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "27"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "CALLDATALOAD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 100,
"end": 109,
"name": "DUP5"
},
{
"begin": 95,
"end": 96,
"name": "PUSH",
"value": "1"
},
{
"begin": 81,
"end": 93,
"name": "DUP4"
},
{
"begin": 77,
"end": 97,
"name": "MUL"
},
{
"begin": 67,
"end": 75,
"name": "DUP5"
},
{
"begin": 63,
"end": 98,
"name": "ADD"
},
{
"begin": 60,
"end": 110,
"name": "GT"
},
{
"begin": 39,
"end": 50,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 25,
"end": 37,
"name": "DUP4"
},
{
"begin": 22,
"end": 51,
"name": "GT"
},
{
"begin": 11,
"end": 118,
"name": "OR"
},
{
"begin": 8,
"end": 10,
"name": "ISZERO"
},
{
"begin": 8,
"end": 10,
"name": "PUSH [tag]",
"value": "28"
},
{
"begin": 8,
"end": 10,
"name": "JUMPI"
},
{
"begin": 131,
"end": 132,
"name": "PUSH",
"value": "0"
},
{
"begin": 128,
"end": 129,
"name": "DUP1"
},
{
"begin": 121,
"end": 133,
"name": "REVERT"
},
{
"begin": 8,
"end": 10,
"name": "tag",
"value": "28"
},
{
"begin": 8,
"end": 10,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "1F"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "DIV"
},
{
"begin": 450,
"end": 957,
"name": "MUL"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "40"
},
{
"begin": 450,
"end": 957,
"name": "MLOAD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "40"
},
{
"begin": 450,
"end": 957,
"name": "MSTORE"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "SWAP4"
},
{
"begin": 450,
"end": 957,
"name": "SWAP3"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "MSTORE"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "DUP4"
},
{
"begin": 450,
"end": 957,
"name": "DUP4"
},
{
"begin": 30,
"end": 33,
"name": "DUP1"
},
{
"begin": 22,
"end": 28,
"name": "DUP3"
},
{
"begin": 14,
"end": 20,
"name": "DUP5"
},
{
"begin": 1,
"end": 34,
"name": "CALLDATACOPY"
},
{
"begin": 99,
"end": 100,
"name": "PUSH",
"value": "0"
},
{
"begin": 93,
"end": 96,
"name": "DUP2"
},
{
"begin": 85,
"end": 91,
"name": "DUP5"
},
{
"begin": 81,
"end": 97,
"name": "ADD"
},
{
"begin": 74,
"end": 101,
"name": "MSTORE"
},
{
"begin": 137,
"end": 141,
"name": "PUSH",
"value": "1F"
},
{
"begin": 133,
"end": 142,
"name": "NOT"
},
{
"begin": 126,
"end": 130,
"name": "PUSH",
"value": "1F"
},
{
"begin": 121,
"end": 124,
"name": "DUP3"
},
{
"begin": 117,
"end": 131,
"name": "ADD"
},
{
"begin": 113,
"end": 143,
"name": "AND"
},
{
"begin": 106,
"end": 143,
"name": "SWAP1"
},
{
"begin": 106,
"end": 143,
"name": "POP"
},
{
"begin": 169,
"end": 172,
"name": "DUP1"
},
{
"begin": 161,
"end": 167,
"name": "DUP4"
},
{
"begin": 157,
"end": 173,
"name": "ADD"
},
{
"begin": 147,
"end": 173,
"name": "SWAP3"
},
{
"begin": 147,
"end": 173,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "SWAP3"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "SWAP3"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "CALLDATALOAD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 21,
"end": 32,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 8,
"end": 19,
"name": "DUP2"
},
{
"begin": 5,
"end": 33,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "29"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 46,
"end": 47,
"name": "PUSH",
"value": "0"
},
{
"begin": 43,
"end": 44,
"name": "DUP1"
},
{
"begin": 36,
"end": 48,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "29"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "DUP3"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 35,
"end": 44,
"name": "DUP4"
},
{
"begin": 28,
"end": 32,
"name": "PUSH",
"value": "20"
},
{
"begin": 12,
"end": 26,
"name": "DUP3"
},
{
"begin": 8,
"end": 33,
"name": "ADD"
},
{
"begin": 5,
"end": 45,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "30"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 58,
"end": 59,
"name": "PUSH",
"value": "0"
},
{
"begin": 55,
"end": 56,
"name": "DUP1"
},
{
"begin": 48,
"end": 60,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "30"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "CALLDATALOAD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 100,
"end": 109,
"name": "DUP5"
},
{
"begin": 95,
"end": 96,
"name": "PUSH",
"value": "1"
},
{
"begin": 81,
"end": 93,
"name": "DUP4"
},
{
"begin": 77,
"end": 97,
"name": "MUL"
},
{
"begin": 67,
"end": 75,
"name": "DUP5"
},
{
"begin": 63,
"end": 98,
"name": "ADD"
},
{
"begin": 60,
"end": 110,
"name": "GT"
},
{
"begin": 39,
"end": 50,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 25,
"end": 37,
"name": "DUP4"
},
{
"begin": 22,
"end": 51,
"name": "GT"
},
{
"begin": 11,
"end": 118,
"name": "OR"
},
{
"begin": 8,
"end": 10,
"name": "ISZERO"
},
{
"begin": 8,
"end": 10,
"name": "PUSH [tag]",
"value": "31"
},
{
"begin": 8,
"end": 10,
"name": "JUMPI"
},
{
"begin": 131,
"end": 132,
"name": "PUSH",
"value": "0"
},
{
"begin": 128,
"end": 129,
"name": "DUP1"
},
{
"begin": 121,
"end": 133,
"name": "REVERT"
},
{
"begin": 8,
"end": 10,
"name": "tag",
"value": "31"
},
{
"begin": 8,
"end": 10,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "1F"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "DIV"
},
{
"begin": 450,
"end": 957,
"name": "MUL"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "40"
},
{
"begin": 450,
"end": 957,
"name": "MLOAD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "40"
},
{
"begin": 450,
"end": 957,
"name": "MSTORE"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "SWAP4"
},
{
"begin": 450,
"end": 957,
"name": "SWAP3"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "MSTORE"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "DUP4"
},
{
"begin": 450,
"end": 957,
"name": "DUP4"
},
{
"begin": 30,
"end": 33,
"name": "DUP1"
},
{
"begin": 22,
"end": 28,
"name": "DUP3"
},
{
"begin": 14,
"end": 20,
"name": "DUP5"
},
{
"begin": 1,
"end": 34,
"name": "CALLDATACOPY"
},
{
"begin": 99,
"end": 100,
"name": "PUSH",
"value": "0"
},
{
"begin": 93,
"end": 96,
"name": "DUP2"
},
{
"begin": 85,
"end": 91,
"name": "DUP5"
},
{
"begin": 81,
"end": 97,
"name": "ADD"
},
{
"begin": 74,
"end": 101,
"name": "MSTORE"
},
{
"begin": 137,
"end": 141,
"name": "PUSH",
"value": "1F"
},
{
"begin": 133,
"end": 142,
"name": "NOT"
},
{
"begin": 126,
"end": 130,
"name": "PUSH",
"value": "1F"
},
{
"begin": 121,
"end": 124,
"name": "DUP3"
},
{
"begin": 117,
"end": 131,
"name": "ADD"
},
{
"begin": 113,
"end": 143,
"name": "AND"
},
{
"begin": 106,
"end": 143,
"name": "SWAP1"
},
{
"begin": 106,
"end": 143,
"name": "POP"
},
{
"begin": 169,
"end": 172,
"name": "DUP1"
},
{
"begin": 161,
"end": 167,
"name": "DUP4"
},
{
"begin": 157,
"end": 173,
"name": "ADD"
},
{
"begin": 147,
"end": 173,
"name": "SWAP3"
},
{
"begin": 147,
"end": 173,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "SWAP3"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "SWAP3"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "PUSH [tag]",
"value": "32"
},
{
"begin": 450,
"end": 957,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 450,
"end": 957,
"name": "tag",
"value": "24"
},
{
"begin": 450,
"end": 957,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "40"
},
{
"begin": 450,
"end": 957,
"name": "MLOAD"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "DUP3"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "SUB"
},
{
"begin": 450,
"end": 957,
"name": "DUP3"
},
{
"begin": 450,
"end": 957,
"name": "MSTORE"
},
{
"begin": 450,
"end": 957,
"name": "DUP4"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "MLOAD"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "MSTORE"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "MLOAD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP4"
},
{
"begin": 450,
"end": 957,
"name": "DUP4"
},
{
"begin": 23,
"end": 24,
"name": "PUSH",
"value": "0"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "33"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 33,
"end": 36,
"name": "DUP4"
},
{
"begin": 30,
"end": 31,
"name": "DUP2"
},
{
"begin": 27,
"end": 37,
"name": "LT"
},
{
"begin": 8,
"end": 108,
"name": "ISZERO"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "35"
},
{
"begin": 8,
"end": 108,
"name": "JUMPI"
},
{
"begin": 99,
"end": 100,
"name": "DUP1"
},
{
"begin": 94,
"end": 97,
"name": "DUP3"
},
{
"begin": 90,
"end": 101,
"name": "ADD"
},
{
"begin": 84,
"end": 102,
"name": "MLOAD"
},
{
"begin": 80,
"end": 81,
"name": "DUP2"
},
{
"begin": 75,
"end": 78,
"name": "DUP5"
},
{
"begin": 71,
"end": 82,
"name": "ADD"
},
{
"begin": 64,
"end": 103,
"name": "MSTORE"
},
{
"begin": 52,
"end": 54,
"name": "PUSH",
"value": "20"
},
{
"begin": 49,
"end": 50,
"name": "DUP2"
},
{
"begin": 45,
"end": 55,
"name": "ADD"
},
{
"begin": 40,
"end": 55,
"name": "SWAP1"
},
{
"begin": 40,
"end": 55,
"name": "POP"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "33"
},
{
"begin": 8,
"end": 108,
"name": "JUMP"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "35"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 12,
"end": 26,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "1F"
},
{
"begin": 450,
"end": 957,
"name": "AND"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "ISZERO"
},
{
"begin": 450,
"end": 957,
"name": "PUSH [tag]",
"value": "36"
},
{
"begin": 450,
"end": 957,
"name": "JUMPI"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "DUP3"
},
{
"begin": 450,
"end": 957,
"name": "SUB"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "MLOAD"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "1"
},
{
"begin": 450,
"end": 957,
"name": "DUP4"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "SUB"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "100"
},
{
"begin": 450,
"end": 957,
"name": "EXP"
},
{
"begin": 450,
"end": 957,
"name": "SUB"
},
{
"begin": 450,
"end": 957,
"name": "NOT"
},
{
"begin": 450,
"end": 957,
"name": "AND"
},
{
"begin": 450,
"end": 957,
"name": "DUP2"
},
{
"begin": 450,
"end": 957,
"name": "MSTORE"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "20"
},
{
"begin": 450,
"end": 957,
"name": "ADD"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "tag",
"value": "36"
},
{
"begin": 450,
"end": 957,
"name": "JUMPDEST"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "SWAP3"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "PUSH",
"value": "40"
},
{
"begin": 450,
"end": 957,
"name": "MLOAD"
},
{
"begin": 450,
"end": 957,
"name": "DUP1"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "SUB"
},
{
"begin": 450,
"end": 957,
"name": "SWAP1"
},
{
"begin": 450,
"end": 957,
"name": "RETURN"
},
{
"begin": 967,
"end": 1297,
"name": "tag",
"value": "6"
},
{
"begin": 967,
"end": 1297,
"name": "JUMPDEST"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH [tag]",
"value": "37"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "4"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "CALLDATASIZE"
},
{
"begin": 967,
"end": 1297,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "40"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "38"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "38"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 967,
"end": 1297,
"name": "DUP2"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "CALLDATALOAD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 21,
"end": 32,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 8,
"end": 19,
"name": "DUP2"
},
{
"begin": 5,
"end": 33,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "39"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 46,
"end": 47,
"name": "PUSH",
"value": "0"
},
{
"begin": 43,
"end": 44,
"name": "DUP1"
},
{
"begin": 36,
"end": 48,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "39"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 967,
"end": 1297,
"name": "DUP3"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 35,
"end": 44,
"name": "DUP4"
},
{
"begin": 28,
"end": 32,
"name": "PUSH",
"value": "20"
},
{
"begin": 12,
"end": 26,
"name": "DUP3"
},
{
"begin": 8,
"end": 33,
"name": "ADD"
},
{
"begin": 5,
"end": 45,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "40"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 58,
"end": 59,
"name": "PUSH",
"value": "0"
},
{
"begin": 55,
"end": 56,
"name": "DUP1"
},
{
"begin": 48,
"end": 60,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "40"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "CALLDATALOAD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 100,
"end": 109,
"name": "DUP5"
},
{
"begin": 95,
"end": 96,
"name": "PUSH",
"value": "1"
},
{
"begin": 81,
"end": 93,
"name": "DUP4"
},
{
"begin": 77,
"end": 97,
"name": "MUL"
},
{
"begin": 67,
"end": 75,
"name": "DUP5"
},
{
"begin": 63,
"end": 98,
"name": "ADD"
},
{
"begin": 60,
"end": 110,
"name": "GT"
},
{
"begin": 39,
"end": 50,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 25,
"end": 37,
"name": "DUP4"
},
{
"begin": 22,
"end": 51,
"name": "GT"
},
{
"begin": 11,
"end": 118,
"name": "OR"
},
{
"begin": 8,
"end": 10,
"name": "ISZERO"
},
{
"begin": 8,
"end": 10,
"name": "PUSH [tag]",
"value": "41"
},
{
"begin": 8,
"end": 10,
"name": "JUMPI"
},
{
"begin": 131,
"end": 132,
"name": "PUSH",
"value": "0"
},
{
"begin": 128,
"end": 129,
"name": "DUP1"
},
{
"begin": 121,
"end": 133,
"name": "REVERT"
},
{
"begin": 8,
"end": 10,
"name": "tag",
"value": "41"
},
{
"begin": 8,
"end": 10,
"name": "JUMPDEST"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "1F"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "DIV"
},
{
"begin": 967,
"end": 1297,
"name": "MUL"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "40"
},
{
"begin": 967,
"end": 1297,
"name": "MLOAD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP2"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "40"
},
{
"begin": 967,
"end": 1297,
"name": "MSTORE"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP4"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP3"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP2"
},
{
"begin": 967,
"end": 1297,
"name": "DUP2"
},
{
"begin": 967,
"end": 1297,
"name": "MSTORE"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "DUP4"
},
{
"begin": 967,
"end": 1297,
"name": "DUP4"
},
{
"begin": 30,
"end": 33,
"name": "DUP1"
},
{
"begin": 22,
"end": 28,
"name": "DUP3"
},
{
"begin": 14,
"end": 20,
"name": "DUP5"
},
{
"begin": 1,
"end": 34,
"name": "CALLDATACOPY"
},
{
"begin": 99,
"end": 100,
"name": "PUSH",
"value": "0"
},
{
"begin": 93,
"end": 96,
"name": "DUP2"
},
{
"begin": 85,
"end": 91,
"name": "DUP5"
},
{
"begin": 81,
"end": 97,
"name": "ADD"
},
{
"begin": 74,
"end": 101,
"name": "MSTORE"
},
{
"begin": 137,
"end": 141,
"name": "PUSH",
"value": "1F"
},
{
"begin": 133,
"end": 142,
"name": "NOT"
},
{
"begin": 126,
"end": 130,
"name": "PUSH",
"value": "1F"
},
{
"begin": 121,
"end": 124,
"name": "DUP3"
},
{
"begin": 117,
"end": 131,
"name": "ADD"
},
{
"begin": 113,
"end": 143,
"name": "AND"
},
{
"begin": 106,
"end": 143,
"name": "SWAP1"
},
{
"begin": 106,
"end": 143,
"name": "POP"
},
{
"begin": 169,
"end": 172,
"name": "DUP1"
},
{
"begin": 161,
"end": 167,
"name": "DUP4"
},
{
"begin": 157,
"end": 173,
"name": "ADD"
},
{
"begin": 147,
"end": 173,
"name": "SWAP3"
},
{
"begin": 147,
"end": 173,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP3"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP3"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "CALLDATALOAD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 21,
"end": 32,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 8,
"end": 19,
"name": "DUP2"
},
{
"begin": 5,
"end": 33,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "42"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 46,
"end": 47,
"name": "PUSH",
"value": "0"
},
{
"begin": 43,
"end": 44,
"name": "DUP1"
},
{
"begin": 36,
"end": 48,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "42"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 967,
"end": 1297,
"name": "DUP3"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 35,
"end": 44,
"name": "DUP4"
},
{
"begin": 28,
"end": 32,
"name": "PUSH",
"value": "20"
},
{
"begin": 12,
"end": 26,
"name": "DUP3"
},
{
"begin": 8,
"end": 33,
"name": "ADD"
},
{
"begin": 5,
"end": 45,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "43"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 58,
"end": 59,
"name": "PUSH",
"value": "0"
},
{
"begin": 55,
"end": 56,
"name": "DUP1"
},
{
"begin": 48,
"end": 60,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "43"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "CALLDATALOAD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 100,
"end": 109,
"name": "DUP5"
},
{
"begin": 95,
"end": 96,
"name": "PUSH",
"value": "1"
},
{
"begin": 81,
"end": 93,
"name": "DUP4"
},
{
"begin": 77,
"end": 97,
"name": "MUL"
},
{
"begin": 67,
"end": 75,
"name": "DUP5"
},
{
"begin": 63,
"end": 98,
"name": "ADD"
},
{
"begin": 60,
"end": 110,
"name": "GT"
},
{
"begin": 39,
"end": 50,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 25,
"end": 37,
"name": "DUP4"
},
{
"begin": 22,
"end": 51,
"name": "GT"
},
{
"begin": 11,
"end": 118,
"name": "OR"
},
{
"begin": 8,
"end": 10,
"name": "ISZERO"
},
{
"begin": 8,
"end": 10,
"name": "PUSH [tag]",
"value": "44"
},
{
"begin": 8,
"end": 10,
"name": "JUMPI"
},
{
"begin": 131,
"end": 132,
"name": "PUSH",
"value": "0"
},
{
"begin": 128,
"end": 129,
"name": "DUP1"
},
{
"begin": 121,
"end": 133,
"name": "REVERT"
},
{
"begin": 8,
"end": 10,
"name": "tag",
"value": "44"
},
{
"begin": 8,
"end": 10,
"name": "JUMPDEST"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "1F"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "DIV"
},
{
"begin": 967,
"end": 1297,
"name": "MUL"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "40"
},
{
"begin": 967,
"end": 1297,
"name": "MLOAD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP2"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "40"
},
{
"begin": 967,
"end": 1297,
"name": "MSTORE"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP4"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP3"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP2"
},
{
"begin": 967,
"end": 1297,
"name": "DUP2"
},
{
"begin": 967,
"end": 1297,
"name": "MSTORE"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "DUP4"
},
{
"begin": 967,
"end": 1297,
"name": "DUP4"
},
{
"begin": 30,
"end": 33,
"name": "DUP1"
},
{
"begin": 22,
"end": 28,
"name": "DUP3"
},
{
"begin": 14,
"end": 20,
"name": "DUP5"
},
{
"begin": 1,
"end": 34,
"name": "CALLDATACOPY"
},
{
"begin": 99,
"end": 100,
"name": "PUSH",
"value": "0"
},
{
"begin": 93,
"end": 96,
"name": "DUP2"
},
{
"begin": 85,
"end": 91,
"name": "DUP5"
},
{
"begin": 81,
"end": 97,
"name": "ADD"
},
{
"begin": 74,
"end": 101,
"name": "MSTORE"
},
{
"begin": 137,
"end": 141,
"name": "PUSH",
"value": "1F"
},
{
"begin": 133,
"end": 142,
"name": "NOT"
},
{
"begin": 126,
"end": 130,
"name": "PUSH",
"value": "1F"
},
{
"begin": 121,
"end": 124,
"name": "DUP3"
},
{
"begin": 117,
"end": 131,
"name": "ADD"
},
{
"begin": 113,
"end": 143,
"name": "AND"
},
{
"begin": 106,
"end": 143,
"name": "SWAP1"
},
{
"begin": 106,
"end": 143,
"name": "POP"
},
{
"begin": 169,
"end": 172,
"name": "DUP1"
},
{
"begin": 161,
"end": 167,
"name": "DUP4"
},
{
"begin": 157,
"end": 173,
"name": "ADD"
},
{
"begin": 147,
"end": 173,
"name": "SWAP3"
},
{
"begin": 147,
"end": 173,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP3"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP3"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH [tag]",
"value": "45"
},
{
"begin": 967,
"end": 1297,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 967,
"end": 1297,
"name": "tag",
"value": "37"
},
{
"begin": 967,
"end": 1297,
"name": "JUMPDEST"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "40"
},
{
"begin": 967,
"end": 1297,
"name": "MLOAD"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "DUP3"
},
{
"begin": 967,
"end": 1297,
"name": "ISZERO"
},
{
"begin": 967,
"end": 1297,
"name": "ISZERO"
},
{
"begin": 967,
"end": 1297,
"name": "ISZERO"
},
{
"begin": 967,
"end": 1297,
"name": "ISZERO"
},
{
"begin": 967,
"end": 1297,
"name": "DUP2"
},
{
"begin": 967,
"end": 1297,
"name": "MSTORE"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "20"
},
{
"begin": 967,
"end": 1297,
"name": "ADD"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "PUSH",
"value": "40"
},
{
"begin": 967,
"end": 1297,
"name": "MLOAD"
},
{
"begin": 967,
"end": 1297,
"name": "DUP1"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "SUB"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP1"
},
{
"begin": 967,
"end": 1297,
"name": "RETURN"
},
{
"begin": 1751,
"end": 2306,
"name": "tag",
"value": "9"
},
{
"begin": 1751,
"end": 2306,
"name": "JUMPDEST"
},
{
"begin": 1807,
"end": 1820,
"name": "PUSH",
"value": "60"
},
{
"begin": 1853,
"end": 1858,
"name": "PUSH",
"value": "1"
},
{
"begin": 1853,
"end": 1858,
"name": "SLOAD"
},
{
"begin": 1841,
"end": 1851,
"name": "DUP3"
},
{
"begin": 1841,
"end": 1858,
"name": "GT"
},
{
"begin": 1841,
"end": 1858,
"name": "ISZERO"
},
{
"begin": 1833,
"end": 1859,
"name": "PUSH [tag]",
"value": "47"
},
{
"begin": 1833,
"end": 1859,
"name": "JUMPI"
},
{
"begin": 1833,
"end": 1859,
"name": "PUSH",
"value": "0"
},
{
"begin": 1833,
"end": 1859,
"name": "DUP1"
},
{
"begin": 1833,
"end": 1859,
"name": "REVERT"
},
{
"begin": 1833,
"end": 1859,
"name": "tag",
"value": "47"
},
{
"begin": 1833,
"end": 1859,
"name": "JUMPDEST"
},
{
"begin": 1869,
"end": 1889,
"name": "PUSH",
"value": "60"
},
{
"begin": 1869,
"end": 1906,
"name": "PUSH",
"value": "40"
},
{
"begin": 1869,
"end": 1906,
"name": "MLOAD"
},
{
"begin": 1869,
"end": 1906,
"name": "DUP1"
},
{
"begin": 1869,
"end": 1906,
"name": "PUSH",
"value": "40"
},
{
"begin": 1869,
"end": 1906,
"name": "ADD"
},
{
"begin": 1869,
"end": 1906,
"name": "PUSH",
"value": "40"
},
{
"begin": 1869,
"end": 1906,
"name": "MSTORE"
},
{
"begin": 1869,
"end": 1906,
"name": "DUP1"
},
{
"begin": 1869,
"end": 1906,
"name": "PUSH",
"value": "E"
},
{
"begin": 1869,
"end": 1906,
"name": "DUP2"
},
{
"begin": 1869,
"end": 1906,
"name": "MSTORE"
},
{
"begin": 1869,
"end": 1906,
"name": "PUSH",
"value": "20"
},
{
"begin": 1869,
"end": 1906,
"name": "ADD"
},
{
"begin": 1869,
"end": 1906,
"name": "PUSH",
"value": "50726F64756374204E616D653A20000000000000000000000000000000000000"
},
{
"begin": 1869,
"end": 1906,
"name": "DUP2"
},
{
"begin": 1869,
"end": 1906,
"name": "MSTORE"
},
{
"begin": 1869,
"end": 1906,
"name": "POP"
},
{
"begin": 1869,
"end": 1906,
"name": "SWAP1"
},
{
"begin": 1869,
"end": 1906,
"name": "POP"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH [tag]",
"value": "48"
},
{
"begin": 1930,
"end": 1936,
"name": "DUP2"
},
{
"begin": 1938,
"end": 1949,
"name": "PUSH",
"value": "0"
},
{
"begin": 1938,
"end": 1961,
"name": "DUP1"
},
{
"begin": 1950,
"end": 1960,
"name": "DUP7"
},
{
"begin": 1938,
"end": 1961,
"name": "DUP2"
},
{
"begin": 1938,
"end": 1961,
"name": "MSTORE"
},
{
"begin": 1938,
"end": 1961,
"name": "PUSH",
"value": "20"
},
{
"begin": 1938,
"end": 1961,
"name": "ADD"
},
{
"begin": 1938,
"end": 1961,
"name": "SWAP1"
},
{
"begin": 1938,
"end": 1961,
"name": "DUP2"
},
{
"begin": 1938,
"end": 1961,
"name": "MSTORE"
},
{
"begin": 1938,
"end": 1961,
"name": "PUSH",
"value": "20"
},
{
"begin": 1938,
"end": 1961,
"name": "ADD"
},
{
"begin": 1938,
"end": 1961,
"name": "PUSH",
"value": "0"
},
{
"begin": 1938,
"end": 1961,
"name": "KECCAK256"
},
{
"begin": 1938,
"end": 1973,
"name": "PUSH",
"value": "1"
},
{
"begin": 1938,
"end": 1973,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP1"
},
{
"begin": 1923,
"end": 1974,
"name": "SLOAD"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "1"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP2"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "1"
},
{
"begin": 1923,
"end": 1974,
"name": "AND"
},
{
"begin": 1923,
"end": 1974,
"name": "ISZERO"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "100"
},
{
"begin": 1923,
"end": 1974,
"name": "MUL"
},
{
"begin": 1923,
"end": 1974,
"name": "SUB"
},
{
"begin": 1923,
"end": 1974,
"name": "AND"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "2"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1923,
"end": 1974,
"name": "DIV"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP1"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1923,
"end": 1974,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "20"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP1"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP2"
},
{
"begin": 1923,
"end": 1974,
"name": "DIV"
},
{
"begin": 1923,
"end": 1974,
"name": "MUL"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "20"
},
{
"begin": 1923,
"end": 1974,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "40"
},
{
"begin": 1923,
"end": 1974,
"name": "MLOAD"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP2"
},
{
"begin": 1923,
"end": 1974,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "40"
},
{
"begin": 1923,
"end": 1974,
"name": "MSTORE"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP1"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP3"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP2"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP2"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP2"
},
{
"begin": 1923,
"end": 1974,
"name": "MSTORE"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "20"
},
{
"begin": 1923,
"end": 1974,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP3"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP1"
},
{
"begin": 1923,
"end": 1974,
"name": "SLOAD"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "1"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP2"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "1"
},
{
"begin": 1923,
"end": 1974,
"name": "AND"
},
{
"begin": 1923,
"end": 1974,
"name": "ISZERO"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "100"
},
{
"begin": 1923,
"end": 1974,
"name": "MUL"
},
{
"begin": 1923,
"end": 1974,
"name": "SUB"
},
{
"begin": 1923,
"end": 1974,
"name": "AND"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "2"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1923,
"end": 1974,
"name": "DIV"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP1"
},
{
"begin": 1923,
"end": 1974,
"name": "ISZERO"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH [tag]",
"value": "49"
},
{
"begin": 1923,
"end": 1974,
"name": "JUMPI"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP1"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1923,
"end": 1974,
"name": "LT"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH [tag]",
"value": "50"
},
{
"begin": 1923,
"end": 1974,
"name": "JUMPI"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "100"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP1"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP4"
},
{
"begin": 1923,
"end": 1974,
"name": "SLOAD"
},
{
"begin": 1923,
"end": 1974,
"name": "DIV"
},
{
"begin": 1923,
"end": 1974,
"name": "MUL"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP4"
},
{
"begin": 1923,
"end": 1974,
"name": "MSTORE"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP2"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "20"
},
{
"begin": 1923,
"end": 1974,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP2"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH [tag]",
"value": "49"
},
{
"begin": 1923,
"end": 1974,
"name": "JUMP"
},
{
"begin": 1923,
"end": 1974,
"name": "tag",
"value": "50"
},
{
"begin": 1923,
"end": 1974,
"name": "JUMPDEST"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP3"
},
{
"begin": 1923,
"end": 1974,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP2"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "0"
},
{
"begin": 1923,
"end": 1974,
"name": "MSTORE"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "20"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "0"
},
{
"begin": 1923,
"end": 1974,
"name": "KECCAK256"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1923,
"end": 1974,
"name": "tag",
"value": "51"
},
{
"begin": 1923,
"end": 1974,
"name": "JUMPDEST"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP2"
},
{
"begin": 1923,
"end": 1974,
"name": "SLOAD"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP2"
},
{
"begin": 1923,
"end": 1974,
"name": "MSTORE"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "1"
},
{
"begin": 1923,
"end": 1974,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "20"
},
{
"begin": 1923,
"end": 1974,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP1"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP4"
},
{
"begin": 1923,
"end": 1974,
"name": "GT"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH [tag]",
"value": "51"
},
{
"begin": 1923,
"end": 1974,
"name": "JUMPI"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP3"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1923,
"end": 1974,
"name": "SUB"
},
{
"begin": 1923,
"end": 1974,
"name": "PUSH",
"value": "1F"
},
{
"begin": 1923,
"end": 1974,
"name": "AND"
},
{
"begin": 1923,
"end": 1974,
"name": "DUP3"
},
{
"begin": 1923,
"end": 1974,
"name": "ADD"
},
{
"begin": 1923,
"end": 1974,
"name": "SWAP2"
},
{
"begin": 1923,
"end": 1974,
"name": "tag",
"value": "49"
},
{
"begin": 1923,
"end": 1974,
"name": "JUMPDEST"
},
{
"begin": 1923,
"end": 1974,
"name": "POP"
},
{
"begin": 1923,
"end": 1974,
"name": "POP"
},
{
"begin": 1923,
"end": 1974,
"name": "POP"
},
{
"begin": 1923,
"end": 1974,
"name": "POP"
},
{
"begin": 1923,
"end": 1974,
"name": "POP"
},
{
"begin": 1923,
"end": 1929,
"name": "PUSH [tag]",
"value": "32"
},
{
"begin": 1923,
"end": 1974,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1923,
"end": 1974,
"name": "tag",
"value": "48"
},
{
"begin": 1923,
"end": 1974,
"name": "JUMPDEST"
},
{
"begin": 1916,
"end": 1974,
"name": "SWAP1"
},
{
"begin": 1916,
"end": 1974,
"name": "POP"
},
{
"begin": 1991,
"end": 2031,
"name": "PUSH [tag]",
"value": "52"
},
{
"begin": 1998,
"end": 2004,
"name": "DUP2"
},
{
"begin": 1991,
"end": 2031,
"name": "PUSH",
"value": "40"
},
{
"begin": 1991,
"end": 2031,
"name": "MLOAD"
},
{
"begin": 1991,
"end": 2031,
"name": "DUP1"
},
{
"begin": 1991,
"end": 2031,
"name": "PUSH",
"value": "40"
},
{
"begin": 1991,
"end": 2031,
"name": "ADD"
},
{
"begin": 1991,
"end": 2031,
"name": "PUSH",
"value": "40"
},
{
"begin": 1991,
"end": 2031,
"name": "MSTORE"
},
{
"begin": 1991,
"end": 2031,
"name": "DUP1"
},
{
"begin": 1991,
"end": 2031,
"name": "PUSH",
"value": "16"
},
{
"begin": 1991,
"end": 2031,
"name": "DUP2"
},
{
"begin": 1991,
"end": 2031,
"name": "MSTORE"
},
{
"begin": 1991,
"end": 2031,
"name": "PUSH",
"value": "20"
},
{
"begin": 1991,
"end": 2031,
"name": "ADD"
},
{
"begin": 1991,
"end": 2031,
"name": "PUSH",
"value": "3C62723E4D616E756661637475726520446174653A2000000000000000000000"
},
{
"begin": 1991,
"end": 2031,
"name": "DUP2"
},
{
"begin": 1991,
"end": 2031,
"name": "MSTORE"
},
{
"begin": 1991,
"end": 2031,
"name": "POP"
},
{
"begin": 1991,
"end": 1997,
"name": "PUSH [tag]",
"value": "32"
},
{
"begin": 1991,
"end": 2031,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1991,
"end": 2031,
"name": "tag",
"value": "52"
},
{
"begin": 1991,
"end": 2031,
"name": "JUMPDEST"
},
{
"begin": 1984,
"end": 2031,
"name": "SWAP1"
},
{
"begin": 1984,
"end": 2031,
"name": "POP"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH [tag]",
"value": "53"
},
{
"begin": 2055,
"end": 2061,
"name": "DUP2"
},
{
"begin": 2063,
"end": 2074,
"name": "PUSH",
"value": "0"
},
{
"begin": 2063,
"end": 2086,
"name": "DUP1"
},
{
"begin": 2075,
"end": 2085,
"name": "DUP7"
},
{
"begin": 2063,
"end": 2086,
"name": "DUP2"
},
{
"begin": 2063,
"end": 2086,
"name": "MSTORE"
},
{
"begin": 2063,
"end": 2086,
"name": "PUSH",
"value": "20"
},
{
"begin": 2063,
"end": 2086,
"name": "ADD"
},
{
"begin": 2063,
"end": 2086,
"name": "SWAP1"
},
{
"begin": 2063,
"end": 2086,
"name": "DUP2"
},
{
"begin": 2063,
"end": 2086,
"name": "MSTORE"
},
{
"begin": 2063,
"end": 2086,
"name": "PUSH",
"value": "20"
},
{
"begin": 2063,
"end": 2086,
"name": "ADD"
},
{
"begin": 2063,
"end": 2086,
"name": "PUSH",
"value": "0"
},
{
"begin": 2063,
"end": 2086,
"name": "KECCAK256"
},
{
"begin": 2063,
"end": 2091,
"name": "PUSH",
"value": "3"
},
{
"begin": 2063,
"end": 2091,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP1"
},
{
"begin": 2048,
"end": 2092,
"name": "SLOAD"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "1"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP2"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "1"
},
{
"begin": 2048,
"end": 2092,
"name": "AND"
},
{
"begin": 2048,
"end": 2092,
"name": "ISZERO"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "100"
},
{
"begin": 2048,
"end": 2092,
"name": "MUL"
},
{
"begin": 2048,
"end": 2092,
"name": "SUB"
},
{
"begin": 2048,
"end": 2092,
"name": "AND"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "2"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2048,
"end": 2092,
"name": "DIV"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP1"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "1F"
},
{
"begin": 2048,
"end": 2092,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "20"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP1"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP2"
},
{
"begin": 2048,
"end": 2092,
"name": "DIV"
},
{
"begin": 2048,
"end": 2092,
"name": "MUL"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "20"
},
{
"begin": 2048,
"end": 2092,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "40"
},
{
"begin": 2048,
"end": 2092,
"name": "MLOAD"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP2"
},
{
"begin": 2048,
"end": 2092,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "40"
},
{
"begin": 2048,
"end": 2092,
"name": "MSTORE"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP1"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP3"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP2"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP2"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP2"
},
{
"begin": 2048,
"end": 2092,
"name": "MSTORE"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "20"
},
{
"begin": 2048,
"end": 2092,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP3"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP1"
},
{
"begin": 2048,
"end": 2092,
"name": "SLOAD"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "1"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP2"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "1"
},
{
"begin": 2048,
"end": 2092,
"name": "AND"
},
{
"begin": 2048,
"end": 2092,
"name": "ISZERO"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "100"
},
{
"begin": 2048,
"end": 2092,
"name": "MUL"
},
{
"begin": 2048,
"end": 2092,
"name": "SUB"
},
{
"begin": 2048,
"end": 2092,
"name": "AND"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "2"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2048,
"end": 2092,
"name": "DIV"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP1"
},
{
"begin": 2048,
"end": 2092,
"name": "ISZERO"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH [tag]",
"value": "54"
},
{
"begin": 2048,
"end": 2092,
"name": "JUMPI"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP1"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "1F"
},
{
"begin": 2048,
"end": 2092,
"name": "LT"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH [tag]",
"value": "55"
},
{
"begin": 2048,
"end": 2092,
"name": "JUMPI"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "100"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP1"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP4"
},
{
"begin": 2048,
"end": 2092,
"name": "SLOAD"
},
{
"begin": 2048,
"end": 2092,
"name": "DIV"
},
{
"begin": 2048,
"end": 2092,
"name": "MUL"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP4"
},
{
"begin": 2048,
"end": 2092,
"name": "MSTORE"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP2"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "20"
},
{
"begin": 2048,
"end": 2092,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP2"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH [tag]",
"value": "54"
},
{
"begin": 2048,
"end": 2092,
"name": "JUMP"
},
{
"begin": 2048,
"end": 2092,
"name": "tag",
"value": "55"
},
{
"begin": 2048,
"end": 2092,
"name": "JUMPDEST"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP3"
},
{
"begin": 2048,
"end": 2092,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP2"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "0"
},
{
"begin": 2048,
"end": 2092,
"name": "MSTORE"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "20"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "0"
},
{
"begin": 2048,
"end": 2092,
"name": "KECCAK256"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2048,
"end": 2092,
"name": "tag",
"value": "56"
},
{
"begin": 2048,
"end": 2092,
"name": "JUMPDEST"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP2"
},
{
"begin": 2048,
"end": 2092,
"name": "SLOAD"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP2"
},
{
"begin": 2048,
"end": 2092,
"name": "MSTORE"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "1"
},
{
"begin": 2048,
"end": 2092,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "20"
},
{
"begin": 2048,
"end": 2092,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP1"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP4"
},
{
"begin": 2048,
"end": 2092,
"name": "GT"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH [tag]",
"value": "56"
},
{
"begin": 2048,
"end": 2092,
"name": "JUMPI"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP3"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2048,
"end": 2092,
"name": "SUB"
},
{
"begin": 2048,
"end": 2092,
"name": "PUSH",
"value": "1F"
},
{
"begin": 2048,
"end": 2092,
"name": "AND"
},
{
"begin": 2048,
"end": 2092,
"name": "DUP3"
},
{
"begin": 2048,
"end": 2092,
"name": "ADD"
},
{
"begin": 2048,
"end": 2092,
"name": "SWAP2"
},
{
"begin": 2048,
"end": 2092,
"name": "tag",
"value": "54"
},
{
"begin": 2048,
"end": 2092,
"name": "JUMPDEST"
},
{
"begin": 2048,
"end": 2092,
"name": "POP"
},
{
"begin": 2048,
"end": 2092,
"name": "POP"
},
{
"begin": 2048,
"end": 2092,
"name": "POP"
},
{
"begin": 2048,
"end": 2092,
"name": "POP"
},
{
"begin": 2048,
"end": 2092,
"name": "POP"
},
{
"begin": 2048,
"end": 2054,
"name": "PUSH [tag]",
"value": "32"
},
{
"begin": 2048,
"end": 2092,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 2048,
"end": 2092,
"name": "tag",
"value": "53"
},
{
"begin": 2048,
"end": 2092,
"name": "JUMPDEST"
},
{
"begin": 2041,
"end": 2092,
"name": "SWAP1"
},
{
"begin": 2041,
"end": 2092,
"name": "POP"
},
{
"begin": 2116,
"end": 2125,
"name": "PUSH",
"value": "0"
},
{
"begin": 2126,
"end": 2127,
"name": "DUP1"
},
{
"begin": 2116,
"end": 2127,
"name": "SWAP1"
},
{
"begin": 2116,
"end": 2127,
"name": "POP"
},
{
"begin": 2111,
"end": 2268,
"name": "tag",
"value": "57"
},
{
"begin": 2111,
"end": 2268,
"name": "JUMPDEST"
},
{
"begin": 2131,
"end": 2142,
"name": "PUSH",
"value": "0"
},
{
"begin": 2131,
"end": 2154,
"name": "DUP1"
},
{
"begin": 2143,
"end": 2153,
"name": "DUP6"
},
{
"begin": 2131,
"end": 2154,
"name": "DUP2"
},
{
"begin": 2131,
"end": 2154,
"name": "MSTORE"
},
{
"begin": 2131,
"end": 2154,
"name": "PUSH",
"value": "20"
},
{
"begin": 2131,
"end": 2154,
"name": "ADD"
},
{
"begin": 2131,
"end": 2154,
"name": "SWAP1"
},
{
"begin": 2131,
"end": 2154,
"name": "DUP2"
},
{
"begin": 2131,
"end": 2154,
"name": "MSTORE"
},
{
"begin": 2131,
"end": 2154,
"name": "PUSH",
"value": "20"
},
{
"begin": 2131,
"end": 2154,
"name": "ADD"
},
{
"begin": 2131,
"end": 2154,
"name": "PUSH",
"value": "0"
},
{
"begin": 2131,
"end": 2154,
"name": "KECCAK256"
},
{
"begin": 2131,
"end": 2166,
"name": "PUSH",
"value": "4"
},
{
"begin": 2131,
"end": 2166,
"name": "ADD"
},
{
"begin": 2131,
"end": 2166,
"name": "SLOAD"
},
{
"begin": 2129,
"end": 2130,
"name": "DUP2"
},
{
"begin": 2129,
"end": 2166,
"name": "LT"
},
{
"begin": 2111,
"end": 2268,
"name": "ISZERO"
},
{
"begin": 2111,
"end": 2268,
"name": "PUSH [tag]",
"value": "58"
},
{
"begin": 2111,
"end": 2268,
"name": "JUMPI"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH [tag]",
"value": "60"
},
{
"begin": 2200,
"end": 2206,
"name": "DUP3"
},
{
"begin": 2208,
"end": 2219,
"name": "PUSH",
"value": "0"
},
{
"begin": 2208,
"end": 2231,
"name": "DUP1"
},
{
"begin": 2220,
"end": 2230,
"name": "DUP8"
},
{
"begin": 2208,
"end": 2231,
"name": "DUP2"
},
{
"begin": 2208,
"end": 2231,
"name": "MSTORE"
},
{
"begin": 2208,
"end": 2231,
"name": "PUSH",
"value": "20"
},
{
"begin": 2208,
"end": 2231,
"name": "ADD"
},
{
"begin": 2208,
"end": 2231,
"name": "SWAP1"
},
{
"begin": 2208,
"end": 2231,
"name": "DUP2"
},
{
"begin": 2208,
"end": 2231,
"name": "MSTORE"
},
{
"begin": 2208,
"end": 2231,
"name": "PUSH",
"value": "20"
},
{
"begin": 2208,
"end": 2231,
"name": "ADD"
},
{
"begin": 2208,
"end": 2231,
"name": "PUSH",
"value": "0"
},
{
"begin": 2208,
"end": 2231,
"name": "KECCAK256"
},
{
"begin": 2208,
"end": 2241,
"name": "PUSH",
"value": "5"
},
{
"begin": 2208,
"end": 2241,
"name": "ADD"
},
{
"begin": 2208,
"end": 2244,
"name": "PUSH",
"value": "0"
},
{
"begin": 2242,
"end": 2243,
"name": "DUP5"
},
{
"begin": 2208,
"end": 2244,
"name": "DUP2"
},
{
"begin": 2208,
"end": 2244,
"name": "MSTORE"
},
{
"begin": 2208,
"end": 2244,
"name": "PUSH",
"value": "20"
},
{
"begin": 2208,
"end": 2244,
"name": "ADD"
},
{
"begin": 2208,
"end": 2244,
"name": "SWAP1"
},
{
"begin": 2208,
"end": 2244,
"name": "DUP2"
},
{
"begin": 2208,
"end": 2244,
"name": "MSTORE"
},
{
"begin": 2208,
"end": 2244,
"name": "PUSH",
"value": "20"
},
{
"begin": 2208,
"end": 2244,
"name": "ADD"
},
{
"begin": 2208,
"end": 2244,
"name": "PUSH",
"value": "0"
},
{
"begin": 2208,
"end": 2244,
"name": "KECCAK256"
},
{
"begin": 2208,
"end": 2256,
"name": "PUSH",
"value": "0"
},
{
"begin": 2208,
"end": 2256,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP1"
},
{
"begin": 2193,
"end": 2257,
"name": "SLOAD"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "1"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP2"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "1"
},
{
"begin": 2193,
"end": 2257,
"name": "AND"
},
{
"begin": 2193,
"end": 2257,
"name": "ISZERO"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "100"
},
{
"begin": 2193,
"end": 2257,
"name": "MUL"
},
{
"begin": 2193,
"end": 2257,
"name": "SUB"
},
{
"begin": 2193,
"end": 2257,
"name": "AND"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "2"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP1"
},
{
"begin": 2193,
"end": 2257,
"name": "DIV"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP1"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "1F"
},
{
"begin": 2193,
"end": 2257,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "20"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP1"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP2"
},
{
"begin": 2193,
"end": 2257,
"name": "DIV"
},
{
"begin": 2193,
"end": 2257,
"name": "MUL"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "20"
},
{
"begin": 2193,
"end": 2257,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "40"
},
{
"begin": 2193,
"end": 2257,
"name": "MLOAD"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP1"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP2"
},
{
"begin": 2193,
"end": 2257,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "40"
},
{
"begin": 2193,
"end": 2257,
"name": "MSTORE"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP1"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP3"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP2"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP1"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP2"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP2"
},
{
"begin": 2193,
"end": 2257,
"name": "MSTORE"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "20"
},
{
"begin": 2193,
"end": 2257,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP3"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP1"
},
{
"begin": 2193,
"end": 2257,
"name": "SLOAD"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "1"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP2"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "1"
},
{
"begin": 2193,
"end": 2257,
"name": "AND"
},
{
"begin": 2193,
"end": 2257,
"name": "ISZERO"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "100"
},
{
"begin": 2193,
"end": 2257,
"name": "MUL"
},
{
"begin": 2193,
"end": 2257,
"name": "SUB"
},
{
"begin": 2193,
"end": 2257,
"name": "AND"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "2"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP1"
},
{
"begin": 2193,
"end": 2257,
"name": "DIV"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP1"
},
{
"begin": 2193,
"end": 2257,
"name": "ISZERO"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH [tag]",
"value": "61"
},
{
"begin": 2193,
"end": 2257,
"name": "JUMPI"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP1"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "1F"
},
{
"begin": 2193,
"end": 2257,
"name": "LT"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH [tag]",
"value": "62"
},
{
"begin": 2193,
"end": 2257,
"name": "JUMPI"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "100"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP1"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP4"
},
{
"begin": 2193,
"end": 2257,
"name": "SLOAD"
},
{
"begin": 2193,
"end": 2257,
"name": "DIV"
},
{
"begin": 2193,
"end": 2257,
"name": "MUL"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP4"
},
{
"begin": 2193,
"end": 2257,
"name": "MSTORE"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP2"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "20"
},
{
"begin": 2193,
"end": 2257,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP2"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH [tag]",
"value": "61"
},
{
"begin": 2193,
"end": 2257,
"name": "JUMP"
},
{
"begin": 2193,
"end": 2257,
"name": "tag",
"value": "62"
},
{
"begin": 2193,
"end": 2257,
"name": "JUMPDEST"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP3"
},
{
"begin": 2193,
"end": 2257,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP2"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP1"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "0"
},
{
"begin": 2193,
"end": 2257,
"name": "MSTORE"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "20"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "0"
},
{
"begin": 2193,
"end": 2257,
"name": "KECCAK256"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP1"
},
{
"begin": 2193,
"end": 2257,
"name": "tag",
"value": "63"
},
{
"begin": 2193,
"end": 2257,
"name": "JUMPDEST"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP2"
},
{
"begin": 2193,
"end": 2257,
"name": "SLOAD"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP2"
},
{
"begin": 2193,
"end": 2257,
"name": "MSTORE"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP1"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "1"
},
{
"begin": 2193,
"end": 2257,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP1"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "20"
},
{
"begin": 2193,
"end": 2257,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP1"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP4"
},
{
"begin": 2193,
"end": 2257,
"name": "GT"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH [tag]",
"value": "63"
},
{
"begin": 2193,
"end": 2257,
"name": "JUMPI"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP3"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP1"
},
{
"begin": 2193,
"end": 2257,
"name": "SUB"
},
{
"begin": 2193,
"end": 2257,
"name": "PUSH",
"value": "1F"
},
{
"begin": 2193,
"end": 2257,
"name": "AND"
},
{
"begin": 2193,
"end": 2257,
"name": "DUP3"
},
{
"begin": 2193,
"end": 2257,
"name": "ADD"
},
{
"begin": 2193,
"end": 2257,
"name": "SWAP2"
},
{
"begin": 2193,
"end": 2257,
"name": "tag",
"value": "61"
},
{
"begin": 2193,
"end": 2257,
"name": "JUMPDEST"
},
{
"begin": 2193,
"end": 2257,
"name": "POP"
},
{
"begin": 2193,
"end": 2257,
"name": "POP"
},
{
"begin": 2193,
"end": 2257,
"name": "POP"
},
{
"begin": 2193,
"end": 2257,
"name": "POP"
},
{
"begin": 2193,
"end": 2257,
"name": "POP"
},
{
"begin": 2193,
"end": 2199,
"name": "PUSH [tag]",
"value": "32"
},
{
"begin": 2193,
"end": 2257,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 2193,
"end": 2257,
"name": "tag",
"value": "60"
},
{
"begin": 2193,
"end": 2257,
"name": "JUMPDEST"
},
{
"begin": 2186,
"end": 2257,
"name": "SWAP2"
},
{
"begin": 2186,
"end": 2257,
"name": "POP"
},
{
"begin": 2168,
"end": 2171,
"name": "DUP1"
},
{
"begin": 2168,
"end": 2171,
"name": "DUP1"
},
{
"begin": 2168,
"end": 2171,
"name": "PUSH",
"value": "1"
},
{
"begin": 2168,
"end": 2171,
"name": "ADD"
},
{
"begin": 2168,
"end": 2171,
"name": "SWAP2"
},
{
"begin": 2168,
"end": 2171,
"name": "POP"
},
{
"begin": 2168,
"end": 2171,
"name": "POP"
},
{
"begin": 2111,
"end": 2268,
"name": "PUSH [tag]",
"value": "57"
},
{
"begin": 2111,
"end": 2268,
"name": "JUMP"
},
{
"begin": 2111,
"end": 2268,
"name": "tag",
"value": "58"
},
{
"begin": 2111,
"end": 2268,
"name": "JUMPDEST"
},
{
"begin": 2111,
"end": 2268,
"name": "POP"
},
{
"begin": 2284,
"end": 2290,
"name": "DUP1"
},
{
"begin": 2277,
"end": 2290,
"name": "SWAP2"
},
{
"begin": 2277,
"end": 2290,
"name": "POP"
},
{
"begin": 2277,
"end": 2290,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP2"
},
{
"begin": 1751,
"end": 2306,
"name": "SWAP1"
},
{
"begin": 1751,
"end": 2306,
"name": "POP"
},
{
"begin": 1751,
"end": 2306,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 1307,
"end": 1741,
"name": "tag",
"value": "19"
},
{
"begin": 1307,
"end": 1741,
"name": "JUMPDEST"
},
{
"begin": 1378,
"end": 1391,
"name": "PUSH",
"value": "60"
},
{
"begin": 1423,
"end": 1428,
"name": "PUSH",
"value": "1"
},
{
"begin": 1423,
"end": 1428,
"name": "SLOAD"
},
{
"begin": 1411,
"end": 1421,
"name": "DUP4"
},
{
"begin": 1411,
"end": 1428,
"name": "GT"
},
{
"begin": 1411,
"end": 1428,
"name": "ISZERO"
},
{
"begin": 1403,
"end": 1429,
"name": "PUSH [tag]",
"value": "65"
},
{
"begin": 1403,
"end": 1429,
"name": "JUMPI"
},
{
"begin": 1403,
"end": 1429,
"name": "PUSH",
"value": "0"
},
{
"begin": 1403,
"end": 1429,
"name": "DUP1"
},
{
"begin": 1403,
"end": 1429,
"name": "REVERT"
},
{
"begin": 1403,
"end": 1429,
"name": "tag",
"value": "65"
},
{
"begin": 1403,
"end": 1429,
"name": "JUMPDEST"
},
{
"begin": 1448,
"end": 1469,
"name": "PUSH [tag]",
"value": "66"
},
{
"begin": 1448,
"end": 1469,
"name": "PUSH [tag]",
"value": "67"
},
{
"begin": 1448,
"end": 1469,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1448,
"end": 1469,
"name": "tag",
"value": "66"
},
{
"begin": 1448,
"end": 1469,
"name": "JUMPDEST"
},
{
"begin": 1472,
"end": 1518,
"name": "PUSH",
"value": "40"
},
{
"begin": 1472,
"end": 1518,
"name": "MLOAD"
},
{
"begin": 1472,
"end": 1518,
"name": "DUP1"
},
{
"begin": 1472,
"end": 1518,
"name": "PUSH",
"value": "40"
},
{
"begin": 1472,
"end": 1518,
"name": "ADD"
},
{
"begin": 1472,
"end": 1518,
"name": "PUSH",
"value": "40"
},
{
"begin": 1472,
"end": 1518,
"name": "MSTORE"
},
{
"begin": 1472,
"end": 1518,
"name": "DUP1"
},
{
"begin": 1512,
"end": 1516,
"name": "DUP5"
},
{
"begin": 1472,
"end": 1518,
"name": "DUP2"
},
{
"begin": 1472,
"end": 1518,
"name": "MSTORE"
},
{
"begin": 1472,
"end": 1518,
"name": "PUSH",
"value": "20"
},
{
"begin": 1472,
"end": 1518,
"name": "ADD"
},
{
"begin": 1487,
"end": 1497,
"name": "CALLER"
},
{
"begin": 1472,
"end": 1518,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1472,
"end": 1518,
"name": "AND"
},
{
"begin": 1472,
"end": 1518,
"name": "DUP2"
},
{
"begin": 1472,
"end": 1518,
"name": "MSTORE"
},
{
"begin": 1472,
"end": 1518,
"name": "POP"
},
{
"begin": 1448,
"end": 1518,
"name": "SWAP1"
},
{
"begin": 1448,
"end": 1518,
"name": "POP"
},
{
"begin": 1610,
"end": 1618,
"name": "DUP1"
},
{
"begin": 1537,
"end": 1548,
"name": "PUSH",
"value": "0"
},
{
"begin": 1537,
"end": 1560,
"name": "DUP1"
},
{
"begin": 1549,
"end": 1559,
"name": "DUP7"
},
{
"begin": 1537,
"end": 1560,
"name": "DUP2"
},
{
"begin": 1537,
"end": 1560,
"name": "MSTORE"
},
{
"begin": 1537,
"end": 1560,
"name": "PUSH",
"value": "20"
},
{
"begin": 1537,
"end": 1560,
"name": "ADD"
},
{
"begin": 1537,
"end": 1560,
"name": "SWAP1"
},
{
"begin": 1537,
"end": 1560,
"name": "DUP2"
},
{
"begin": 1537,
"end": 1560,
"name": "MSTORE"
},
{
"begin": 1537,
"end": 1560,
"name": "PUSH",
"value": "20"
},
{
"begin": 1537,
"end": 1560,
"name": "ADD"
},
{
"begin": 1537,
"end": 1560,
"name": "PUSH",
"value": "0"
},
{
"begin": 1537,
"end": 1560,
"name": "KECCAK256"
},
{
"begin": 1537,
"end": 1570,
"name": "PUSH",
"value": "5"
},
{
"begin": 1537,
"end": 1570,
"name": "ADD"
},
{
"begin": 1537,
"end": 1609,
"name": "PUSH",
"value": "0"
},
{
"begin": 1572,
"end": 1583,
"name": "DUP1"
},
{
"begin": 1572,
"end": 1595,
"name": "PUSH",
"value": "0"
},
{
"begin": 1584,
"end": 1594,
"name": "DUP9"
},
{
"begin": 1572,
"end": 1595,
"name": "DUP2"
},
{
"begin": 1572,
"end": 1595,
"name": "MSTORE"
},
{
"begin": 1572,
"end": 1595,
"name": "PUSH",
"value": "20"
},
{
"begin": 1572,
"end": 1595,
"name": "ADD"
},
{
"begin": 1572,
"end": 1595,
"name": "SWAP1"
},
{
"begin": 1572,
"end": 1595,
"name": "DUP2"
},
{
"begin": 1572,
"end": 1595,
"name": "MSTORE"
},
{
"begin": 1572,
"end": 1595,
"name": "PUSH",
"value": "20"
},
{
"begin": 1572,
"end": 1595,
"name": "ADD"
},
{
"begin": 1572,
"end": 1595,
"name": "PUSH",
"value": "0"
},
{
"begin": 1572,
"end": 1595,
"name": "KECCAK256"
},
{
"begin": 1572,
"end": 1607,
"name": "PUSH",
"value": "4"
},
{
"begin": 1572,
"end": 1607,
"name": "ADD"
},
{
"begin": 1572,
"end": 1607,
"name": "SLOAD"
},
{
"begin": 1537,
"end": 1609,
"name": "DUP2"
},
{
"begin": 1537,
"end": 1609,
"name": "MSTORE"
},
{
"begin": 1537,
"end": 1609,
"name": "PUSH",
"value": "20"
},
{
"begin": 1537,
"end": 1609,
"name": "ADD"
},
{
"begin": 1537,
"end": 1609,
"name": "SWAP1"
},
{
"begin": 1537,
"end": 1609,
"name": "DUP2"
},
{
"begin": 1537,
"end": 1609,
"name": "MSTORE"
},
{
"begin": 1537,
"end": 1609,
"name": "PUSH",
"value": "20"
},
{
"begin": 1537,
"end": 1609,
"name": "ADD"
},
{
"begin": 1537,
"end": 1609,
"name": "PUSH",
"value": "0"
},
{
"begin": 1537,
"end": 1609,
"name": "KECCAK256"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH",
"value": "0"
},
{
"begin": 1537,
"end": 1618,
"name": "DUP3"
},
{
"begin": 1537,
"end": 1618,
"name": "ADD"
},
{
"begin": 1537,
"end": 1618,
"name": "MLOAD"
},
{
"begin": 1537,
"end": 1618,
"name": "DUP2"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH",
"value": "0"
},
{
"begin": 1537,
"end": 1618,
"name": "ADD"
},
{
"begin": 1537,
"end": 1618,
"name": "SWAP1"
},
{
"begin": 1537,
"end": 1618,
"name": "DUP1"
},
{
"begin": 1537,
"end": 1618,
"name": "MLOAD"
},
{
"begin": 1537,
"end": 1618,
"name": "SWAP1"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH",
"value": "20"
},
{
"begin": 1537,
"end": 1618,
"name": "ADD"
},
{
"begin": 1537,
"end": 1618,
"name": "SWAP1"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH [tag]",
"value": "68"
},
{
"begin": 1537,
"end": 1618,
"name": "SWAP3"
},
{
"begin": 1537,
"end": 1618,
"name": "SWAP2"
},
{
"begin": 1537,
"end": 1618,
"name": "SWAP1"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH [tag]",
"value": "69"
},
{
"begin": 1537,
"end": 1618,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1537,
"end": 1618,
"name": "tag",
"value": "68"
},
{
"begin": 1537,
"end": 1618,
"name": "JUMPDEST"
},
{
"begin": 1537,
"end": 1618,
"name": "POP"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH",
"value": "20"
},
{
"begin": 1537,
"end": 1618,
"name": "DUP3"
},
{
"begin": 1537,
"end": 1618,
"name": "ADD"
},
{
"begin": 1537,
"end": 1618,
"name": "MLOAD"
},
{
"begin": 1537,
"end": 1618,
"name": "DUP2"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH",
"value": "1"
},
{
"begin": 1537,
"end": 1618,
"name": "ADD"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH",
"value": "0"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH",
"value": "100"
},
{
"begin": 1537,
"end": 1618,
"name": "EXP"
},
{
"begin": 1537,
"end": 1618,
"name": "DUP2"
},
{
"begin": 1537,
"end": 1618,
"name": "SLOAD"
},
{
"begin": 1537,
"end": 1618,
"name": "DUP2"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1537,
"end": 1618,
"name": "MUL"
},
{
"begin": 1537,
"end": 1618,
"name": "NOT"
},
{
"begin": 1537,
"end": 1618,
"name": "AND"
},
{
"begin": 1537,
"end": 1618,
"name": "SWAP1"
},
{
"begin": 1537,
"end": 1618,
"name": "DUP4"
},
{
"begin": 1537,
"end": 1618,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1537,
"end": 1618,
"name": "AND"
},
{
"begin": 1537,
"end": 1618,
"name": "MUL"
},
{
"begin": 1537,
"end": 1618,
"name": "OR"
},
{
"begin": 1537,
"end": 1618,
"name": "SWAP1"
},
{
"begin": 1537,
"end": 1618,
"name": "SSTORE"
},
{
"begin": 1537,
"end": 1618,
"name": "POP"
},
{
"begin": 1537,
"end": 1618,
"name": "SWAP1"
},
{
"begin": 1537,
"end": 1618,
"name": "POP"
},
{
"begin": 1537,
"end": 1618,
"name": "POP"
},
{
"begin": 1712,
"end": 1713,
"name": "PUSH",
"value": "1"
},
{
"begin": 1675,
"end": 1686,
"name": "PUSH",
"value": "0"
},
{
"begin": 1675,
"end": 1698,
"name": "DUP1"
},
{
"begin": 1687,
"end": 1697,
"name": "DUP7"
},
{
"begin": 1675,
"end": 1698,
"name": "DUP2"
},
{
"begin": 1675,
"end": 1698,
"name": "MSTORE"
},
{
"begin": 1675,
"end": 1698,
"name": "PUSH",
"value": "20"
},
{
"begin": 1675,
"end": 1698,
"name": "ADD"
},
{
"begin": 1675,
"end": 1698,
"name": "SWAP1"
},
{
"begin": 1675,
"end": 1698,
"name": "DUP2"
},
{
"begin": 1675,
"end": 1698,
"name": "MSTORE"
},
{
"begin": 1675,
"end": 1698,
"name": "PUSH",
"value": "20"
},
{
"begin": 1675,
"end": 1698,
"name": "ADD"
},
{
"begin": 1675,
"end": 1698,
"name": "PUSH",
"value": "0"
},
{
"begin": 1675,
"end": 1698,
"name": "KECCAK256"
},
{
"begin": 1675,
"end": 1710,
"name": "PUSH",
"value": "4"
},
{
"begin": 1675,
"end": 1710,
"name": "ADD"
},
{
"begin": 1675,
"end": 1710,
"name": "SLOAD"
},
{
"begin": 1675,
"end": 1713,
"name": "ADD"
},
{
"begin": 1637,
"end": 1648,
"name": "PUSH",
"value": "0"
},
{
"begin": 1637,
"end": 1660,
"name": "DUP1"
},
{
"begin": 1649,
"end": 1659,
"name": "DUP7"
},
{
"begin": 1637,
"end": 1660,
"name": "DUP2"
},
{
"begin": 1637,
"end": 1660,
"name": "MSTORE"
},
{
"begin": 1637,
"end": 1660,
"name": "PUSH",
"value": "20"
},
{
"begin": 1637,
"end": 1660,
"name": "ADD"
},
{
"begin": 1637,
"end": 1660,
"name": "SWAP1"
},
{
"begin": 1637,
"end": 1660,
"name": "DUP2"
},
{
"begin": 1637,
"end": 1660,
"name": "MSTORE"
},
{
"begin": 1637,
"end": 1660,
"name": "PUSH",
"value": "20"
},
{
"begin": 1637,
"end": 1660,
"name": "ADD"
},
{
"begin": 1637,
"end": 1660,
"name": "PUSH",
"value": "0"
},
{
"begin": 1637,
"end": 1660,
"name": "KECCAK256"
},
{
"begin": 1637,
"end": 1672,
"name": "PUSH",
"value": "4"
},
{
"begin": 1637,
"end": 1672,
"name": "ADD"
},
{
"begin": 1637,
"end": 1713,
"name": "DUP2"
},
{
"begin": 1637,
"end": 1713,
"name": "SWAP1"
},
{
"begin": 1637,
"end": 1713,
"name": "SSTORE"
},
{
"begin": 1637,
"end": 1713,
"name": "POP"
},
{
"begin": 1730,
"end": 1734,
"name": "DUP3"
},
{
"begin": 1723,
"end": 1734,
"name": "SWAP2"
},
{
"begin": 1723,
"end": 1734,
"name": "POP"
},
{
"begin": 1723,
"end": 1734,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP3"
},
{
"begin": 1307,
"end": 1741,
"name": "SWAP2"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "POP"
},
{
"begin": 1307,
"end": 1741,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 450,
"end": 957,
"name": "tag",
"value": "32"
},
{
"begin": 450,
"end": 957,
"name": "JUMPDEST"
},
{
"begin": 518,
"end": 531,
"name": "PUSH",
"value": "60"
},
{
"begin": 542,
"end": 562,
"name": "DUP1"
},
{
"begin": 571,
"end": 573,
"name": "DUP4"
},
{
"begin": 542,
"end": 574,
"name": "SWAP1"
},
{
"begin": 542,
"end": 574,
"name": "POP"
},
{
"begin": 584,
"end": 604,
"name": "PUSH",
"value": "60"
},
{
"begin": 613,
"end": 615,
"name": "DUP4"
},
{
"begin": 584,
"end": 616,
"name": "SWAP1"
},
{
"begin": 584,
"end": 616,
"name": "POP"
},
{
"begin": 626,
"end": 649,
"name": "PUSH",
"value": "60"
},
{
"begin": 680,
"end": 687,
"name": "DUP2"
},
{
"begin": 680,
"end": 694,
"name": "MLOAD"
},
{
"begin": 663,
"end": 670,
"name": "DUP4"
},
{
"begin": 663,
"end": 677,
"name": "MLOAD"
},
{
"begin": 663,
"end": 694,
"name": "ADD"
},
{
"begin": 652,
"end": 695,
"name": "PUSH",
"value": "40"
},
{
"begin": 652,
"end": 695,
"name": "MLOAD"
},
{
"begin": 652,
"end": 695,
"name": "SWAP1"
},
{
"begin": 652,
"end": 695,
"name": "DUP1"
},
{
"begin": 652,
"end": 695,
"name": "DUP3"
},
{
"begin": 652,
"end": 695,
"name": "MSTORE"
},
{
"begin": 652,
"end": 695,
"name": "DUP1"
},
{
"begin": 652,
"end": 695,
"name": "PUSH",
"value": "1F"
},
{
"begin": 652,
"end": 695,
"name": "ADD"
},
{
"begin": 652,
"end": 695,
"name": "PUSH",
"value": "1F"
},
{
"begin": 652,
"end": 695,
"name": "NOT"
},
{
"begin": 652,
"end": 695,
"name": "AND"
},
{
"begin": 652,
"end": 695,
"name": "PUSH",
"value": "20"
},
{
"begin": 652,
"end": 695,
"name": "ADD"
},
{
"begin": 652,
"end": 695,
"name": "DUP3"
},
{
"begin": 652,
"end": 695,
"name": "ADD"
},
{
"begin": 652,
"end": 695,
"name": "PUSH",
"value": "40"
},
{
"begin": 652,
"end": 695,
"name": "MSTORE"
},
{
"begin": 652,
"end": 695,
"name": "DUP1"
},
{
"begin": 652,
"end": 695,
"name": "ISZERO"
},
{
"begin": 652,
"end": 695,
"name": "PUSH [tag]",
"value": "71"
},
{
"begin": 652,
"end": 695,
"name": "JUMPI"
},
{
"begin": 652,
"end": 695,
"name": "DUP2"
},
{
"begin": 652,
"end": 695,
"name": "PUSH",
"value": "20"
},
{
"begin": 652,
"end": 695,
"name": "ADD"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "1"
},
{
"begin": 21,
"end": 27,
"name": "DUP3"
},
{
"begin": 17,
"end": 31,
"name": "MUL"
},
{
"begin": 116,
"end": 120,
"name": "DUP1"
},
{
"begin": 104,
"end": 114,
"name": "CODESIZE"
},
{
"begin": 96,
"end": 102,
"name": "DUP4"
},
{
"begin": 87,
"end": 121,
"name": "CODECOPY"
},
{
"begin": 147,
"end": 151,
"name": "DUP1"
},
{
"begin": 139,
"end": 145,
"name": "DUP3"
},
{
"begin": 135,
"end": 152,
"name": "ADD"
},
{
"begin": 125,
"end": 152,
"name": "SWAP2"
},
{
"begin": 125,
"end": 152,
"name": "POP"
},
{
"begin": 0,
"end": 156,
"name": "POP"
},
{
"begin": 652,
"end": 695,
"name": "SWAP1"
},
{
"begin": 652,
"end": 695,
"name": "POP"
},
{
"begin": 652,
"end": 695,
"name": "tag",
"value": "71"
},
{
"begin": 652,
"end": 695,
"name": "JUMPDEST"
},
{
"begin": 652,
"end": 695,
"name": "POP"
},
{
"begin": 626,
"end": 695,
"name": "SWAP1"
},
{
"begin": 626,
"end": 695,
"name": "POP"
},
{
"begin": 705,
"end": 725,
"name": "PUSH",
"value": "60"
},
{
"begin": 734,
"end": 743,
"name": "DUP2"
},
{
"begin": 705,
"end": 744,
"name": "SWAP1"
},
{
"begin": 705,
"end": 744,
"name": "POP"
},
{
"begin": 754,
"end": 760,
"name": "PUSH",
"value": "0"
},
{
"begin": 763,
"end": 764,
"name": "DUP1"
},
{
"begin": 754,
"end": 764,
"name": "SWAP1"
},
{
"begin": 754,
"end": 764,
"name": "POP"
},
{
"begin": 779,
"end": 785,
"name": "PUSH",
"value": "0"
},
{
"begin": 788,
"end": 789,
"name": "DUP1"
},
{
"begin": 779,
"end": 789,
"name": "SWAP1"
},
{
"begin": 779,
"end": 789,
"name": "POP"
},
{
"begin": 774,
"end": 841,
"name": "tag",
"value": "72"
},
{
"begin": 774,
"end": 841,
"name": "JUMPDEST"
},
{
"begin": 795,
"end": 802,
"name": "DUP6"
},
{
"begin": 795,
"end": 809,
"name": "MLOAD"
},
{
"begin": 791,
"end": 792,
"name": "DUP2"
},
{
"begin": 791,
"end": 809,
"name": "LT"
},
{
"begin": 774,
"end": 841,
"name": "ISZERO"
},
{
"begin": 774,
"end": 841,
"name": "PUSH [tag]",
"value": "73"
},
{
"begin": 774,
"end": 841,
"name": "JUMPI"
},
{
"begin": 831,
"end": 838,
"name": "DUP6"
},
{
"begin": 839,
"end": 840,
"name": "DUP2"
},
{
"begin": 831,
"end": 841,
"name": "DUP2"
},
{
"begin": 831,
"end": 841,
"name": "MLOAD"
},
{
"begin": 831,
"end": 841,
"name": "DUP2"
},
{
"begin": 831,
"end": 841,
"name": "LT"
},
{
"begin": 831,
"end": 841,
"name": "PUSH [tag]",
"value": "75"
},
{
"begin": 831,
"end": 841,
"name": "JUMPI"
},
{
"begin": 831,
"end": 841,
"name": "INVALID"
},
{
"begin": 831,
"end": 841,
"name": "tag",
"value": "75"
},
{
"begin": 831,
"end": 841,
"name": "JUMPDEST"
},
{
"begin": 831,
"end": 841,
"name": "PUSH",
"value": "20"
},
{
"begin": 831,
"end": 841,
"name": "ADD"
},
{
"begin": 831,
"end": 841,
"name": "ADD"
},
{
"begin": 831,
"end": 841,
"name": "MLOAD"
},
{
"begin": 831,
"end": 841,
"name": "PUSH",
"value": "F8"
},
{
"begin": 831,
"end": 841,
"name": "SHR"
},
{
"begin": 831,
"end": 841,
"name": "PUSH",
"value": "F8"
},
{
"begin": 831,
"end": 841,
"name": "SHL"
},
{
"begin": 816,
"end": 823,
"name": "DUP4"
},
{
"begin": 824,
"end": 827,
"name": "DUP4"
},
{
"begin": 824,
"end": 827,
"name": "DUP1"
},
{
"begin": 824,
"end": 827,
"name": "PUSH",
"value": "1"
},
{
"begin": 824,
"end": 827,
"name": "ADD"
},
{
"begin": 824,
"end": 827,
"name": "SWAP5"
},
{
"begin": 824,
"end": 827,
"name": "POP"
},
{
"begin": 816,
"end": 828,
"name": "DUP2"
},
{
"begin": 816,
"end": 828,
"name": "MLOAD"
},
{
"begin": 816,
"end": 828,
"name": "DUP2"
},
{
"begin": 816,
"end": 828,
"name": "LT"
},
{
"begin": 816,
"end": 828,
"name": "PUSH [tag]",
"value": "76"
},
{
"begin": 816,
"end": 828,
"name": "JUMPI"
},
{
"begin": 816,
"end": 828,
"name": "INVALID"
},
{
"begin": 816,
"end": 828,
"name": "tag",
"value": "76"
},
{
"begin": 816,
"end": 828,
"name": "JUMPDEST"
},
{
"begin": 816,
"end": 828,
"name": "PUSH",
"value": "20"
},
{
"begin": 816,
"end": 828,
"name": "ADD"
},
{
"begin": 816,
"end": 828,
"name": "ADD"
},
{
"begin": 816,
"end": 841,
"name": "SWAP1"
},
{
"begin": 816,
"end": 841,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 816,
"end": 841,
"name": "NOT"
},
{
"begin": 816,
"end": 841,
"name": "AND"
},
{
"begin": 816,
"end": 841,
"name": "SWAP1"
},
{
"begin": 816,
"end": 841,
"name": "DUP2"
},
{
"begin": 816,
"end": 841,
"name": "PUSH",
"value": "0"
},
{
"begin": 816,
"end": 841,
"name": "BYTE"
},
{
"begin": 816,
"end": 841,
"name": "SWAP1"
},
{
"begin": 816,
"end": 841,
"name": "MSTORE8"
},
{
"begin": 816,
"end": 841,
"name": "POP"
},
{
"begin": 811,
"end": 814,
"name": "DUP1"
},
{
"begin": 811,
"end": 814,
"name": "DUP1"
},
{
"begin": 811,
"end": 814,
"name": "PUSH",
"value": "1"
},
{
"begin": 811,
"end": 814,
"name": "ADD"
},
{
"begin": 811,
"end": 814,
"name": "SWAP2"
},
{
"begin": 811,
"end": 814,
"name": "POP"
},
{
"begin": 811,
"end": 814,
"name": "POP"
},
{
"begin": 774,
"end": 841,
"name": "PUSH [tag]",
"value": "72"
},
{
"begin": 774,
"end": 841,
"name": "JUMP"
},
{
"begin": 774,
"end": 841,
"name": "tag",
"value": "73"
},
{
"begin": 774,
"end": 841,
"name": "JUMPDEST"
},
{
"begin": 774,
"end": 841,
"name": "POP"
},
{
"begin": 856,
"end": 862,
"name": "PUSH",
"value": "0"
},
{
"begin": 865,
"end": 866,
"name": "DUP1"
},
{
"begin": 856,
"end": 866,
"name": "SWAP1"
},
{
"begin": 856,
"end": 866,
"name": "POP"
},
{
"begin": 851,
"end": 918,
"name": "tag",
"value": "77"
},
{
"begin": 851,
"end": 918,
"name": "JUMPDEST"
},
{
"begin": 872,
"end": 879,
"name": "DUP5"
},
{
"begin": 872,
"end": 886,
"name": "MLOAD"
},
{
"begin": 868,
"end": 869,
"name": "DUP2"
},
{
"begin": 868,
"end": 886,
"name": "LT"
},
{
"begin": 851,
"end": 918,
"name": "ISZERO"
},
{
"begin": 851,
"end": 918,
"name": "PUSH [tag]",
"value": "78"
},
{
"begin": 851,
"end": 918,
"name": "JUMPI"
},
{
"begin": 908,
"end": 915,
"name": "DUP5"
},
{
"begin": 916,
"end": 917,
"name": "DUP2"
},
{
"begin": 908,
"end": 918,
"name": "DUP2"
},
{
"begin": 908,
"end": 918,
"name": "MLOAD"
},
{
"begin": 908,
"end": 918,
"name": "DUP2"
},
{
"begin": 908,
"end": 918,
"name": "LT"
},
{
"begin": 908,
"end": 918,
"name": "PUSH [tag]",
"value": "80"
},
{
"begin": 908,
"end": 918,
"name": "JUMPI"
},
{
"begin": 908,
"end": 918,
"name": "INVALID"
},
{
"begin": 908,
"end": 918,
"name": "tag",
"value": "80"
},
{
"begin": 908,
"end": 918,
"name": "JUMPDEST"
},
{
"begin": 908,
"end": 918,
"name": "PUSH",
"value": "20"
},
{
"begin": 908,
"end": 918,
"name": "ADD"
},
{
"begin": 908,
"end": 918,
"name": "ADD"
},
{
"begin": 908,
"end": 918,
"name": "MLOAD"
},
{
"begin": 908,
"end": 918,
"name": "PUSH",
"value": "F8"
},
{
"begin": 908,
"end": 918,
"name": "SHR"
},
{
"begin": 908,
"end": 918,
"name": "PUSH",
"value": "F8"
},
{
"begin": 908,
"end": 918,
"name": "SHL"
},
{
"begin": 893,
"end": 900,
"name": "DUP4"
},
{
"begin": 901,
"end": 904,
"name": "DUP4"
},
{
"begin": 901,
"end": 904,
"name": "DUP1"
},
{
"begin": 901,
"end": 904,
"name": "PUSH",
"value": "1"
},
{
"begin": 901,
"end": 904,
"name": "ADD"
},
{
"begin": 901,
"end": 904,
"name": "SWAP5"
},
{
"begin": 901,
"end": 904,
"name": "POP"
},
{
"begin": 893,
"end": 905,
"name": "DUP2"
},
{
"begin": 893,
"end": 905,
"name": "MLOAD"
},
{
"begin": 893,
"end": 905,
"name": "DUP2"
},
{
"begin": 893,
"end": 905,
"name": "LT"
},
{
"begin": 893,
"end": 905,
"name": "PUSH [tag]",
"value": "81"
},
{
"begin": 893,
"end": 905,
"name": "JUMPI"
},
{
"begin": 893,
"end": 905,
"name": "INVALID"
},
{
"begin": 893,
"end": 905,
"name": "tag",
"value": "81"
},
{
"begin": 893,
"end": 905,
"name": "JUMPDEST"
},
{
"begin": 893,
"end": 905,
"name": "PUSH",
"value": "20"
},
{
"begin": 893,
"end": 905,
"name": "ADD"
},
{
"begin": 893,
"end": 905,
"name": "ADD"
},
{
"begin": 893,
"end": 918,
"name": "SWAP1"
},
{
"begin": 893,
"end": 918,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 893,
"end": 918,
"name": "NOT"
},
{
"begin": 893,
"end": 918,
"name": "AND"
},
{
"begin": 893,
"end": 918,
"name": "SWAP1"
},
{
"begin": 893,
"end": 918,
"name": "DUP2"
},
{
"begin": 893,
"end": 918,
"name": "PUSH",
"value": "0"
},
{
"begin": 893,
"end": 918,
"name": "BYTE"
},
{
"begin": 893,
"end": 918,
"name": "SWAP1"
},
{
"begin": 893,
"end": 918,
"name": "MSTORE8"
},
{
"begin": 893,
"end": 918,
"name": "POP"
},
{
"begin": 888,
"end": 891,
"name": "DUP1"
},
{
"begin": 888,
"end": 891,
"name": "DUP1"
},
{
"begin": 888,
"end": 891,
"name": "PUSH",
"value": "1"
},
{
"begin": 888,
"end": 891,
"name": "ADD"
},
{
"begin": 888,
"end": 891,
"name": "SWAP2"
},
{
"begin": 888,
"end": 891,
"name": "POP"
},
{
"begin": 888,
"end": 891,
"name": "POP"
},
{
"begin": 851,
"end": 918,
"name": "PUSH [tag]",
"value": "77"
},
{
"begin": 851,
"end": 918,
"name": "JUMP"
},
{
"begin": 851,
"end": 918,
"name": "tag",
"value": "78"
},
{
"begin": 851,
"end": 918,
"name": "JUMPDEST"
},
{
"begin": 851,
"end": 918,
"name": "POP"
},
{
"begin": 942,
"end": 949,
"name": "DUP2"
},
{
"begin": 928,
"end": 950,
"name": "SWAP6"
},
{
"begin": 928,
"end": 950,
"name": "POP"
},
{
"begin": 928,
"end": 950,
"name": "POP"
},
{
"begin": 928,
"end": 950,
"name": "POP"
},
{
"begin": 928,
"end": 950,
"name": "POP"
},
{
"begin": 928,
"end": 950,
"name": "POP"
},
{
"begin": 928,
"end": 950,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "SWAP3"
},
{
"begin": 450,
"end": 957,
"name": "SWAP2"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "POP"
},
{
"begin": 450,
"end": 957,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 967,
"end": 1297,
"name": "tag",
"value": "45"
},
{
"begin": 967,
"end": 1297,
"name": "JUMPDEST"
},
{
"begin": 1042,
"end": 1046,
"name": "PUSH",
"value": "0"
},
{
"begin": 1058,
"end": 1080,
"name": "PUSH [tag]",
"value": "83"
},
{
"begin": 1058,
"end": 1080,
"name": "PUSH [tag]",
"value": "84"
},
{
"begin": 1058,
"end": 1080,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1058,
"end": 1080,
"name": "tag",
"value": "83"
},
{
"begin": 1058,
"end": 1080,
"name": "JUMPDEST"
},
{
"begin": 1083,
"end": 1179,
"name": "PUSH",
"value": "40"
},
{
"begin": 1083,
"end": 1179,
"name": "MLOAD"
},
{
"begin": 1083,
"end": 1179,
"name": "DUP1"
},
{
"begin": 1083,
"end": 1179,
"name": "PUSH",
"value": "A0"
},
{
"begin": 1083,
"end": 1179,
"name": "ADD"
},
{
"begin": 1083,
"end": 1179,
"name": "PUSH",
"value": "40"
},
{
"begin": 1083,
"end": 1179,
"name": "MSTORE"
},
{
"begin": 1083,
"end": 1179,
"name": "DUP1"
},
{
"begin": 1101,
"end": 1111,
"name": "CALLER"
},
{
"begin": 1083,
"end": 1179,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1083,
"end": 1179,
"name": "AND"
},
{
"begin": 1083,
"end": 1179,
"name": "DUP2"
},
{
"begin": 1083,
"end": 1179,
"name": "MSTORE"
},
{
"begin": 1083,
"end": 1179,
"name": "PUSH",
"value": "20"
},
{
"begin": 1083,
"end": 1179,
"name": "ADD"
},
{
"begin": 1141,
"end": 1146,
"name": "DUP6"
},
{
"begin": 1083,
"end": 1179,
"name": "DUP2"
},
{
"begin": 1083,
"end": 1179,
"name": "MSTORE"
},
{
"begin": 1083,
"end": 1179,
"name": "PUSH",
"value": "20"
},
{
"begin": 1083,
"end": 1179,
"name": "ADD"
},
{
"begin": 1159,
"end": 1164,
"name": "PUSH",
"value": "1"
},
{
"begin": 1159,
"end": 1164,
"name": "SLOAD"
},
{
"begin": 1083,
"end": 1179,
"name": "DUP2"
},
{
"begin": 1083,
"end": 1179,
"name": "MSTORE"
},
{
"begin": 1083,
"end": 1179,
"name": "PUSH",
"value": "20"
},
{
"begin": 1083,
"end": 1179,
"name": "ADD"
},
{
"begin": 1172,
"end": 1177,
"name": "DUP5"
},
{
"begin": 1083,
"end": 1179,
"name": "DUP2"
},
{
"begin": 1083,
"end": 1179,
"name": "MSTORE"
},
{
"begin": 1083,
"end": 1179,
"name": "PUSH",
"value": "20"
},
{
"begin": 1083,
"end": 1179,
"name": "ADD"
},
{
"begin": 1126,
"end": 1127,
"name": "PUSH",
"value": "0"
},
{
"begin": 1083,
"end": 1179,
"name": "DUP2"
},
{
"begin": 1083,
"end": 1179,
"name": "MSTORE"
},
{
"begin": 1083,
"end": 1179,
"name": "POP"
},
{
"begin": 1058,
"end": 1179,
"name": "SWAP1"
},
{
"begin": 1058,
"end": 1179,
"name": "POP"
},
{
"begin": 1208,
"end": 1215,
"name": "DUP1"
},
{
"begin": 1189,
"end": 1200,
"name": "PUSH",
"value": "0"
},
{
"begin": 1189,
"end": 1207,
"name": "DUP1"
},
{
"begin": 1201,
"end": 1206,
"name": "PUSH",
"value": "1"
},
{
"begin": 1201,
"end": 1206,
"name": "SLOAD"
},
{
"begin": 1189,
"end": 1207,
"name": "DUP2"
},
{
"begin": 1189,
"end": 1207,
"name": "MSTORE"
},
{
"begin": 1189,
"end": 1207,
"name": "PUSH",
"value": "20"
},
{
"begin": 1189,
"end": 1207,
"name": "ADD"
},
{
"begin": 1189,
"end": 1207,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1207,
"name": "DUP2"
},
{
"begin": 1189,
"end": 1207,
"name": "MSTORE"
},
{
"begin": 1189,
"end": 1207,
"name": "PUSH",
"value": "20"
},
{
"begin": 1189,
"end": 1207,
"name": "ADD"
},
{
"begin": 1189,
"end": 1207,
"name": "PUSH",
"value": "0"
},
{
"begin": 1189,
"end": 1207,
"name": "KECCAK256"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "0"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP3"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "MLOAD"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP2"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "0"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "0"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "100"
},
{
"begin": 1189,
"end": 1215,
"name": "EXP"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP2"
},
{
"begin": 1189,
"end": 1215,
"name": "SLOAD"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP2"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1189,
"end": 1215,
"name": "MUL"
},
{
"begin": 1189,
"end": 1215,
"name": "NOT"
},
{
"begin": 1189,
"end": 1215,
"name": "AND"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP4"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1189,
"end": 1215,
"name": "AND"
},
{
"begin": 1189,
"end": 1215,
"name": "MUL"
},
{
"begin": 1189,
"end": 1215,
"name": "OR"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "SSTORE"
},
{
"begin": 1189,
"end": 1215,
"name": "POP"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "20"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP3"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "MLOAD"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP2"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "1"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP1"
},
{
"begin": 1189,
"end": 1215,
"name": "MLOAD"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "20"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH [tag]",
"value": "85"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP3"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP2"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH [tag]",
"value": "69"
},
{
"begin": 1189,
"end": 1215,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1189,
"end": 1215,
"name": "tag",
"value": "85"
},
{
"begin": 1189,
"end": 1215,
"name": "JUMPDEST"
},
{
"begin": 1189,
"end": 1215,
"name": "POP"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "40"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP3"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "MLOAD"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP2"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "2"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "SSTORE"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "60"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP3"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "MLOAD"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP2"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "3"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP1"
},
{
"begin": 1189,
"end": 1215,
"name": "MLOAD"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "20"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH [tag]",
"value": "86"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP3"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP2"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH [tag]",
"value": "69"
},
{
"begin": 1189,
"end": 1215,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1189,
"end": 1215,
"name": "tag",
"value": "86"
},
{
"begin": 1189,
"end": 1215,
"name": "JUMPDEST"
},
{
"begin": 1189,
"end": 1215,
"name": "POP"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "80"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP3"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "MLOAD"
},
{
"begin": 1189,
"end": 1215,
"name": "DUP2"
},
{
"begin": 1189,
"end": 1215,
"name": "PUSH",
"value": "4"
},
{
"begin": 1189,
"end": 1215,
"name": "ADD"
},
{
"begin": 1189,
"end": 1215,
"name": "SSTORE"
},
{
"begin": 1189,
"end": 1215,
"name": "SWAP1"
},
{
"begin": 1189,
"end": 1215,
"name": "POP"
},
{
"begin": 1189,
"end": 1215,
"name": "POP"
},
{
"begin": 1239,
"end": 1240,
"name": "PUSH",
"value": "1"
},
{
"begin": 1233,
"end": 1238,
"name": "DUP1"
},
{
"begin": 1233,
"end": 1238,
"name": "SLOAD"
},
{
"begin": 1233,
"end": 1240,
"name": "ADD"
},
{
"begin": 1225,
"end": 1230,
"name": "PUSH",
"value": "1"
},
{
"begin": 1225,
"end": 1240,
"name": "DUP2"
},
{
"begin": 1225,
"end": 1240,
"name": "SWAP1"
},
{
"begin": 1225,
"end": 1240,
"name": "SSTORE"
},
{
"begin": 1225,
"end": 1240,
"name": "POP"
},
{
"begin": 1255,
"end": 1269,
"name": "PUSH",
"value": "64A55044D1F2EDDEBE1B90E8E2853E8E96931CEFADBFA0B2CEB34BEE36061941"
},
{
"begin": 1267,
"end": 1268,
"name": "PUSH",
"value": "1"
},
{
"begin": 1261,
"end": 1266,
"name": "DUP1"
},
{
"begin": 1261,
"end": 1266,
"name": "SLOAD"
},
{
"begin": 1261,
"end": 1268,
"name": "SUB"
},
{
"begin": 1255,
"end": 1269,
"name": "PUSH",
"value": "40"
},
{
"begin": 1255,
"end": 1269,
"name": "MLOAD"
},
{
"begin": 1255,
"end": 1269,
"name": "DUP1"
},
{
"begin": 1255,
"end": 1269,
"name": "DUP3"
},
{
"begin": 1255,
"end": 1269,
"name": "DUP2"
},
{
"begin": 1255,
"end": 1269,
"name": "MSTORE"
},
{
"begin": 1255,
"end": 1269,
"name": "PUSH",
"value": "20"
},
{
"begin": 1255,
"end": 1269,
"name": "ADD"
},
{
"begin": 1255,
"end": 1269,
"name": "SWAP2"
},
{
"begin": 1255,
"end": 1269,
"name": "POP"
},
{
"begin": 1255,
"end": 1269,
"name": "POP"
},
{
"begin": 1255,
"end": 1269,
"name": "PUSH",
"value": "40"
},
{
"begin": 1255,
"end": 1269,
"name": "MLOAD"
},
{
"begin": 1255,
"end": 1269,
"name": "DUP1"
},
{
"begin": 1255,
"end": 1269,
"name": "SWAP2"
},
{
"begin": 1255,
"end": 1269,
"name": "SUB"
},
{
"begin": 1255,
"end": 1269,
"name": "SWAP1"
},
{
"begin": 1255,
"end": 1269,
"name": "LOG1"
},
{
"begin": 1286,
"end": 1290,
"name": "PUSH",
"value": "1"
},
{
"begin": 1279,
"end": 1290,
"name": "SWAP2"
},
{
"begin": 1279,
"end": 1290,
"name": "POP"
},
{
"begin": 1279,
"end": 1290,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP3"
},
{
"begin": 967,
"end": 1297,
"name": "SWAP2"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "POP"
},
{
"begin": 967,
"end": 1297,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "67"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "40"
},
{
"begin": 25,
"end": 2313,
"name": "MLOAD"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "40"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "40"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "60"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "20"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 25,
"end": 2313,
"name": "AND"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "POP"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "69"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "DUP3"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "SLOAD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "1"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "1"
},
{
"begin": 25,
"end": 2313,
"name": "AND"
},
{
"begin": 25,
"end": 2313,
"name": "ISZERO"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "100"
},
{
"begin": 25,
"end": 2313,
"name": "MUL"
},
{
"begin": 25,
"end": 2313,
"name": "SUB"
},
{
"begin": 25,
"end": 2313,
"name": "AND"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "2"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "DIV"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "20"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "KECCAK256"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "1F"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "20"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "DIV"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP3"
},
{
"begin": 25,
"end": 2313,
"name": "DUP3"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "1F"
},
{
"begin": 25,
"end": 2313,
"name": "LT"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "88"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPI"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "MLOAD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "FF"
},
{
"begin": 25,
"end": 2313,
"name": "NOT"
},
{
"begin": 25,
"end": 2313,
"name": "AND"
},
{
"begin": 25,
"end": 2313,
"name": "DUP4"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "OR"
},
{
"begin": 25,
"end": 2313,
"name": "DUP6"
},
{
"begin": 25,
"end": 2313,
"name": "SSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "87"
},
{
"begin": 25,
"end": 2313,
"name": "JUMP"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "88"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "DUP3"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "1"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "DUP6"
},
{
"begin": 25,
"end": 2313,
"name": "SSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "DUP3"
},
{
"begin": 25,
"end": 2313,
"name": "ISZERO"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "87"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPI"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP2"
},
{
"begin": 25,
"end": 2313,
"name": "DUP3"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "89"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "DUP3"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "GT"
},
{
"begin": 25,
"end": 2313,
"name": "ISZERO"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "90"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPI"
},
{
"begin": 25,
"end": 2313,
"name": "DUP3"
},
{
"begin": 25,
"end": 2313,
"name": "MLOAD"
},
{
"begin": 25,
"end": 2313,
"name": "DUP3"
},
{
"begin": 25,
"end": 2313,
"name": "SSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP2"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "20"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP2"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "1"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "89"
},
{
"begin": 25,
"end": 2313,
"name": "JUMP"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "90"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "87"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "POP"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "POP"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "91"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP2"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "92"
},
{
"begin": 25,
"end": 2313,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "91"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "POP"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "84"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "40"
},
{
"begin": 25,
"end": 2313,
"name": "MLOAD"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "A0"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "40"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 25,
"end": 2313,
"name": "AND"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "20"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "60"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "20"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "20"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "60"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "20"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "MSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "POP"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "92"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "93"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP2"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "94"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "DUP1"
},
{
"begin": 25,
"end": 2313,
"name": "DUP3"
},
{
"begin": 25,
"end": 2313,
"name": "GT"
},
{
"begin": 25,
"end": 2313,
"name": "ISZERO"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "95"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPI"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "DUP2"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "0"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "SSTORE"
},
{
"begin": 25,
"end": 2313,
"name": "POP"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH",
"value": "1"
},
{
"begin": 25,
"end": 2313,
"name": "ADD"
},
{
"begin": 25,
"end": 2313,
"name": "PUSH [tag]",
"value": "94"
},
{
"begin": 25,
"end": 2313,
"name": "JUMP"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "95"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "POP"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "JUMP"
},
{
"begin": 25,
"end": 2313,
"name": "tag",
"value": "93"
},
{
"begin": 25,
"end": 2313,
"name": "JUMPDEST"
},
{
"begin": 25,
"end": 2313,
"name": "SWAP1"
},
{
"begin": 25,
"end": 2313,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"addState(uint256,string)": "453bccb6",
"concat(string,string)": "89c19ddb",
"newItem(string,string)": "a3d835c0",
"searchProduct(uint256)": "3cde01b5"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.6.0+commit.26b70077\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"Added\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_productId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"info\",\"type\":\"string\"}],\"name\":\"addState\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_a\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_b\",\"type\":\"string\"}],\"name\":\"concat\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_text\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_date\",\"type\":\"string\"}],\"name\":\"newItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_productId\",\"type\":\"uint256\"}],\"name\":\"searchProduct\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"SMARTCONT.sol\":\"SupplyChain\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"SMARTCONT.sol\":{\"keccak256\":\"0x7c54e1f00b5f3d87f1cd4fc65e5033bf7afc72381f8e9f0b85c52401a00a5621\",\"urls\":[\"bzz-raw://c1853f8dc354c377c1612727d335ade8880f2993a9bda3798746a90094c60aaf\",\"dweb:/ipfs/QmW6zJS9RTTxUVn9wP1xcy8nm7Qqq5Vvt79PBjQiGVocdD\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 29,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "allProducts",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_uint256,t_struct(Product)25_storage)"
},
{
"astId": 32,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "items",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_mapping(t_uint256,t_struct(Product)25_storage)": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => struct SupplyChain.Product)",
"numberOfBytes": "32",
"value": "t_struct(Product)25_storage"
},
"t_mapping(t_uint256,t_struct(State)10_storage)": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => struct SupplyChain.State)",
"numberOfBytes": "32",
"value": "t_struct(State)10_storage"
},
"t_string_storage": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_struct(Product)25_storage": {
"encoding": "inplace",
"label": "struct SupplyChain.Product",
"members": [
{
"astId": 12,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "creator",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 14,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "productName",
"offset": 0,
"slot": "1",
"type": "t_string_storage"
},
{
"astId": 16,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "productId",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"astId": 18,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "date",
"offset": 0,
"slot": "3",
"type": "t_string_storage"
},
{
"astId": 20,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "totalStates",
"offset": 0,
"slot": "4",
"type": "t_uint256"
},
{
"astId": 24,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "positions",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_uint256,t_struct(State)10_storage)"
}
],
"numberOfBytes": "192"
},
"t_struct(State)10_storage": {
"encoding": "inplace",
"label": "struct SupplyChain.State",
"members": [
{
"astId": 7,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "description",
"offset": 0,
"slot": "0",
"type": "t_string_storage"
},
{
"astId": 9,
"contract": "SMARTCONT.sol:SupplyChain",
"label": "person",
"offset": 0,
"slot": "1",
"type": "t_address"
}
],
"numberOfBytes": "64"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"methods": {}
}
}
}
},
"errors": [
{
"component": "general",
"formattedMessage": "SMARTCONT.sol:36:9: Warning: This declaration shadows an existing declaration.\n Product memory newItem = Product({creator: msg.sender, totalStates: 0,productName: _text, productId: items, date: _date});\n ^--------------------^\nSMARTCONT.sol:35:5: The shadowed declaration is here:\n function newItem(string memory _text, string memory _date) public returns (bool) {\n ^ (Relevant source part starts here and spans across multiple lines).\n",
"message": "This declaration shadows an existing declaration.",
"secondarySourceLocations": [
{
"end": 1297,
"file": "SMARTCONT.sol",
"message": "The shadowed declaration is here:",
"start": 967
}
],
"severity": "warning",
"sourceLocation": {
"end": 1080,
"file": "SMARTCONT.sol",
"start": 1058
},
"type": "Warning"
},
{
"component": "general",
"formattedMessage": "SMARTCONT.sol:24:5: Warning: Function state mutability can be restricted to pure\n function concat(string memory _a, string memory _b) public returns (string memory){\n ^ (Relevant source part starts here and spans across multiple lines).\n",
"message": "Function state mutability can be restricted to pure",
"severity": "warning",
"sourceLocation": {
"end": 957,
"file": "SMARTCONT.sol",
"start": 450
},
"type": "Warning"
}
],
"sources": {
"SMARTCONT.sol": {
"ast": {
"absolutePath": "SMARTCONT.sol",
"exportedSymbols": {
"SupplyChain": [
292
]
},
"id": 293,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:0"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 292,
"linearizedBaseContracts": [
292
],
"name": "SupplyChain",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 5,
"name": "Added",
"nodeType": "EventDefinition",
"parameters": {
"id": 4,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3,
"indexed": false,
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5,
"src": "69:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "69:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "68:15:0"
},
"src": "57:27:0"
},
{
"canonicalName": "SupplyChain.State",
"id": 10,
"members": [
{
"constant": false,
"id": 7,
"name": "description",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 10,
"src": "116:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 6,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "116:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 9,
"name": "person",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 10,
"src": "144:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "144:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "State",
"nodeType": "StructDefinition",
"scope": 292,
"src": "94:71:0",
"visibility": "public"
},
{
"canonicalName": "SupplyChain.Product",
"id": 25,
"members": [
{
"constant": false,
"id": 12,
"name": "creator",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 25,
"src": "199:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 11,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "199:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 14,
"name": "productName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 25,
"src": "224:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 13,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "224:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 16,
"name": "productId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 25,
"src": "252:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 15,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "252:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 18,
"name": "date",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 25,
"src": "279:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 17,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "279:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 20,
"name": "totalStates",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 25,
"src": "300:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 19,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "300:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 24,
"name": "positions",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 25,
"src": "329:36:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_State_$10_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.State)"
},
"typeName": {
"id": 23,
"keyType": {
"id": 21,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "338:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "329:26:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_State_$10_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.State)"
},
"valueType": {
"contractScope": null,
"id": 22,
"name": "State",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 10,
"src": "349:5:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_State_$10_storage_ptr",
"typeString": "struct SupplyChain.State"
}
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Product",
"nodeType": "StructDefinition",
"scope": 292,
"src": "175:197:0",
"visibility": "public"
},
{
"constant": false,
"id": 29,
"name": "allProducts",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 292,
"src": "382:36:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product)"
},
"typeName": {
"id": 28,
"keyType": {
"id": 26,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "390:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "382:24:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product)"
},
"valueType": {
"contractScope": null,
"id": 27,
"name": "Product",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 25,
"src": "398:7:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage_ptr",
"typeString": "struct SupplyChain.Product"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 32,
"name": "items",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 292,
"src": "424:15:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 30,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "424:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
"hexValue": "30",
"id": 31,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "438:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"visibility": "internal"
},
{
"body": {
"id": 124,
"nodeType": "Block",
"src": "532:425:0",
"statements": [
{
"assignments": [
42
],
"declarations": [
{
"constant": false,
"id": 42,
"name": "bytes_a",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 124,
"src": "542:20:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 41,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "542:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 47,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 45,
"name": "_a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 34,
"src": "571:2:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 44,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "565:5:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": {
"id": 43,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "565:5:0",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 46,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "565:9:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "542:32:0"
},
{
"assignments": [
49
],
"declarations": [
{
"constant": false,
"id": 49,
"name": "bytes_b",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 124,
"src": "584:20:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 48,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "584:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 54,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 52,
"name": "_b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "613:2:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 51,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "607:5:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": {
"id": 50,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "607:5:0",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 53,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "607:9:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "584:32:0"
},
{
"assignments": [
56
],
"declarations": [
{
"constant": false,
"id": 56,
"name": "length_ab",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 124,
"src": "626:23:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 55,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "626:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 65,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 63,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 59,
"name": "bytes_a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 42,
"src": "663:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 60,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "663:14:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 61,
"name": "bytes_b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 49,
"src": "680:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 62,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "680:14:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "663:31:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 58,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "652:10:0",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_$",
"typeString": "function (uint256) pure returns (string memory)"
},
"typeName": {
"id": 57,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "656:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
"id": 64,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "652:43:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "626:69:0"
},
{
"assignments": [
67
],
"declarations": [
{
"constant": false,
"id": 67,
"name": "bytes_c",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 124,
"src": "705:20:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 66,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "705:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 72,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 70,
"name": "length_ab",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 56,
"src": "734:9:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 69,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "728:5:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": {
"id": 68,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "728:5:0",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 71,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "728:16:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "705:39:0"
},
{
"assignments": [
74
],
"declarations": [
{
"constant": false,
"id": 74,
"name": "k",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 124,
"src": "754:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 73,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "754:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 76,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 75,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "763:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "754:10:0"
},
{
"body": {
"expression": {
"argumentTypes": null,
"id": 95,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 88,
"name": "bytes_c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "816:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 91,
"indexExpression": {
"argumentTypes": null,
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "824:3:0",
"subExpression": {
"argumentTypes": null,
"id": 89,
"name": "k",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 74,
"src": "824:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "816:12:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 92,
"name": "bytes_a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 42,
"src": "831:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 94,
"indexExpression": {
"argumentTypes": null,
"id": 93,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 78,
"src": "839:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "831:10:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"src": "816:25:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"id": 96,
"nodeType": "ExpressionStatement",
"src": "816:25:0"
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 84,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 81,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 78,
"src": "791:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 82,
"name": "bytes_a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 42,
"src": "795:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 83,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "795:14:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "791:18:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 97,
"initializationExpression": {
"assignments": [
78
],
"declarations": [
{
"constant": false,
"id": 78,
"name": "i",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 97,
"src": "779:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 77,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "779:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 80,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 79,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "788:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "779:10:0"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 86,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "811:3:0",
"subExpression": {
"argumentTypes": null,
"id": 85,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 78,
"src": "811:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 87,
"nodeType": "ExpressionStatement",
"src": "811:3:0"
},
"nodeType": "ForStatement",
"src": "774:67:0"
},
{
"body": {
"expression": {
"argumentTypes": null,
"id": 116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 109,
"name": "bytes_c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "893:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 112,
"indexExpression": {
"argumentTypes": null,
"id": 111,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "901:3:0",
"subExpression": {
"argumentTypes": null,
"id": 110,
"name": "k",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 74,
"src": "901:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "893:12:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 113,
"name": "bytes_b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 49,
"src": "908:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 115,
"indexExpression": {
"argumentTypes": null,
"id": 114,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 99,
"src": "916:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "908:10:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"src": "893:25:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"id": 117,
"nodeType": "ExpressionStatement",
"src": "893:25:0"
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 105,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 102,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 99,
"src": "868:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 103,
"name": "bytes_b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 49,
"src": "872:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 104,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "872:14:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "868:18:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 118,
"initializationExpression": {
"assignments": [
99
],
"declarations": [
{
"constant": false,
"id": 99,
"name": "i",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 118,
"src": "856:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 98,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "856:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 101,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 100,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "865:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "856:10:0"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 107,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "888:3:0",
"subExpression": {
"argumentTypes": null,
"id": 106,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 99,
"src": "888:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 108,
"nodeType": "ExpressionStatement",
"src": "888:3:0"
},
"nodeType": "ForStatement",
"src": "851:67:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 121,
"name": "bytes_c",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 67,
"src": "942:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 120,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "935:6:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
},
"typeName": {
"id": 119,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "935:6:0",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 122,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "935:15:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"functionReturnParameters": 40,
"id": 123,
"nodeType": "Return",
"src": "928:22:0"
}
]
},
"documentation": null,
"functionSelector": "89c19ddb",
"id": 125,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "concat",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 37,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 34,
"name": "_a",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 125,
"src": "466:16:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 33,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "466:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 36,
"name": "_b",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 125,
"src": "484:16:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 35,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "484:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "465:36:0"
},
"returnParameters": {
"id": 40,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 39,
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 125,
"src": "518:13:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 38,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "518:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "517:15:0"
},
"scope": 292,
"src": "450:507:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 165,
"nodeType": "Block",
"src": "1048:249:0",
"statements": [
{
"assignments": [
135
],
"declarations": [
{
"constant": false,
"id": 135,
"name": "newItem",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 165,
"src": "1058:22:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_memory_ptr",
"typeString": "struct SupplyChain.Product"
},
"typeName": {
"contractScope": null,
"id": 134,
"name": "Product",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 25,
"src": "1058:7:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage_ptr",
"typeString": "struct SupplyChain.Product"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 144,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 137,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 307,
"src": "1101:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 138,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1101:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"hexValue": "30",
"id": 139,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1126:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
{
"argumentTypes": null,
"id": 140,
"name": "_text",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 127,
"src": "1141:5:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"argumentTypes": null,
"id": 141,
"name": "items",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "1159:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 142,
"name": "_date",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 129,
"src": "1172:5:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 136,
"name": "Product",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "1083:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Product_$25_storage_ptr_$",
"typeString": "type(struct SupplyChain.Product storage pointer)"
}
},
"id": 143,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [
"creator",
"totalStates",
"productName",
"productId",
"date"
],
"nodeType": "FunctionCall",
"src": "1083:96:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_memory",
"typeString": "struct SupplyChain.Product memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1058:121:0"
},
{
"expression": {
"argumentTypes": null,
"id": 149,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 145,
"name": "allProducts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "1189:11:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product storage ref)"
}
},
"id": 147,
"indexExpression": {
"argumentTypes": null,
"id": 146,
"name": "items",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "1201:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1189:18:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 148,
"name": "newItem",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 135,
"src": "1208:7:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_memory_ptr",
"typeString": "struct SupplyChain.Product memory"
}
},
"src": "1189:26:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"id": 150,
"nodeType": "ExpressionStatement",
"src": "1189:26:0"
},
{
"expression": {
"argumentTypes": null,
"id": 155,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 151,
"name": "items",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "1225:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 154,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 152,
"name": "items",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "1233:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 153,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1239:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "1233:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1225:15:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 156,
"nodeType": "ExpressionStatement",
"src": "1225:15:0"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 160,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 158,
"name": "items",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "1261:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 159,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1267:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "1261:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 157,
"name": "Added",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1255:5:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 161,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1255:14:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 162,
"nodeType": "EmitStatement",
"src": "1250:19:0"
},
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 163,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1286:4:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 133,
"id": 164,
"nodeType": "Return",
"src": "1279:11:0"
}
]
},
"documentation": null,
"functionSelector": "a3d835c0",
"id": 166,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "newItem",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 130,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 127,
"name": "_text",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 166,
"src": "984:19:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 126,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "984:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 129,
"name": "_date",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 166,
"src": "1005:19:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 128,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1005:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "983:42:0"
},
"returnParameters": {
"id": 133,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 132,
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 166,
"src": "1042:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 131,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1042:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1041:6:0"
},
"scope": 292,
"src": "967:330:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 215,
"nodeType": "Block",
"src": "1393:348:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 178,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 176,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 168,
"src": "1411:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"id": 177,
"name": "items",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "1423:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1411:17:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 175,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
310,
311
],
"referencedDeclaration": 310,
"src": "1403:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 179,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1403:26:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 180,
"nodeType": "ExpressionStatement",
"src": "1403:26:0"
},
{
"assignments": [
182
],
"declarations": [
{
"constant": false,
"id": 182,
"name": "newState",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 215,
"src": "1448:21:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_State_$10_memory_ptr",
"typeString": "struct SupplyChain.State"
},
"typeName": {
"contractScope": null,
"id": 181,
"name": "State",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 10,
"src": "1448:5:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_State_$10_storage_ptr",
"typeString": "struct SupplyChain.State"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 188,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 184,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 307,
"src": "1487:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 185,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1487:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 186,
"name": "info",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 170,
"src": "1512:4:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 183,
"name": "State",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10,
"src": "1472:5:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_State_$10_storage_ptr_$",
"typeString": "type(struct SupplyChain.State storage pointer)"
}
},
"id": 187,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [
"person",
"description"
],
"nodeType": "FunctionCall",
"src": "1472:46:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_State_$10_memory",
"typeString": "struct SupplyChain.State memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1448:70:0"
},
{
"expression": {
"argumentTypes": null,
"id": 199,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 189,
"name": "allProducts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "1537:11:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product storage ref)"
}
},
"id": 191,
"indexExpression": {
"argumentTypes": null,
"id": 190,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 168,
"src": "1549:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1537:23:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"id": 192,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "positions",
"nodeType": "MemberAccess",
"referencedDeclaration": 24,
"src": "1537:33:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_State_$10_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.State storage ref)"
}
},
"id": 197,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 193,
"name": "allProducts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "1572:11:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product storage ref)"
}
},
"id": 195,
"indexExpression": {
"argumentTypes": null,
"id": 194,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 168,
"src": "1584:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1572:23:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"id": 196,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "totalStates",
"nodeType": "MemberAccess",
"referencedDeclaration": 20,
"src": "1572:35:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1537:72:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_State_$10_storage",
"typeString": "struct SupplyChain.State storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 198,
"name": "newState",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 182,
"src": "1610:8:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_State_$10_memory_ptr",
"typeString": "struct SupplyChain.State memory"
}
},
"src": "1537:81:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_State_$10_storage",
"typeString": "struct SupplyChain.State storage ref"
}
},
"id": 200,
"nodeType": "ExpressionStatement",
"src": "1537:81:0"
},
{
"expression": {
"argumentTypes": null,
"id": 211,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 201,
"name": "allProducts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "1637:11:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product storage ref)"
}
},
"id": 203,
"indexExpression": {
"argumentTypes": null,
"id": 202,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 168,
"src": "1649:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1637:23:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"id": 204,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "totalStates",
"nodeType": "MemberAccess",
"referencedDeclaration": 20,
"src": "1637:35:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 210,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 205,
"name": "allProducts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "1675:11:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product storage ref)"
}
},
"id": 207,
"indexExpression": {
"argumentTypes": null,
"id": 206,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 168,
"src": "1687:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1675:23:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"id": 208,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "totalStates",
"nodeType": "MemberAccess",
"referencedDeclaration": 20,
"src": "1675:35:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 209,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1712:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "1675:38:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1637:76:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 212,
"nodeType": "ExpressionStatement",
"src": "1637:76:0"
},
{
"expression": {
"argumentTypes": null,
"id": 213,
"name": "info",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 170,
"src": "1730:4:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"functionReturnParameters": 174,
"id": 214,
"nodeType": "Return",
"src": "1723:11:0"
}
]
},
"documentation": null,
"functionSelector": "453bccb6",
"id": 216,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "addState",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 171,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 168,
"name": "_productId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 216,
"src": "1325:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 167,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1325:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 170,
"name": "info",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 216,
"src": "1342:18:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 169,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1342:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1324:37:0"
},
"returnParameters": {
"id": 174,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 173,
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 216,
"src": "1378:13:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 172,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1378:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1377:15:0"
},
"scope": 292,
"src": "1307:434:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 290,
"nodeType": "Block",
"src": "1822:484:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 226,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 224,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 218,
"src": "1841:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"id": 225,
"name": "items",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "1853:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1841:17:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 223,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
310,
311
],
"referencedDeclaration": 310,
"src": "1833:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 227,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1833:26:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 228,
"nodeType": "ExpressionStatement",
"src": "1833:26:0"
},
{
"assignments": [
230
],
"declarations": [
{
"constant": false,
"id": 230,
"name": "output",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 290,
"src": "1869:20:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 229,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1869:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 232,
"initialValue": {
"argumentTypes": null,
"hexValue": "50726f64756374204e616d653a20",
"id": 231,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1890:16:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_7c8c724e8188ab350904d507cb2b2cf31d21119cdc144f7f677df9a6936a1720",
"typeString": "literal_string \"Product Name: \""
},
"value": "Product Name: "
},
"nodeType": "VariableDeclarationStatement",
"src": "1869:37:0"
},
{
"expression": {
"argumentTypes": null,
"id": 241,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 233,
"name": "output",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "1916:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 235,
"name": "output",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "1930:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 236,
"name": "allProducts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "1938:11:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product storage ref)"
}
},
"id": 238,
"indexExpression": {
"argumentTypes": null,
"id": 237,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 218,
"src": "1950:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1938:23:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"id": 239,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "productName",
"nodeType": "MemberAccess",
"referencedDeclaration": 14,
"src": "1938:35:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 234,
"name": "concat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 125,
"src": "1923:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
"typeString": "function (string memory,string memory) returns (string memory)"
}
},
"id": 240,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1923:51:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "1916:58:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 242,
"nodeType": "ExpressionStatement",
"src": "1916:58:0"
},
{
"expression": {
"argumentTypes": null,
"id": 248,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 243,
"name": "output",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "1984:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 245,
"name": "output",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "1998:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"argumentTypes": null,
"hexValue": "3c62723e4d616e756661637475726520446174653a20",
"id": 246,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2006:24:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_cbdbc25d82e1a397cac6695c141c80ac184dd0fc64af551d1df2fc02ca6aaa25",
"typeString": "literal_string \"<br>Manufacture Date: \""
},
"value": "<br>Manufacture Date: "
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_stringliteral_cbdbc25d82e1a397cac6695c141c80ac184dd0fc64af551d1df2fc02ca6aaa25",
"typeString": "literal_string \"<br>Manufacture Date: \""
}
],
"id": 244,
"name": "concat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 125,
"src": "1991:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
"typeString": "function (string memory,string memory) returns (string memory)"
}
},
"id": 247,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1991:40:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "1984:47:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 249,
"nodeType": "ExpressionStatement",
"src": "1984:47:0"
},
{
"expression": {
"argumentTypes": null,
"id": 258,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 250,
"name": "output",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "2041:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 252,
"name": "output",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "2055:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 253,
"name": "allProducts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "2063:11:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product storage ref)"
}
},
"id": 255,
"indexExpression": {
"argumentTypes": null,
"id": 254,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 218,
"src": "2075:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2063:23:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"id": 256,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "date",
"nodeType": "MemberAccess",
"referencedDeclaration": 18,
"src": "2063:28:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 251,
"name": "concat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 125,
"src": "2048:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
"typeString": "function (string memory,string memory) returns (string memory)"
}
},
"id": 257,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2048:44:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "2041:51:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 259,
"nodeType": "ExpressionStatement",
"src": "2041:51:0"
},
{
"body": {
"id": 286,
"nodeType": "Block",
"src": "2172:96:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 284,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 273,
"name": "output",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "2186:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 275,
"name": "output",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "2200:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 276,
"name": "allProducts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "2208:11:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product storage ref)"
}
},
"id": 278,
"indexExpression": {
"argumentTypes": null,
"id": 277,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 218,
"src": "2220:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2208:23:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"id": 279,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "positions",
"nodeType": "MemberAccess",
"referencedDeclaration": 24,
"src": "2208:33:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_State_$10_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.State storage ref)"
}
},
"id": 281,
"indexExpression": {
"argumentTypes": null,
"id": 280,
"name": "j",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 261,
"src": "2242:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2208:36:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_State_$10_storage",
"typeString": "struct SupplyChain.State storage ref"
}
},
"id": 282,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "description",
"nodeType": "MemberAccess",
"referencedDeclaration": 7,
"src": "2208:48:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 274,
"name": "concat",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 125,
"src": "2193:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$",
"typeString": "function (string memory,string memory) returns (string memory)"
}
},
"id": 283,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2193:64:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "2186:71:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"id": 285,
"nodeType": "ExpressionStatement",
"src": "2186:71:0"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 269,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 264,
"name": "j",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 261,
"src": "2129:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 265,
"name": "allProducts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "2131:11:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Product_$25_storage_$",
"typeString": "mapping(uint256 => struct SupplyChain.Product storage ref)"
}
},
"id": 267,
"indexExpression": {
"argumentTypes": null,
"id": 266,
"name": "_productId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 218,
"src": "2143:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2131:23:0",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Product_$25_storage",
"typeString": "struct SupplyChain.Product storage ref"
}
},
"id": 268,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "totalStates",
"nodeType": "MemberAccess",
"referencedDeclaration": 20,
"src": "2131:35:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2129:37:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 287,
"initializationExpression": {
"assignments": [
261
],
"declarations": [
{
"constant": false,
"id": 261,
"name": "j",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 287,
"src": "2116:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 260,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2116:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 263,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 262,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2126:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "2116:11:0"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 271,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "2168:3:0",
"subExpression": {
"argumentTypes": null,
"id": 270,
"name": "j",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 261,
"src": "2168:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 272,
"nodeType": "ExpressionStatement",
"src": "2168:3:0"
},
"nodeType": "ForStatement",
"src": "2111:157:0"
},
{
"expression": {
"argumentTypes": null,
"id": 288,
"name": "output",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "2284:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"functionReturnParameters": 222,
"id": 289,
"nodeType": "Return",
"src": "2277:13:0"
}
]
},
"documentation": null,
"functionSelector": "3cde01b5",
"id": 291,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "searchProduct",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 219,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 218,
"name": "_productId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 291,
"src": "1774:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 217,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1774:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1773:17:0"
},
"returnParameters": {
"id": 222,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 221,
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 291,
"src": "1807:13:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 220,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1807:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1806:15:0"
},
"scope": 292,
"src": "1751:555:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 293,
"src": "25:2288:0"
}
],
"src": "0:2313:0"
},
"id": 0
}
}
}
}
{
"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": {
"linkReferences": {},
"object": "6080604052600060015534801561001557600080fd5b50610d78806100256000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80633cde01b514610051578063453bccb6146100f857806389c19ddb14610236578063a3d835c014610401575b600080fd5b61007d6004803603602081101561006757600080fd5b810190808035906020019092919050505061056b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100bd5780820151818401526020810190506100a2565b50505050905090810190601f1680156100ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101bb6004803603604081101561010e57600080fd5b81019080803590602001909291908035906020019064010000000081111561013557600080fd5b82018360208201111561014757600080fd5b8035906020019184600183028401116401000000008311171561016957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610870565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fb5780820151818401526020810190506101e0565b50505050905090810190601f1680156102285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103866004803603604081101561024c57600080fd5b810190808035906020019064010000000081111561026957600080fd5b82018360208201111561027b57600080fd5b8035906020019184600183028401116401000000008311171561029d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561030057600080fd5b82018360208201111561031257600080fd5b8035906020019184600183028401116401000000008311171561033457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610995565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c65780820151818401526020810190506103ab565b50505050905090810190601f1680156103f35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105516004803603604081101561041757600080fd5b810190808035906020019064010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460018302840111640100000000831117156104ff57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610ade565b604051808215151515815260200191505060405180910390f35b606060015482111561057c57600080fd5b60606040518060400160405280600e81526020017f50726f64756374204e616d653a20000000000000000000000000000000000000815250905061066d816000808681526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106635780601f1061063857610100808354040283529160200191610663565b820191906000526020600020905b81548152906001019060200180831161064657829003601f168201915b5050505050610995565b90506106ae816040518060400160405280601681526020017f3c62723e4d616e756661637475726520446174653a2000000000000000000000815250610995565b9050610767816000808681526020019081526020016000206003018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075d5780601f106107325761010080835404028352916020019161075d565b820191906000526020600020905b81548152906001019060200180831161074057829003601f168201915b5050505050610995565b905060008090505b60008085815260200190815260200160002060040154811015610866576108578260008087815260200190815260200160002060050160008481526020019081526020016000206000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561084d5780601f106108225761010080835404028352916020019161084d565b820191906000526020600020905b81548152906001019060200180831161083057829003601f168201915b5050505050610995565b9150808060010191505061076f565b5080915050919050565b606060015483111561088157600080fd5b610889610c28565b60405180604001604052808481526020013373ffffffffffffffffffffffffffffffffffffffff168152509050806000808681526020019081526020016000206005016000806000888152602001908152602001600020600401548152602001908152602001600020600082015181600001908051906020019061090e929190610c58565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060016000808681526020019081526020016000206004015401600080868152602001908152602001600020600401819055508291505092915050565b6060808390506060839050606081518351016040519080825280601f01601f1916602001820160405280156109d95781602001600182028038833980820191505090505b5090506060819050600080905060008090505b8551811015610a5a57858181518110610a0157fe5b602001015160f81c60f81b838380600101945081518110610a1e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806001019150506109ec565b5060008090505b8451811015610acf57848181518110610a7657fe5b602001015160f81c60f81b838380600101945081518110610a9357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050610a61565b50819550505050505092915050565b6000610ae8610cd8565b6040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200185815260200160015481526020018481526020016000815250905080600080600154815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610ba2929190610c58565b50604082015181600201556060820151816003019080519060200190610bc9929190610c58565b506080820151816004015590505060018054016001819055507f64a55044d1f2eddebe1b90e8e2853e8e96931cefadbfa0b2ceb34bee3606194160018054036040518082815260200191505060405180910390a1600191505092915050565b604051806040016040528060608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c9957805160ff1916838001178555610cc7565b82800160010185558215610cc7579182015b82811115610cc6578251825591602001919060010190610cab565b5b509050610cd49190610d1d565b5090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016000815260200160608152602001600081525090565b610d3f91905b80821115610d3b576000816000905550600101610d23565b5090565b9056fea2646970667358221220de56449e7bde4eef4b13237db4c5b0519cbbfda9986757a8146b28bd9483955e64736f6c63430006000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD78 DUP1 PUSH2 0x25 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 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3CDE01B5 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x453BCCB6 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0x89C19DDB EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xA3D835C0 EQ PUSH2 0x401 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x56B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xBD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA2 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x870 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1E0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x386 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x995 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3C6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3AB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3F3 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x551 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x417 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x434 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x468 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x4DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x4FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xADE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x50726F64756374204E616D653A20000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x66D DUP2 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x663 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x638 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x663 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 0x646 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH2 0x6AE DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3C62723E4D616E756661637475726520446174653A2000000000000000000000 DUP2 MSTORE POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH2 0x767 DUP2 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x75D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x732 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x75D 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 0x740 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x866 JUMPI PUSH2 0x857 DUP3 PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x84D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x822 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84D 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 0x830 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x76F JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 SLOAD DUP4 GT ISZERO PUSH2 0x881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x889 PUSH2 0xC28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x90E SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD ADD PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP DUP3 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 DUP4 SWAP1 POP PUSH1 0x60 DUP4 SWAP1 POP PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x9D9 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x60 DUP2 SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0xA5A JUMPI DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA01 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA1E JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x9EC JUMP JUMPDEST POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xACF JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA76 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA93 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xA61 JUMP JUMPDEST POP DUP2 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE8 PUSH2 0xCD8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBA2 SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBC9 SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE SWAP1 POP POP PUSH1 0x1 DUP1 SLOAD ADD PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH32 0x64A55044D1F2EDDEBE1B90E8E2853E8E96931CEFADBFA0B2CEB34BEE36061941 PUSH1 0x1 DUP1 SLOAD SUB PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xC99 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xCC7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xCC7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xCC6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xCAB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xCD4 SWAP2 SWAP1 PUSH2 0xD1D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0xD3F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xD3B JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xD23 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE JUMP DIFFICULTY SWAP15 PUSH28 0xDE4EEF4B13237DB4C5B0519CBBFDA9986757A8146B28BD9483955E64 PUSH20 0x6F6C634300060000330000000000000000000000 ",
"sourceMap": "25:2288:0:-:0;;;438:1;424:15;;25:2288;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:2288:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80633cde01b514610051578063453bccb6146100f857806389c19ddb14610236578063a3d835c014610401575b600080fd5b61007d6004803603602081101561006757600080fd5b810190808035906020019092919050505061056b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100bd5780820151818401526020810190506100a2565b50505050905090810190601f1680156100ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101bb6004803603604081101561010e57600080fd5b81019080803590602001909291908035906020019064010000000081111561013557600080fd5b82018360208201111561014757600080fd5b8035906020019184600183028401116401000000008311171561016957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610870565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fb5780820151818401526020810190506101e0565b50505050905090810190601f1680156102285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103866004803603604081101561024c57600080fd5b810190808035906020019064010000000081111561026957600080fd5b82018360208201111561027b57600080fd5b8035906020019184600183028401116401000000008311171561029d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561030057600080fd5b82018360208201111561031257600080fd5b8035906020019184600183028401116401000000008311171561033457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610995565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c65780820151818401526020810190506103ab565b50505050905090810190601f1680156103f35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105516004803603604081101561041757600080fd5b810190808035906020019064010000000081111561043457600080fd5b82018360208201111561044657600080fd5b8035906020019184600183028401116401000000008311171561046857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460018302840111640100000000831117156104ff57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610ade565b604051808215151515815260200191505060405180910390f35b606060015482111561057c57600080fd5b60606040518060400160405280600e81526020017f50726f64756374204e616d653a20000000000000000000000000000000000000815250905061066d816000808681526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106635780601f1061063857610100808354040283529160200191610663565b820191906000526020600020905b81548152906001019060200180831161064657829003601f168201915b5050505050610995565b90506106ae816040518060400160405280601681526020017f3c62723e4d616e756661637475726520446174653a2000000000000000000000815250610995565b9050610767816000808681526020019081526020016000206003018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075d5780601f106107325761010080835404028352916020019161075d565b820191906000526020600020905b81548152906001019060200180831161074057829003601f168201915b5050505050610995565b905060008090505b60008085815260200190815260200160002060040154811015610866576108578260008087815260200190815260200160002060050160008481526020019081526020016000206000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561084d5780601f106108225761010080835404028352916020019161084d565b820191906000526020600020905b81548152906001019060200180831161083057829003601f168201915b5050505050610995565b9150808060010191505061076f565b5080915050919050565b606060015483111561088157600080fd5b610889610c28565b60405180604001604052808481526020013373ffffffffffffffffffffffffffffffffffffffff168152509050806000808681526020019081526020016000206005016000806000888152602001908152602001600020600401548152602001908152602001600020600082015181600001908051906020019061090e929190610c58565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060016000808681526020019081526020016000206004015401600080868152602001908152602001600020600401819055508291505092915050565b6060808390506060839050606081518351016040519080825280601f01601f1916602001820160405280156109d95781602001600182028038833980820191505090505b5090506060819050600080905060008090505b8551811015610a5a57858181518110610a0157fe5b602001015160f81c60f81b838380600101945081518110610a1e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806001019150506109ec565b5060008090505b8451811015610acf57848181518110610a7657fe5b602001015160f81c60f81b838380600101945081518110610a9357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080600101915050610a61565b50819550505050505092915050565b6000610ae8610cd8565b6040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200185815260200160015481526020018481526020016000815250905080600080600154815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019080519060200190610ba2929190610c58565b50604082015181600201556060820151816003019080519060200190610bc9929190610c58565b506080820151816004015590505060018054016001819055507f64a55044d1f2eddebe1b90e8e2853e8e96931cefadbfa0b2ceb34bee3606194160018054036040518082815260200191505060405180910390a1600191505092915050565b604051806040016040528060608152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c9957805160ff1916838001178555610cc7565b82800160010185558215610cc7579182015b82811115610cc6578251825591602001919060010190610cab565b5b509050610cd49190610d1d565b5090565b6040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016000815260200160608152602001600081525090565b610d3f91905b80821115610d3b576000816000905550600101610d23565b5090565b9056fea2646970667358221220de56449e7bde4eef4b13237db4c5b0519cbbfda9986757a8146b28bd9483955e64736f6c63430006000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3CDE01B5 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x453BCCB6 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0x89C19DDB EQ PUSH2 0x236 JUMPI DUP1 PUSH4 0xA3D835C0 EQ PUSH2 0x401 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x56B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xBD JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA2 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEA JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x10E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x870 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1FB JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1E0 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x386 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x334 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x995 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3C6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3AB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x3F3 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x551 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x417 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x434 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x468 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x4DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x4FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0xADE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x50726F64756374204E616D653A20000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP PUSH2 0x66D DUP2 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x663 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x638 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x663 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 0x646 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH2 0x6AE DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3C62723E4D616E756661637475726520446174653A2000000000000000000000 DUP2 MSTORE POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH2 0x767 DUP2 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x75D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x732 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x75D 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 0x740 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x866 JUMPI PUSH2 0x857 DUP3 PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV 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 PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x84D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x822 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84D 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 0x830 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP PUSH2 0x995 JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x76F JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 SLOAD DUP4 GT ISZERO PUSH2 0x881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x889 PUSH2 0xC28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x5 ADD PUSH1 0x0 DUP1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x90E SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD SLOAD ADD PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD DUP2 SWAP1 SSTORE POP DUP3 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 DUP4 SWAP1 POP PUSH1 0x60 DUP4 SWAP1 POP PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x9D9 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x60 DUP2 SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP6 MLOAD DUP2 LT ISZERO PUSH2 0xA5A JUMPI DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA01 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA1E JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x9EC JUMP JUMPDEST POP PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xACF JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xA76 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xA93 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xA61 JUMP JUMPDEST POP DUP2 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE8 PUSH2 0xCD8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBA2 SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xBC9 SWAP3 SWAP2 SWAP1 PUSH2 0xC58 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE SWAP1 POP POP PUSH1 0x1 DUP1 SLOAD ADD PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH32 0x64A55044D1F2EDDEBE1B90E8E2853E8E96931CEFADBFA0B2CEB34BEE36061941 PUSH1 0x1 DUP1 SLOAD SUB PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0xC99 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xCC7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xCC7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xCC6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xCAB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xCD4 SWAP2 SWAP1 PUSH2 0xD1D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0xD3F SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xD3B JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xD23 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE JUMP DIFFICULTY SWAP15 PUSH28 0xDE4EEF4B13237DB4C5B0519CBBFDA9986757A8146B28BD9483955E64 PUSH20 0x6F6C634300060000330000000000000000000000 ",
"sourceMap": "25:2288:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:2288:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1751:555;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1751:555:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1751:555:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:434;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1307:434:0;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1307:434:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1307:434:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1307:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1307:434:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1307:434:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;450:507;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;450:507:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;450:507:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;450:507:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;450:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;450:507:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;450:507:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;450:507:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;450:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;450:507:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;450:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;967:330;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;967:330:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;967:330:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;967:330:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;967:330:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;967:330:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;967:330:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;967:330:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;967:330:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;967:330:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1751:555;1807:13;1853:5;;1841:10;:17;;1833:26;;;;;;1869:20;:37;;;;;;;;;;;;;;;;;;;1923:51;1930:6;1938:11;:23;1950:10;1938:23;;;;;;;;;;;:35;;1923:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;:51::i;:::-;1916:58;;1991:40;1998:6;1991:40;;;;;;;;;;;;;;;;;:6;:40::i;:::-;1984:47;;2048:44;2055:6;2063:11;:23;2075:10;2063:23;;;;;;;;;;;:28;;2048:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;:44::i;:::-;2041:51;;2116:9;2126:1;2116:11;;2111:157;2131:11;:23;2143:10;2131:23;;;;;;;;;;;:35;;;2129:1;:37;2111:157;;;2193:64;2200:6;2208:11;:23;2220:10;2208:23;;;;;;;;;;;:33;;:36;2242:1;2208:36;;;;;;;;;;;:48;;2193:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;:64::i;:::-;2186:71;;2168:3;;;;;;;2111:157;;;;2284:6;2277:13;;;1751:555;;;:::o;1307:434::-;1378:13;1423:5;;1411:10;:17;;1403:26;;;;;;1448:21;;:::i;:::-;1472:46;;;;;;;;1512:4;1472:46;;;;1487:10;1472:46;;;;;1448:70;;1610:8;1537:11;:23;1549:10;1537:23;;;;;;;;;;;:33;;:72;1572:11;:23;1584:10;1572:23;;;;;;;;;;;:35;;;1537:72;;;;;;;;;;;:81;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:1;1675:11;:23;1687:10;1675:23;;;;;;;;;;;:35;;;:38;1637:11;:23;1649:10;1637:23;;;;;;;;;;;:35;;:76;;;;1730:4;1723:11;;;1307:434;;;;:::o;450:507::-;518:13;542:20;571:2;542:32;;584:20;613:2;584:32;;626:23;680:7;:14;663:7;:14;:31;652:43;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;652:43:0;;;;626:69;;705:20;734:9;705:39;;754:6;763:1;754:10;;779:6;788:1;779:10;;774:67;795:7;:14;791:1;:18;774:67;;;831:7;839:1;831:10;;;;;;;;;;;;;;;;816:7;824:3;;;;;;816:12;;;;;;;;;;;:25;;;;;;;;;;;811:3;;;;;;;774:67;;;;856:6;865:1;856:10;;851:67;872:7;:14;868:1;:18;851:67;;;908:7;916:1;908:10;;;;;;;;;;;;;;;;893:7;901:3;;;;;;893:12;;;;;;;;;;;:25;;;;;;;;;;;888:3;;;;;;;851:67;;;;942:7;928:22;;;;;;;450:507;;;;:::o;967:330::-;1042:4;1058:22;;:::i;:::-;1083:96;;;;;;;;1101:10;1083:96;;;;;;1141:5;1083:96;;;;1159:5;;1083:96;;;;1172:5;1083:96;;;;1126:1;1083:96;;;1058:121;;1208:7;1189:11;:18;1201:5;;1189:18;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1239:1;1233:5;;:7;1225:5;:15;;;;1255:14;1267:1;1261:5;;:7;1255:14;;;;;;;;;;;;;;;;;;1286:4;1279:11;;;967:330;;;;:::o;25:2288::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "689600",
"executionCost": "5727",
"totalCost": "695327"
},
"external": {
"addState(uint256,string)": "infinite",
"concat(string,string)": "infinite",
"newItem(string,string)": "infinite",
"searchProduct(uint256)": "infinite"
}
},
"methodIdentifiers": {
"addState(uint256,string)": "453bccb6",
"concat(string,string)": "89c19ddb",
"newItem(string,string)": "a3d835c0",
"searchProduct(uint256)": "3cde01b5"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "Added",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_productId",
"type": "uint256"
},
{
"internalType": "string",
"name": "info",
"type": "string"
}
],
"name": "addState",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_a",
"type": "string"
},
{
"internalType": "string",
"name": "_b",
"type": "string"
}
],
"name": "concat",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_text",
"type": "string"
},
{
"internalType": "string",
"name": "_date",
"type": "string"
}
],
"name": "newItem",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_productId",
"type": "uint256"
}
],
"name": "searchProduct",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.0+commit.26b70077"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "Added",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_productId",
"type": "uint256"
},
{
"internalType": "string",
"name": "info",
"type": "string"
}
],
"name": "addState",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_a",
"type": "string"
},
{
"internalType": "string",
"name": "_b",
"type": "string"
}
],
"name": "concat",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_text",
"type": "string"
},
{
"internalType": "string",
"name": "_date",
"type": "string"
}
],
"name": "newItem",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_productId",
"type": "uint256"
}
],
"name": "searchProduct",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"SMARTCONT.sol": "SupplyChain"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"SMARTCONT.sol": {
"keccak256": "0x7c54e1f00b5f3d87f1cd4fc65e5033bf7afc72381f8e9f0b85c52401a00a5621",
"urls": [
"bzz-raw://c1853f8dc354c377c1612727d335ade8880f2993a9bda3798746a90094c60aaf",
"dweb:/ipfs/QmW6zJS9RTTxUVn9wP1xcy8nm7Qqq5Vvt79PBjQiGVocdD"
]
}
},
"version": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment