{
  "id": "695291c12c5ae4251f0d170c2ae17673",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.8.4",
  "solcLongVersion": "0.8.4+commit.c7e474f2",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/StaticMetadataService.sol": {
        "content": "//SPDX-License-Identifier: MIT\npragma solidity >=0.8.4;\n\ncontract StaticMetadataService {\n    string private _uri;\n\n    constructor(string memory _metaDataUri) {\n        _uri = _metaDataUri;\n    }\n\n    function uri(uint256) public view returns (string memory) {\n        return _uri;\n    }\n}\n"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers"
          ],
          "": [
            "ast"
          ]
        }
      }
    }
  },
  "output": {
    "contracts": {
      "contracts/StaticMetadataService.sol": {
        "StaticMetadataService": {
          "abi": [
            {
              "inputs": [
                {
                  "internalType": "string",
                  "name": "_metaDataUri",
                  "type": "string"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "constructor"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "name": "uri",
              "outputs": [
                {
                  "internalType": "string",
                  "name": "",
                  "type": "string"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "generatedSources": [
                {
                  "ast": {
                    "nodeType": "YulBlock",
                    "src": "0:1670:1",
                    "statements": [
                      {
                        "nodeType": "YulBlock",
                        "src": "6:3:1",
                        "statements": []
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "105:1046:1",
                          "statements": [
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "115:12:1",
                              "value": {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "125:2:1",
                                "type": "",
                                "value": "32"
                              },
                              "variables": [
                                {
                                  "name": "_1",
                                  "nodeType": "YulTypedName",
                                  "src": "119:2:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "172:26:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "181:6:1"
                                        },
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "189:6:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "174:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "174:22:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "174:22:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "147:7:1"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "156:9:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "143:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "143:23:1"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "168:2:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "139:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "139:32:1"
                              },
                              "nodeType": "YulIf",
                              "src": "136:2:1"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "207:30:1",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "227:9:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "mload",
                                  "nodeType": "YulIdentifier",
                                  "src": "221:5:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "221:16:1"
                              },
                              "variables": [
                                {
                                  "name": "offset",
                                  "nodeType": "YulTypedName",
                                  "src": "211:6:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "246:28:1",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "264:2:1",
                                        "type": "",
                                        "value": "64"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "268:1:1",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "260:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "260:10:1"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "272:1:1",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "256:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "256:18:1"
                              },
                              "variables": [
                                {
                                  "name": "_2",
                                  "nodeType": "YulTypedName",
                                  "src": "250:2:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "301:26:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "310:6:1"
                                        },
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "318:6:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "303:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "303:22:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "303:22:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "289:6:1"
                                  },
                                  {
                                    "name": "_2",
                                    "nodeType": "YulIdentifier",
                                    "src": "297:2:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "286:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "286:14:1"
                              },
                              "nodeType": "YulIf",
                              "src": "283:2:1"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "336:32:1",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "350:9:1"
                                  },
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "361:6:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "346:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "346:22:1"
                              },
                              "variables": [
                                {
                                  "name": "_3",
                                  "nodeType": "YulTypedName",
                                  "src": "340:2:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "416:26:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "425:6:1"
                                        },
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "433:6:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "418:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "418:22:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "418:22:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "_3",
                                            "nodeType": "YulIdentifier",
                                            "src": "395:2:1"
                                          },
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "399:4:1",
                                            "type": "",
                                            "value": "0x1f"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "391:3:1"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "391:13:1"
                                      },
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "406:7:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "slt",
                                      "nodeType": "YulIdentifier",
                                      "src": "387:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "387:27:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "380:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "380:35:1"
                              },
                              "nodeType": "YulIf",
                              "src": "377:2:1"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "451:19:1",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "_3",
                                    "nodeType": "YulIdentifier",
                                    "src": "467:2:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "mload",
                                  "nodeType": "YulIdentifier",
                                  "src": "461:5:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "461:9:1"
                              },
                              "variables": [
                                {
                                  "name": "_4",
                                  "nodeType": "YulTypedName",
                                  "src": "455:2:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "493:22:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [],
                                      "functionName": {
                                        "name": "panic_error_0x41",
                                        "nodeType": "YulIdentifier",
                                        "src": "495:16:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "495:18:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "495:18:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "_4",
                                    "nodeType": "YulIdentifier",
                                    "src": "485:2:1"
                                  },
                                  {
                                    "name": "_2",
                                    "nodeType": "YulIdentifier",
                                    "src": "489:2:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "482:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "482:10:1"
                              },
                              "nodeType": "YulIf",
                              "src": "479:2:1"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "524:17:1",
                              "value": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "538:2:1",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "534:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "534:7:1"
                              },
                              "variables": [
                                {
                                  "name": "_5",
                                  "nodeType": "YulTypedName",
                                  "src": "528:2:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "550:23:1",
                              "value": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "570:2:1",
                                    "type": "",
                                    "value": "64"
                                  }
                                ],
                                "functionName": {
                                  "name": "mload",
                                  "nodeType": "YulIdentifier",
                                  "src": "564:5:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "564:9:1"
                              },
                              "variables": [
                                {
                                  "name": "memPtr",
                                  "nodeType": "YulTypedName",
                                  "src": "554:6:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "582:71:1",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "memPtr",
                                    "nodeType": "YulIdentifier",
                                    "src": "604:6:1"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "name": "_4",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "628:2:1"
                                                  },
                                                  {
                                                    "kind": "number",
                                                    "nodeType": "YulLiteral",
                                                    "src": "632:4:1",
                                                    "type": "",
                                                    "value": "0x1f"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "add",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "624:3:1"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "624:13:1"
                                              },
                                              {
                                                "name": "_5",
                                                "nodeType": "YulIdentifier",
                                                "src": "639:2:1"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "and",
                                              "nodeType": "YulIdentifier",
                                              "src": "620:3:1"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "620:22:1"
                                          },
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "644:2:1",
                                            "type": "",
                                            "value": "63"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "616:3:1"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "616:31:1"
                                      },
                                      {
                                        "name": "_5",
                                        "nodeType": "YulIdentifier",
                                        "src": "649:2:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "and",
                                      "nodeType": "YulIdentifier",
                                      "src": "612:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "612:40:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "600:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "600:53:1"
                              },
                              "variables": [
                                {
                                  "name": "newFreePtr",
                                  "nodeType": "YulTypedName",
                                  "src": "586:10:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "712:22:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [],
                                      "functionName": {
                                        "name": "panic_error_0x41",
                                        "nodeType": "YulIdentifier",
                                        "src": "714:16:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "714:18:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "714:18:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "newFreePtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "671:10:1"
                                      },
                                      {
                                        "name": "_2",
                                        "nodeType": "YulIdentifier",
                                        "src": "683:2:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "gt",
                                      "nodeType": "YulIdentifier",
                                      "src": "668:2:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "668:18:1"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "newFreePtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "691:10:1"
                                      },
                                      {
                                        "name": "memPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "703:6:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "lt",
                                      "nodeType": "YulIdentifier",
                                      "src": "688:2:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "688:22:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "or",
                                  "nodeType": "YulIdentifier",
                                  "src": "665:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "665:46:1"
                              },
                              "nodeType": "YulIf",
                              "src": "662:2:1"
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "750:2:1",
                                    "type": "",
                                    "value": "64"
                                  },
                                  {
                                    "name": "newFreePtr",
                                    "nodeType": "YulIdentifier",
                                    "src": "754:10:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "743:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "743:22:1"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "743:22:1"
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "memPtr",
                                    "nodeType": "YulIdentifier",
                                    "src": "781:6:1"
                                  },
                                  {
                                    "name": "_4",
                                    "nodeType": "YulIdentifier",
                                    "src": "789:2:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "774:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "774:18:1"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "774:18:1"
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "838:26:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "847:6:1"
                                        },
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "855:6:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "840:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "840:22:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "840:22:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "_3",
                                            "nodeType": "YulIdentifier",
                                            "src": "815:2:1"
                                          },
                                          {
                                            "name": "_4",
                                            "nodeType": "YulIdentifier",
                                            "src": "819:2:1"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "811:3:1"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "811:11:1"
                                      },
                                      {
                                        "name": "_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "824:2:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "807:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "807:20:1"
                                  },
                                  {
                                    "name": "dataEnd",
                                    "nodeType": "YulIdentifier",
                                    "src": "829:7:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "804:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "804:33:1"
                              },
                              "nodeType": "YulIf",
                              "src": "801:2:1"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "873:15:1",
                              "value": {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "882:6:1"
                              },
                              "variables": [
                                {
                                  "name": "i",
                                  "nodeType": "YulTypedName",
                                  "src": "877:1:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "943:83:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "arguments": [
                                                {
                                                  "name": "memPtr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "972:6:1"
                                                },
                                                {
                                                  "name": "i",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "980:1:1"
                                                }
                                              ],
                                              "functionName": {
                                                "name": "add",
                                                "nodeType": "YulIdentifier",
                                                "src": "968:3:1"
                                              },
                                              "nodeType": "YulFunctionCall",
                                              "src": "968:14:1"
                                            },
                                            {
                                              "name": "_1",
                                              "nodeType": "YulIdentifier",
                                              "src": "984:2:1"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "add",
                                            "nodeType": "YulIdentifier",
                                            "src": "964:3:1"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "964:23:1"
                                        },
                                        {
                                          "arguments": [
                                            {
                                              "arguments": [
                                                {
                                                  "arguments": [
                                                    {
                                                      "name": "_3",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "1003:2:1"
                                                    },
                                                    {
                                                      "name": "i",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "1007:1:1"
                                                    }
                                                  ],
                                                  "functionName": {
                                                    "name": "add",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "999:3:1"
                                                  },
                                                  "nodeType": "YulFunctionCall",
                                                  "src": "999:10:1"
                                                },
                                                {
                                                  "name": "_1",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "1011:2:1"
                                                }
                                              ],
                                              "functionName": {
                                                "name": "add",
                                                "nodeType": "YulIdentifier",
                                                "src": "995:3:1"
                                              },
                                              "nodeType": "YulFunctionCall",
                                              "src": "995:19:1"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "mload",
                                            "nodeType": "YulIdentifier",
                                            "src": "989:5:1"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "989:26:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "mstore",
                                        "nodeType": "YulIdentifier",
                                        "src": "957:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "957:59:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "957:59:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "i",
                                    "nodeType": "YulIdentifier",
                                    "src": "908:1:1"
                                  },
                                  {
                                    "name": "_4",
                                    "nodeType": "YulIdentifier",
                                    "src": "911:2:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "lt",
                                  "nodeType": "YulIdentifier",
                                  "src": "905:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "905:9:1"
                              },
                              "nodeType": "YulForLoop",
                              "post": {
                                "nodeType": "YulBlock",
                                "src": "915:19:1",
                                "statements": [
                                  {
                                    "nodeType": "YulAssignment",
                                    "src": "917:15:1",
                                    "value": {
                                      "arguments": [
                                        {
                                          "name": "i",
                                          "nodeType": "YulIdentifier",
                                          "src": "926:1:1"
                                        },
                                        {
                                          "name": "_1",
                                          "nodeType": "YulIdentifier",
                                          "src": "929:2:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "922:3:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "922:10:1"
                                    },
                                    "variableNames": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "917:1:1"
                                      }
                                    ]
                                  }
                                ]
                              },
                              "pre": {
                                "nodeType": "YulBlock",
                                "src": "901:3:1",
                                "statements": []
                              },
                              "src": "897:129:1"
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "1056:64:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "arguments": [
                                                {
                                                  "name": "memPtr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "1085:6:1"
                                                },
                                                {
                                                  "name": "_4",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "1093:2:1"
                                                }
                                              ],
                                              "functionName": {
                                                "name": "add",
                                                "nodeType": "YulIdentifier",
                                                "src": "1081:3:1"
                                              },
                                              "nodeType": "YulFunctionCall",
                                              "src": "1081:15:1"
                                            },
                                            {
                                              "name": "_1",
                                              "nodeType": "YulIdentifier",
                                              "src": "1098:2:1"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "add",
                                            "nodeType": "YulIdentifier",
                                            "src": "1077:3:1"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "1077:24:1"
                                        },
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "1103:6:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "mstore",
                                        "nodeType": "YulIdentifier",
                                        "src": "1070:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1070:40:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1070:40:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "i",
                                    "nodeType": "YulIdentifier",
                                    "src": "1041:1:1"
                                  },
                                  {
                                    "name": "_4",
                                    "nodeType": "YulIdentifier",
                                    "src": "1044:2:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "1038:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1038:9:1"
                              },
                              "nodeType": "YulIf",
                              "src": "1035:2:1"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "1129:16:1",
                              "value": {
                                "name": "memPtr",
                                "nodeType": "YulIdentifier",
                                "src": "1139:6:1"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "1129:6:1"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "71:9:1",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "82:7:1",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "94:6:1",
                            "type": ""
                          }
                        ],
                        "src": "14:1137:1"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "1211:325:1",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "1221:22:1",
                              "value": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1235:1:1",
                                    "type": "",
                                    "value": "1"
                                  },
                                  {
                                    "name": "data",
                                    "nodeType": "YulIdentifier",
                                    "src": "1238:4:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "1231:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1231:12:1"
                              },
                              "variableNames": [
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "1221:6:1"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "1252:38:1",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "data",
                                    "nodeType": "YulIdentifier",
                                    "src": "1282:4:1"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1288:1:1",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nodeType": "YulIdentifier",
                                  "src": "1278:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1278:12:1"
                              },
                              "variables": [
                                {
                                  "name": "outOfPlaceEncoding",
                                  "nodeType": "YulTypedName",
                                  "src": "1256:18:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "1329:31:1",
                                "statements": [
                                  {
                                    "nodeType": "YulAssignment",
                                    "src": "1331:27:1",
                                    "value": {
                                      "arguments": [
                                        {
                                          "name": "length",
                                          "nodeType": "YulIdentifier",
                                          "src": "1345:6:1"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1353:4:1",
                                          "type": "",
                                          "value": "0x7f"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "and",
                                        "nodeType": "YulIdentifier",
                                        "src": "1341:3:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1341:17:1"
                                    },
                                    "variableNames": [
                                      {
                                        "name": "length",
                                        "nodeType": "YulIdentifier",
                                        "src": "1331:6:1"
                                      }
                                    ]
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "outOfPlaceEncoding",
                                    "nodeType": "YulIdentifier",
                                    "src": "1309:18:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "1302:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1302:26:1"
                              },
                              "nodeType": "YulIf",
                              "src": "1299:2:1"
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "1419:111:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1440:1:1",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "arguments": [
                                            {
                                              "kind": "number",
                                              "nodeType": "YulLiteral",
                                              "src": "1447:3:1",
                                              "type": "",
                                              "value": "224"
                                            },
                                            {
                                              "kind": "number",
                                              "nodeType": "YulLiteral",
                                              "src": "1452:10:1",
                                              "type": "",
                                              "value": "0x4e487b71"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "shl",
                                            "nodeType": "YulIdentifier",
                                            "src": "1443:3:1"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "1443:20:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "mstore",
                                        "nodeType": "YulIdentifier",
                                        "src": "1433:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1433:31:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1433:31:1"
                                  },
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1484:1:1",
                                          "type": "",
                                          "value": "4"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1487:4:1",
                                          "type": "",
                                          "value": "0x22"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "mstore",
                                        "nodeType": "YulIdentifier",
                                        "src": "1477:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1477:15:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1477:15:1"
                                  },
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1512:1:1",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1515:4:1",
                                          "type": "",
                                          "value": "0x24"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "1505:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1505:15:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1505:15:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "outOfPlaceEncoding",
                                    "nodeType": "YulIdentifier",
                                    "src": "1375:18:1"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "length",
                                        "nodeType": "YulIdentifier",
                                        "src": "1398:6:1"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1406:2:1",
                                        "type": "",
                                        "value": "32"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "lt",
                                      "nodeType": "YulIdentifier",
                                      "src": "1395:2:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1395:14:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "eq",
                                  "nodeType": "YulIdentifier",
                                  "src": "1372:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1372:38:1"
                              },
                              "nodeType": "YulIf",
                              "src": "1369:2:1"
                            }
                          ]
                        },
                        "name": "extract_byte_array_length",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "1191:4:1",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "length",
                            "nodeType": "YulTypedName",
                            "src": "1200:6:1",
                            "type": ""
                          }
                        ],
                        "src": "1156:380:1"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "1573:95:1",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1590:1:1",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1597:3:1",
                                        "type": "",
                                        "value": "224"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1602:10:1",
                                        "type": "",
                                        "value": "0x4e487b71"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "1593:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1593:20:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "1583:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1583:31:1"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "1583:31:1"
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1630:1:1",
                                    "type": "",
                                    "value": "4"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1633:4:1",
                                    "type": "",
                                    "value": "0x41"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "1623:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1623:15:1"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "1623:15:1"
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1654:1:1",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1657:4:1",
                                    "type": "",
                                    "value": "0x24"
                                  }
                                ],
                                "functionName": {
                                  "name": "revert",
                                  "nodeType": "YulIdentifier",
                                  "src": "1647:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1647:15:1"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "1647:15:1"
                            }
                          ]
                        },
                        "name": "panic_error_0x41",
                        "nodeType": "YulFunctionDefinition",
                        "src": "1541:127:1"
                      }
                    ]
                  },
                  "contents": "{\n    { }\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n        let offset := mload(headStart)\n        let _2 := sub(shl(64, 1), 1)\n        if gt(offset, _2) { revert(value0, value0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _4 := mload(_3)\n        if gt(_4, _2) { panic_error_0x41() }\n        let _5 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_4, 0x1f), _5), 63), _5))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _4)\n        if gt(add(add(_3, _4), _1), dataEnd) { revert(value0, value0) }\n        let i := value0\n        for { } lt(i, _4) { i := add(i, _1) }\n        {\n            mstore(add(add(memPtr, i), _1), mload(add(add(_3, i), _1)))\n        }\n        if gt(i, _4)\n        {\n            mstore(add(add(memPtr, _4), _1), value0)\n        }\n        value0 := memPtr\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n}",
                  "id": 1,
                  "language": "Yul",
                  "name": "#utility.yul"
                }
              ],
              "linkReferences": {},
              "object": "608060405234801561001057600080fd5b506040516103d43803806103d483398101604081905261002f916100e2565b8051610042906000906020840190610049565b50506101fc565b828054610055906101ab565b90600052602060002090601f01602090048101928261007757600085556100bd565b82601f1061009057805160ff19168380011785556100bd565b828001600101855582156100bd579182015b828111156100bd5782518255916020019190600101906100a2565b506100c99291506100cd565b5090565b5b808211156100c957600081556001016100ce565b600060208083850312156100f4578182fd5b82516001600160401b038082111561010a578384fd5b818501915085601f83011261011d578384fd5b81518181111561012f5761012f6101e6565b604051601f8201601f19908116603f01168101908382118183101715610157576101576101e6565b81604052828152888684870101111561016e578687fd5b8693505b8284101561018f5784840186015181850187015292850192610172565b8284111561019f57868684830101525b98975050505050505050565b600181811c908216806101bf57607f821691505b602082108114156101e057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6101c98061020b6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80630e89341c14610030575b600080fd5b61004361003e3660046100ed565b610059565b6040516100509190610105565b60405180910390f35b60606000805461006890610158565b80601f016020809104026020016040519081016040528092919081815260200182805461009490610158565b80156100e15780601f106100b6576101008083540402835291602001916100e1565b820191906000526020600020905b8154815290600101906020018083116100c457829003601f168201915b50505050509050919050565b6000602082840312156100fe578081fd5b5035919050565b6000602080835283518082850152825b8181101561013157858101830151858201604001528201610115565b818111156101425783604083870101525b50601f01601f1916929092016040019392505050565b600181811c9082168061016c57607f821691505b6020821081141561018d57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220134f5965305fa222208cedda184445c0c8cb598bcf24756c7832d90088d9bfae64736f6c63430008040033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3D4 CODESIZE SUB DUP1 PUSH2 0x3D4 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xE2 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x42 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x49 JUMP JUMPDEST POP POP PUSH2 0x1FC JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x55 SWAP1 PUSH2 0x1AB JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x77 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0xBD JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x90 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xBD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xBD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xBD JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xA2 JUMP JUMPDEST POP PUSH2 0xC9 SWAP3 SWAP2 POP PUSH2 0xCD JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x10A JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x11D JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x12F JUMPI PUSH2 0x12F PUSH2 0x1E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x157 JUMPI PUSH2 0x157 PUSH2 0x1E6 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 DUP7 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x16E JUMPI DUP7 DUP8 REVERT JUMPDEST DUP7 SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH2 0x18F JUMPI DUP5 DUP5 ADD DUP7 ADD MLOAD DUP2 DUP6 ADD DUP8 ADD MSTORE SWAP3 DUP6 ADD SWAP3 PUSH2 0x172 JUMP JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0x19F JUMPI DUP7 DUP7 DUP5 DUP4 ADD ADD MSTORE JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1BF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1E0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1C9 DUP1 PUSH2 0x20B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xE89341C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xED JUMP JUMPDEST PUSH2 0x59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x105 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x68 SWAP1 PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x94 SWAP1 PUSH2 0x158 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE1 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 0xC4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x131 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x115 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x142 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x16C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x18D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0x4F MSIZE PUSH6 0x305FA222208C 0xED 0xDA XOR DIFFICULTY GASLIMIT 0xC0 0xC8 0xCB MSIZE DUP12 0xCF 0x24 PUSH22 0x6C7832D90088D9BFAE64736F6C634300080400330000 ",
              "sourceMap": "57:233:0:-:0;;;120:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;170:19;;;;:4;;:19;;;;;:::i;:::-;;120:76;57:233;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;57:233:0;;;-1:-1:-1;57:233:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:1137:1;94:6;125:2;168;156:9;147:7;143:23;139:32;136:2;;;189:6;181;174:22;136:2;221:16;;-1:-1:-1;;;;;286:14:1;;;283:2;;;318:6;310;303:22;283:2;361:6;350:9;346:22;336:32;;406:7;399:4;395:2;391:13;387:27;377:2;;433:6;425;418:22;377:2;467;461:9;489:2;485;482:10;479:2;;;495:18;;:::i;:::-;570:2;564:9;538:2;624:13;;-1:-1:-1;;620:22:1;;;644:2;616:31;612:40;600:53;;;668:18;;;688:22;;;665:46;662:2;;;714:18;;:::i;:::-;754:10;750:2;743:22;789:2;781:6;774:18;829:7;824:2;819;815;811:11;807:20;804:33;801:2;;;855:6;847;840:22;801:2;882:6;873:15;;897:129;911:2;908:1;905:9;897:129;;;999:10;;;995:19;;989:26;968:14;;;964:23;;957:59;922:10;;;;897:129;;;1044:2;1041:1;1038:9;1035:2;;;1103:6;1098:2;1093;1085:6;1081:15;1077:24;1070:40;1035:2;1139:6;105:1046;-1:-1:-1;;;;;;;;105:1046:1:o;1156:380::-;1235:1;1231:12;;;;1278;;;1299:2;;1353:4;1345:6;1341:17;1331:27;;1299:2;1406;1398:6;1395:14;1375:18;1372:38;1369:2;;;1452:10;1447:3;1443:20;1440:1;1433:31;1487:4;1484:1;1477:15;1515:4;1512:1;1505:15;1369:2;;1211:325;;;:::o;1541:127::-;1602:10;1597:3;1593:20;1590:1;1583:31;1633:4;1630:1;1623:15;1657:4;1654:1;1647:15;1573:95;57:233:0;;;;;;"
            },
            "deployedBytecode": {
              "generatedSources": [
                {
                  "ast": {
                    "nodeType": "YulBlock",
                    "src": "0:1199:1",
                    "statements": [
                      {
                        "nodeType": "YulBlock",
                        "src": "6:3:1",
                        "statements": []
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "84:120:1",
                          "statements": [
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "130:26:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "139:6:1"
                                        },
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "147:6:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "132:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "132:22:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "132:22:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "dataEnd",
                                        "nodeType": "YulIdentifier",
                                        "src": "105:7:1"
                                      },
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "114:9:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "101:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "101:23:1"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "126:2:1",
                                    "type": "",
                                    "value": "32"
                                  }
                                ],
                                "functionName": {
                                  "name": "slt",
                                  "nodeType": "YulIdentifier",
                                  "src": "97:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "97:32:1"
                              },
                              "nodeType": "YulIf",
                              "src": "94:2:1"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "165:33:1",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "188:9:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "calldataload",
                                  "nodeType": "YulIdentifier",
                                  "src": "175:12:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "175:23:1"
                              },
                              "variableNames": [
                                {
                                  "name": "value0",
                                  "nodeType": "YulIdentifier",
                                  "src": "165:6:1"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_decode_tuple_t_uint256",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "50:9:1",
                            "type": ""
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulTypedName",
                            "src": "61:7:1",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "73:6:1",
                            "type": ""
                          }
                        ],
                        "src": "14:190:1"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "330:482:1",
                          "statements": [
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "340:12:1",
                              "value": {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "350:2:1",
                                "type": "",
                                "value": "32"
                              },
                              "variables": [
                                {
                                  "name": "_1",
                                  "nodeType": "YulTypedName",
                                  "src": "344:2:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "headStart",
                                    "nodeType": "YulIdentifier",
                                    "src": "368:9:1"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "379:2:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "361:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "361:21:1"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "361:21:1"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "391:27:1",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "value0",
                                    "nodeType": "YulIdentifier",
                                    "src": "411:6:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "mload",
                                  "nodeType": "YulIdentifier",
                                  "src": "405:5:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "405:13:1"
                              },
                              "variables": [
                                {
                                  "name": "length",
                                  "nodeType": "YulTypedName",
                                  "src": "395:6:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "438:9:1"
                                      },
                                      {
                                        "name": "_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "449:2:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "434:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "434:18:1"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "454:6:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "mstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "427:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "427:34:1"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "427:34:1"
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "470:13:1",
                              "value": {
                                "name": "tail",
                                "nodeType": "YulIdentifier",
                                "src": "479:4:1"
                              },
                              "variables": [
                                {
                                  "name": "i",
                                  "nodeType": "YulTypedName",
                                  "src": "474:1:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "542:90:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "arguments": [
                                                {
                                                  "name": "headStart",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "571:9:1"
                                                },
                                                {
                                                  "name": "i",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "582:1:1"
                                                }
                                              ],
                                              "functionName": {
                                                "name": "add",
                                                "nodeType": "YulIdentifier",
                                                "src": "567:3:1"
                                              },
                                              "nodeType": "YulFunctionCall",
                                              "src": "567:17:1"
                                            },
                                            {
                                              "kind": "number",
                                              "nodeType": "YulLiteral",
                                              "src": "586:2:1",
                                              "type": "",
                                              "value": "64"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "add",
                                            "nodeType": "YulIdentifier",
                                            "src": "563:3:1"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "563:26:1"
                                        },
                                        {
                                          "arguments": [
                                            {
                                              "arguments": [
                                                {
                                                  "arguments": [
                                                    {
                                                      "name": "value0",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "605:6:1"
                                                    },
                                                    {
                                                      "name": "i",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "613:1:1"
                                                    }
                                                  ],
                                                  "functionName": {
                                                    "name": "add",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "601:3:1"
                                                  },
                                                  "nodeType": "YulFunctionCall",
                                                  "src": "601:14:1"
                                                },
                                                {
                                                  "name": "_1",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "617:2:1"
                                                }
                                              ],
                                              "functionName": {
                                                "name": "add",
                                                "nodeType": "YulIdentifier",
                                                "src": "597:3:1"
                                              },
                                              "nodeType": "YulFunctionCall",
                                              "src": "597:23:1"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "mload",
                                            "nodeType": "YulIdentifier",
                                            "src": "591:5:1"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "591:30:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "mstore",
                                        "nodeType": "YulIdentifier",
                                        "src": "556:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "556:66:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "556:66:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "i",
                                    "nodeType": "YulIdentifier",
                                    "src": "503:1:1"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "506:6:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "lt",
                                  "nodeType": "YulIdentifier",
                                  "src": "500:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "500:13:1"
                              },
                              "nodeType": "YulForLoop",
                              "post": {
                                "nodeType": "YulBlock",
                                "src": "514:19:1",
                                "statements": [
                                  {
                                    "nodeType": "YulAssignment",
                                    "src": "516:15:1",
                                    "value": {
                                      "arguments": [
                                        {
                                          "name": "i",
                                          "nodeType": "YulIdentifier",
                                          "src": "525:1:1"
                                        },
                                        {
                                          "name": "_1",
                                          "nodeType": "YulIdentifier",
                                          "src": "528:2:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "521:3:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "521:10:1"
                                    },
                                    "variableNames": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "516:1:1"
                                      }
                                    ]
                                  }
                                ]
                              },
                              "pre": {
                                "nodeType": "YulBlock",
                                "src": "496:3:1",
                                "statements": []
                              },
                              "src": "492:140:1"
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "666:69:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "arguments": [
                                                {
                                                  "name": "headStart",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "695:9:1"
                                                },
                                                {
                                                  "name": "length",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "706:6:1"
                                                }
                                              ],
                                              "functionName": {
                                                "name": "add",
                                                "nodeType": "YulIdentifier",
                                                "src": "691:3:1"
                                              },
                                              "nodeType": "YulFunctionCall",
                                              "src": "691:22:1"
                                            },
                                            {
                                              "kind": "number",
                                              "nodeType": "YulLiteral",
                                              "src": "715:2:1",
                                              "type": "",
                                              "value": "64"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "add",
                                            "nodeType": "YulIdentifier",
                                            "src": "687:3:1"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "687:31:1"
                                        },
                                        {
                                          "name": "tail",
                                          "nodeType": "YulIdentifier",
                                          "src": "720:4:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "mstore",
                                        "nodeType": "YulIdentifier",
                                        "src": "680:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "680:45:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "680:45:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "i",
                                    "nodeType": "YulIdentifier",
                                    "src": "647:1:1"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "650:6:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "gt",
                                  "nodeType": "YulIdentifier",
                                  "src": "644:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "644:13:1"
                              },
                              "nodeType": "YulIf",
                              "src": "641:2:1"
                            },
                            {
                              "nodeType": "YulAssignment",
                              "src": "744:62:1",
                              "value": {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "headStart",
                                        "nodeType": "YulIdentifier",
                                        "src": "760:9:1"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "length",
                                                "nodeType": "YulIdentifier",
                                                "src": "779:6:1"
                                              },
                                              {
                                                "kind": "number",
                                                "nodeType": "YulLiteral",
                                                "src": "787:2:1",
                                                "type": "",
                                                "value": "31"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "775:3:1"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "775:15:1"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "kind": "number",
                                                "nodeType": "YulLiteral",
                                                "src": "796:2:1",
                                                "type": "",
                                                "value": "31"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "792:3:1"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "792:7:1"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "771:3:1"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "771:29:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "756:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "756:45:1"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "803:2:1",
                                    "type": "",
                                    "value": "64"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "752:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "752:54:1"
                              },
                              "variableNames": [
                                {
                                  "name": "tail",
                                  "nodeType": "YulIdentifier",
                                  "src": "744:4:1"
                                }
                              ]
                            }
                          ]
                        },
                        "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "headStart",
                            "nodeType": "YulTypedName",
                            "src": "299:9:1",
                            "type": ""
                          },
                          {
                            "name": "value0",
                            "nodeType": "YulTypedName",
                            "src": "310:6:1",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "tail",
                            "nodeType": "YulTypedName",
                            "src": "321:4:1",
                            "type": ""
                          }
                        ],
                        "src": "209:603:1"
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "872:325:1",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "882:22:1",
                              "value": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "896:1:1",
                                    "type": "",
                                    "value": "1"
                                  },
                                  {
                                    "name": "data",
                                    "nodeType": "YulIdentifier",
                                    "src": "899:4:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "892:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "892:12:1"
                              },
                              "variableNames": [
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "882:6:1"
                                }
                              ]
                            },
                            {
                              "nodeType": "YulVariableDeclaration",
                              "src": "913:38:1",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "data",
                                    "nodeType": "YulIdentifier",
                                    "src": "943:4:1"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "949:1:1",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nodeType": "YulIdentifier",
                                  "src": "939:3:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "939:12:1"
                              },
                              "variables": [
                                {
                                  "name": "outOfPlaceEncoding",
                                  "nodeType": "YulTypedName",
                                  "src": "917:18:1",
                                  "type": ""
                                }
                              ]
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "990:31:1",
                                "statements": [
                                  {
                                    "nodeType": "YulAssignment",
                                    "src": "992:27:1",
                                    "value": {
                                      "arguments": [
                                        {
                                          "name": "length",
                                          "nodeType": "YulIdentifier",
                                          "src": "1006:6:1"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1014:4:1",
                                          "type": "",
                                          "value": "0x7f"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "and",
                                        "nodeType": "YulIdentifier",
                                        "src": "1002:3:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1002:17:1"
                                    },
                                    "variableNames": [
                                      {
                                        "name": "length",
                                        "nodeType": "YulIdentifier",
                                        "src": "992:6:1"
                                      }
                                    ]
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "outOfPlaceEncoding",
                                    "nodeType": "YulIdentifier",
                                    "src": "970:18:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "963:6:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "963:26:1"
                              },
                              "nodeType": "YulIf",
                              "src": "960:2:1"
                            },
                            {
                              "body": {
                                "nodeType": "YulBlock",
                                "src": "1080:111:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1101:1:1",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "arguments": [
                                            {
                                              "kind": "number",
                                              "nodeType": "YulLiteral",
                                              "src": "1108:3:1",
                                              "type": "",
                                              "value": "224"
                                            },
                                            {
                                              "kind": "number",
                                              "nodeType": "YulLiteral",
                                              "src": "1113:10:1",
                                              "type": "",
                                              "value": "0x4e487b71"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "shl",
                                            "nodeType": "YulIdentifier",
                                            "src": "1104:3:1"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "1104:20:1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "mstore",
                                        "nodeType": "YulIdentifier",
                                        "src": "1094:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1094:31:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1094:31:1"
                                  },
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1145:1:1",
                                          "type": "",
                                          "value": "4"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1148:4:1",
                                          "type": "",
                                          "value": "0x22"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "mstore",
                                        "nodeType": "YulIdentifier",
                                        "src": "1138:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1138:15:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1138:15:1"
                                  },
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1173:1:1",
                                          "type": "",
                                          "value": "0"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1176:4:1",
                                          "type": "",
                                          "value": "0x24"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "revert",
                                        "nodeType": "YulIdentifier",
                                        "src": "1166:6:1"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1166:15:1"
                                    },
                                    "nodeType": "YulExpressionStatement",
                                    "src": "1166:15:1"
                                  }
                                ]
                              },
                              "condition": {
                                "arguments": [
                                  {
                                    "name": "outOfPlaceEncoding",
                                    "nodeType": "YulIdentifier",
                                    "src": "1036:18:1"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "length",
                                        "nodeType": "YulIdentifier",
                                        "src": "1059:6:1"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1067:2:1",
                                        "type": "",
                                        "value": "32"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "lt",
                                      "nodeType": "YulIdentifier",
                                      "src": "1056:2:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1056:14:1"
                                  }
                                ],
                                "functionName": {
                                  "name": "eq",
                                  "nodeType": "YulIdentifier",
                                  "src": "1033:2:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1033:38:1"
                              },
                              "nodeType": "YulIf",
                              "src": "1030:2:1"
                            }
                          ]
                        },
                        "name": "extract_byte_array_length",
                        "nodeType": "YulFunctionDefinition",
                        "parameters": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "852:4:1",
                            "type": ""
                          }
                        ],
                        "returnVariables": [
                          {
                            "name": "length",
                            "nodeType": "YulTypedName",
                            "src": "861:6:1",
                            "type": ""
                          }
                        ],
                        "src": "817:380:1"
                      }
                    ]
                  },
                  "contents": "{\n    { }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), length)\n        let i := tail\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 64), tail)\n        }\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n}",
                  "id": 1,
                  "language": "Yul",
                  "name": "#utility.yul"
                }
              ],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80630e89341c14610030575b600080fd5b61004361003e3660046100ed565b610059565b6040516100509190610105565b60405180910390f35b60606000805461006890610158565b80601f016020809104026020016040519081016040528092919081815260200182805461009490610158565b80156100e15780601f106100b6576101008083540402835291602001916100e1565b820191906000526020600020905b8154815290600101906020018083116100c457829003601f168201915b50505050509050919050565b6000602082840312156100fe578081fd5b5035919050565b6000602080835283518082850152825b8181101561013157858101830151858201604001528201610115565b818111156101425783604083870101525b50601f01601f1916929092016040019392505050565b600181811c9082168061016c57607f821691505b6020821081141561018d57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220134f5965305fa222208cedda184445c0c8cb598bcf24756c7832d90088d9bfae64736f6c63430008040033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xE89341C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xED JUMP JUMPDEST PUSH2 0x59 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x105 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x68 SWAP1 PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x94 SWAP1 PUSH2 0x158 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE1 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 0xC4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFE JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x131 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x115 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x142 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x16C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x18D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT 0x4F MSIZE PUSH6 0x305FA222208C 0xED 0xDA XOR DIFFICULTY GASLIMIT 0xC0 0xC8 0xCB MSIZE DUP12 0xCF 0x24 PUSH22 0x6C7832D90088D9BFAE64736F6C634300080400330000 ",
              "sourceMap": "57:233:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:86;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;245:13;277:4;270:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:86;;;:::o;14:190:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;-1:-1:-1;175:23:1;;84:120;-1:-1:-1;84:120:1:o;209:603::-;321:4;350:2;379;368:9;361:21;411:6;405:13;454:6;449:2;438:9;434:18;427:34;479:4;492:140;506:6;503:1;500:13;492:140;;;601:14;;;597:23;;591:30;567:17;;;586:2;563:26;556:66;521:10;;492:140;;;650:6;647:1;644:13;641:2;;;720:4;715:2;706:6;695:9;691:22;687:31;680:45;641:2;-1:-1:-1;796:2:1;775:15;-1:-1:-1;;771:29:1;756:45;;;;803:2;752:54;;330:482;-1:-1:-1;;;330:482:1:o;817:380::-;896:1;892:12;;;;939;;;960:2;;1014:4;1006:6;1002:17;992:27;;960:2;1067;1059:6;1056:14;1036:18;1033:38;1030:2;;;1113:10;1108:3;1104:20;1101:1;1094:31;1148:4;1145:1;1138:15;1176:4;1173:1;1166:15;1030:2;;872:325;;;:::o"
            },
            "methodIdentifiers": {
              "uri(uint256)": "0e89341c"
            }
          }
        }
      }
    },
    "sources": {
      "contracts/StaticMetadataService.sol": {
        "ast": {
          "absolutePath": "contracts/StaticMetadataService.sol",
          "exportedSymbols": {
            "StaticMetadataService": [
              24
            ]
          },
          "id": 25,
          "license": "MIT",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1,
              "literals": [
                "solidity",
                ">=",
                "0.8",
                ".4"
              ],
              "nodeType": "PragmaDirective",
              "src": "31:24:0"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "contractDependencies": [],
              "contractKind": "contract",
              "fullyImplemented": true,
              "id": 24,
              "linearizedBaseContracts": [
                24
              ],
              "name": "StaticMetadataService",
              "nameLocation": "66:21:0",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "constant": false,
                  "id": 3,
                  "mutability": "mutable",
                  "name": "_uri",
                  "nameLocation": "109:4:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 24,
                  "src": "94:19:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "94:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "private"
                },
                {
                  "body": {
                    "id": 12,
                    "nodeType": "Block",
                    "src": "160:36:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 10,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8,
                            "name": "_uri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3,
                            "src": "170:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_storage",
                              "typeString": "string storage ref"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 9,
                            "name": "_metaDataUri",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5,
                            "src": "177:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "src": "170:19:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        "id": 11,
                        "nodeType": "ExpressionStatement",
                        "src": "170:19:0"
                      }
                    ]
                  },
                  "id": 13,
                  "implemented": true,
                  "kind": "constructor",
                  "modifiers": [],
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 6,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 5,
                        "mutability": "mutable",
                        "name": "_metaDataUri",
                        "nameLocation": "146:12:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 13,
                        "src": "132:26:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string"
                        },
                        "typeName": {
                          "id": 4,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "132:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "131:28:0"
                  },
                  "returnParameters": {
                    "id": 7,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "160:0:0"
                  },
                  "scope": 24,
                  "src": "120:76:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 22,
                    "nodeType": "Block",
                    "src": "260:28:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 20,
                          "name": "_uri",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3,
                          "src": "277:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage",
                            "typeString": "string storage ref"
                          }
                        },
                        "functionReturnParameters": 19,
                        "id": 21,
                        "nodeType": "Return",
                        "src": "270:11:0"
                      }
                    ]
                  },
                  "functionSelector": "0e89341c",
                  "id": 23,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "uri",
                  "nameLocation": "211:3:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 16,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 15,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 23,
                        "src": "215:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 14,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "215:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "214:9:0"
                  },
                  "returnParameters": {
                    "id": 19,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 18,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 23,
                        "src": "245:13:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string"
                        },
                        "typeName": {
                          "id": 17,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "245:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "244:15:0"
                  },
                  "scope": 24,
                  "src": "202:86:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "public"
                }
              ],
              "scope": 25,
              "src": "57:233:0",
              "usedErrors": []
            }
          ],
          "src": "31:260:0"
        },
        "id": 0
      }
    }
  }
}
