{
  "contractName": "JCCTokenList",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "transferAdministrator",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "admin",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "chainId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_origin",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "issuer",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "symbol",
          "type": "string"
        }
      ],
      "name": "Add",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Remove",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousAdmin",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "AdministratorTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "uint256"
        },
        {
          "name": "_chainId",
          "type": "uint256"
        },
        {
          "name": "_origin",
          "type": "bytes32"
        },
        {
          "name": "_issuer",
          "type": "string"
        },
        {
          "name": "_symbol",
          "type": "string"
        }
      ],
      "name": "insert",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "uint256"
        }
      ],
      "name": "remove",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_idx",
          "type": "uint256"
        }
      ],
      "name": "get",
      "outputs": [
        {
          "components": [
            {
              "name": "idx",
              "type": "uint256"
            },
            {
              "name": "id",
              "type": "uint256"
            },
            {
              "name": "chainId",
              "type": "uint256"
            },
            {
              "name": "origin",
              "type": "bytes32"
            },
            {
              "name": "issuer",
              "type": "string"
            },
            {
              "name": "symbol",
              "type": "string"
            }
          ],
          "name": "",
          "type": "tuple"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_id",
          "type": "uint256"
        }
      ],
      "name": "getById",
      "outputs": [
        {
          "components": [
            {
              "name": "idx",
              "type": "uint256"
            },
            {
              "name": "id",
              "type": "uint256"
            },
            {
              "name": "chainId",
              "type": "uint256"
            },
            {
              "name": "origin",
              "type": "bytes32"
            },
            {
              "name": "issuer",
              "type": "string"
            },
            {
              "name": "symbol",
              "type": "string"
            }
          ],
          "name": "",
          "type": "tuple"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_chainId",
          "type": "uint256"
        },
        {
          "name": "_symbol",
          "type": "string"
        }
      ],
      "name": "getBySymbol",
      "outputs": [
        {
          "components": [
            {
              "name": "idx",
              "type": "uint256"
            },
            {
              "name": "id",
              "type": "uint256"
            },
            {
              "name": "chainId",
              "type": "uint256"
            },
            {
              "name": "origin",
              "type": "bytes32"
            },
            {
              "name": "issuer",
              "type": "string"
            },
            {
              "name": "symbol",
              "type": "string"
            }
          ],
          "name": "",
          "type": "tuple"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_chainId",
          "type": "uint256"
        },
        {
          "name": "_issuer",
          "type": "string"
        }
      ],
      "name": "getByIssuer",
      "outputs": [
        {
          "components": [
            {
              "name": "idx",
              "type": "uint256"
            },
            {
              "name": "id",
              "type": "uint256"
            },
            {
              "name": "chainId",
              "type": "uint256"
            },
            {
              "name": "origin",
              "type": "bytes32"
            },
            {
              "name": "issuer",
              "type": "string"
            },
            {
              "name": "symbol",
              "type": "string"
            }
          ],
          "name": "",
          "type": "tuple"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_origin",
          "type": "bytes32"
        }
      ],
      "name": "getCrossList",
      "outputs": [
        {
          "components": [
            {
              "name": "idx",
              "type": "uint256"
            },
            {
              "name": "id",
              "type": "uint256"
            },
            {
              "name": "chainId",
              "type": "uint256"
            },
            {
              "name": "origin",
              "type": "bytes32"
            },
            {
              "name": "issuer",
              "type": "string"
            },
            {
              "name": "symbol",
              "type": "string"
            }
          ],
          "name": "",
          "type": "tuple[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "from",
          "type": "uint256"
        },
        {
          "name": "_count",
          "type": "uint256"
        }
      ],
      "name": "getList",
      "outputs": [
        {
          "components": [
            {
              "name": "idx",
              "type": "uint256"
            },
            {
              "name": "id",
              "type": "uint256"
            },
            {
              "name": "chainId",
              "type": "uint256"
            },
            {
              "name": "origin",
              "type": "bytes32"
            },
            {
              "name": "issuer",
              "type": "string"
            },
            {
              "name": "symbol",
              "type": "string"
            }
          ],
          "name": "",
          "type": "tuple[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "count",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"count\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_chainId\",\"type\":\"uint256\"},{\"name\":\"_issuer\",\"type\":\"string\"}],\"name\":\"getByIssuer\",\"outputs\":[{\"components\":[{\"name\":\"idx\",\"type\":\"uint256\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"origin\",\"type\":\"bytes32\"},{\"name\":\"issuer\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_id\",\"type\":\"uint256\"},{\"name\":\"_chainId\",\"type\":\"uint256\"},{\"name\":\"_origin\",\"type\":\"bytes32\"},{\"name\":\"_issuer\",\"type\":\"string\"},{\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"insert\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_id\",\"type\":\"uint256\"}],\"name\":\"remove\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_chainId\",\"type\":\"uint256\"},{\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"getBySymbol\",\"outputs\":[{\"components\":[{\"name\":\"idx\",\"type\":\"uint256\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"origin\",\"type\":\"bytes32\"},{\"name\":\"issuer\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_idx\",\"type\":\"uint256\"}],\"name\":\"get\",\"outputs\":[{\"components\":[{\"name\":\"idx\",\"type\":\"uint256\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"origin\",\"type\":\"bytes32\"},{\"name\":\"issuer\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_origin\",\"type\":\"bytes32\"}],\"name\":\"getCrossList\",\"outputs\":[{\"components\":[{\"name\":\"idx\",\"type\":\"uint256\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"origin\",\"type\":\"bytes32\"},{\"name\":\"issuer\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"\",\"type\":\"tuple[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"from\",\"type\":\"uint256\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getList\",\"outputs\":[{\"components\":[{\"name\":\"idx\",\"type\":\"uint256\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"origin\",\"type\":\"bytes32\"},{\"name\":\"issuer\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"\",\"type\":\"tuple[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdministrator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_id\",\"type\":\"uint256\"}],\"name\":\"getById\",\"outputs\":[{\"components\":[{\"name\":\"idx\",\"type\":\"uint256\"},{\"name\":\"id\",\"type\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\"},{\"name\":\"origin\",\"type\":\"bytes32\"},{\"name\":\"issuer\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_origin\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"issuer\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"Add\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Remove\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdministratorTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"renounceOwnership()\":{\"details\":\"\\u653e\\u5f03\\u5408\\u7ea6\\u7684\\u6240\\u6709\\u6743\\uff0c\\u6ce8\\u610f\\uff0c\\u5408\\u7ea6\\u6ca1\\u6709\\u4efb\\u4f55\\u4eba\\u53ef\\u4ee5\\u62e5\\u6709\\u4e86\\uff0c\\u90a3\\u4e48\\u5f88\\u591a\\u62e5\\u6709\\u8005\\u5e94\\u8be5\\u6709\\u7684\\u80fd\\u529b\\uff0c\\u90fd\\u4e0d\\u80fd\\u8bbf\\u95ee\\u4e86\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/utils/JCCTokenList.sol\":\"JCCTokenList\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol\":{\"keccak256\":\"0x4a2749c11f41cce84af3cd102517593a068b8a8df3f9e74267432e5de290b362\",\"urls\":[\"bzzr://3a8b602bb2ec0f0542c73e335cda648fb5b1f9f773e92dd53f06bbbfd8d52b92\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x239546071316c89d3bbc9e61b2ccae270a4493bbd2f7c240052f533807d50ab7\",\"urls\":[\"bzzr://267bf48e0a30f7b671aa3c98a6b27ffe7bc64efd6533f49e54188b520baa94c5\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/owner/Administrative.sol\":{\"keccak256\":\"0xca1f191b7611b7fec06b5c299eaf62dcca56dbbf9f6e3d3eaa7114466df35440\",\"urls\":[\"bzzr://74c8c8a8d3e19a60d6bfe9c7dc3b4c4b037876d5fc4b842ddce6c894e3f0f575\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/utils/JCCTokenList.sol\":{\"keccak256\":\"0x7c9cc588138aac488d7c3901d12c2aa37ab99bfd4cd2a4b7d5a0bf87b0abacb1\",\"urls\":[\"bzzr://69a460d607991791f90b89f6688de641c01b8472ec3bcc6cdc5bb291c1fb393e\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b506000805433600160a060020a0319918216811780845560018054909316909117909155604051600160a060020a0390911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600154604051600160a060020a03909116906000907f399b55200f7f639a63d76efe3dcfa9156ce367058d6b673041b84a628885f5a7908290a3612591806100b26000396000f3006080604052600436106100cf5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306661abd81146100d45780631aafff66146100ff57806326d325ac1461012c5780634cc822151461015957806366f1ef6c14610179578063715018a6146101995780638da5cb5b146101b05780639507d39a146101d2578063987a2012146101f2578063a9816b081461021f578063c648a3a21461023f578063f2fde38b1461025f578063f4f4d2371461027f578063f851a4401461029f575b600080fd5b3480156100e057600080fd5b506100e96102b4565b6040516100f69190612499565b60405180910390f35b34801561010b57600080fd5b5061011f61011a366004611d8c565b6102c6565b6040516100f69190612488565b34801561013857600080fd5b5061014c610147366004611e0e565b6102e9565b6040516100f69190612375565b34801561016557600080fd5b5061014c610174366004611d6e565b6103b9565b34801561018557600080fd5b5061011f610194366004611d8c565b610463565b3480156101a557600080fd5b506101ae61047d565b005b3480156101bc57600080fd5b506101c5610501565b6040516100f69190612356565b3480156101de57600080fd5b5061011f6101ed366004611d6e565b610510565b3480156101fe57600080fd5b5061021261020d366004611d6e565b610529565b6040516100f69190612364565b34801561022b57600080fd5b5061021261023a366004611dde565b61053c565b34801561024b57600080fd5b506101ae61025a366004611d48565b610550565b34801561026b57600080fd5b506101ae61027a366004611d48565b610628565b34801561028b57600080fd5b5061011f61029a366004611d6e565b6106e8565b3480156102ab57600080fd5b506101c5610701565b60006102c06002610710565b90505b90565b6102ce611aba565b6102e06002848463ffffffff61071716565b90505b92915050565b60008054600160a060020a031633148061030d5750600154600160a060020a031633145b15156103375760405160e560020a62461bcd02815260040161032e906123b8565b60405180910390fd5b61034c6002878787878763ffffffff6108ef16565b151561036d5760405160e560020a62461bcd02815260040161032e90612438565b836000191685877fd9da4750661c53286ff28810f8fc42d4a49d8b736c9858f14229ad0b38236ca786866040516103a5929190612383565b60405180910390a450600195945050505050565b60008054600160a060020a03163314806103dd5750600154600160a060020a031633145b15156103fe5760405160e560020a62461bcd02815260040161032e906123b8565b61040f60028363ffffffff610ab616565b15156104305760405160e560020a62461bcd02815260040161032e90612458565b60405182907f476e4aa4bb19dbdea8700b4db99d81ad2fefcf51924ba5d493b7be6393f8220190600090a2506001919050565b61046b611aba565b6102e06002848463ffffffff610d3a16565b600054600160a060020a031633146104aa5760405160e560020a62461bcd02815260040161032e906123d8565b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031690565b610518611aba565b6102e360028363ffffffff610d9d16565b60606102e360028363ffffffff610f4e16565b60606102e06002848463ffffffff6111d816565b600054600160a060020a03163314806105735750600154600160a060020a031633145b15156105945760405160e560020a62461bcd02815260040161032e906123b8565b600160a060020a03811615156105bf5760405160e560020a62461bcd02815260040161032e906123c8565b600154604051600160a060020a038084169216907f399b55200f7f639a63d76efe3dcfa9156ce367058d6b673041b84a628885f5a790600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146106555760405160e560020a62461bcd02815260040161032e906123d8565b600160a060020a03811615156106805760405160e560020a62461bcd02815260040161032e90612408565b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6106f0611aba565b6102e360028363ffffffff61141216565b600154600160a060020a031690565b6004015490565b61071f611aba565b600061072b8484611465565b90506107378582611538565b15156107585760405160e560020a62461bcd02815260040161032e906123a8565b6000818152600286016020526040902054600486018054909190811061077a57fe5b60009182526020918290206040805160c0810182526006939093029091018054835260018082015484860152600280830154858501526003830154606086015260048301805485516000199482161561010002949094011691909104601f810187900487028301870190945283825293949193608086019391929091908301828280156108485780601f1061081d57610100808354040283529160200191610848565b820191906000526020600020905b81548152906001019060200180831161082b57829003601f168201915b505050918352505060058201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b5050505050815250509150509392505050565b60008060006108fc611aba565b6109068a8a6115f8565b156109145760009350610aa9565b61091e8886611465565b925061092a8887611465565b91506109368a84611712565b8061094657506109468a83611538565b156109545760009350610aa9565b861580159061096a57506109688a88611538565b155b156109785760009350610aa9565b506040805160c0810182526004808c01805480845260208085018e81529585018d8152606086018d8152608087018d815260a088018d905260018086018088556000978852968590208951600690970201958655985198850198909855905160028401555160038301559451805194959294869492936109fc938501920190611af4565b5060a08201518051610a18916005840191602090910190611af4565b5050505080600001518a60000160008b81526020019081526020016000208190555080600001518a600101600085600019166000191681526020019081526020016000208190555080600001518a6002016000846000191660001916815260200190815260200160002081905550610a958a8383600001516117c7565b1515610aa45760009350610aa9565b600193505b5050509695505050505050565b6000806000806000610ac887876115f8565b1515610ad75760009450610d30565b60008681526020889052604090205460048801805491955090610b0190600163ffffffff61186416565b81548110610b0b57fe5b90600052602060002090600602019250610b258785611876565b1515610b345760009450610d30565b828760040185815481101515610b4657fe5b60009182526020909120825460069092020190815560018083015481830155600280840154818401556003808501549084015560048085018054610b9c9492860193919281161561010002600019011604611b72565b5060058201816005019080546001816001161561010002031660029004610bc4929190611b72565b5050506001838101546000908152602089815260409182902087905560028087015460058801805485519681161561010002600019011692909204601f8101849004840286018401909452838552610c759490939092830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b820191906000526020600020905b815481529060010190602001808311610c4e57829003601f168201915b5050505050611465565b600280850154600486018054604080516020601f6000196101006001871615020190941696909604928301869004860281018601909152818152949650610cde949293830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b60008381526001808a016020908152604080842089905584845260028c019091529091208690556004890154919250610d1d919063ffffffff61186416565b610d2a6004890182611be7565b50600194505b5050505092915050565b610d42611aba565b6000610d4e8484611465565b9050610d5a8582611712565b1515610d7b5760405160e560020a62461bcd02815260040161032e90612418565b6000818152600186016020526040902054600486018054909190811061077a57fe5b610da5611aba565b60048301548210610dcb5760405160e560020a62461bcd02815260040161032e90612468565b60048301805483908110610ddb57fe5b60009182526020918290206040805160c0810182526006939093029091018054835260018082015484860152600280830154858501526003830154606086015260048301805485516000199482161561010002949094011691909104601f81018790048702830187019094528382529394919360808601939192909190830182828015610ea95780601f10610e7e57610100808354040283529160200191610ea9565b820191906000526020600020905b815481529060010190602001808311610e8c57829003601f168201915b505050918352505060058201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015610f3d5780601f10610f1257610100808354040283529160200191610f3d565b820191906000526020600020905b815481529060010190602001808311610f2057829003601f168201915b505050505081525050905092915050565b6060600060606000610f608686611538565b1515610f815760405160e560020a62461bcd02815260040161032e906123e8565b60008581526003870160205260408120805490945011610fb65760405160e560020a62461bcd02815260040161032e90612478565b8254604080518281526020808402820101909152908015610ff157816020015b610fde611aba565b815260200190600190039081610fd65790505b509150600090505b82548110156111cb5785600401866000016000858481548110151561101a57fe5b906000526020600020015481526020019081526020016000205481548110151561104057fe5b60009182526020918290206040805160c0810182526006939093029091018054835260018082015484860152600280830154858501526003830154606086015260048301805485516000199482161561010002949094011691909104601f8101879004870283018701909452838252939491936080860193919290919083018282801561110e5780601f106110e35761010080835404028352916020019161110e565b820191906000526020600020905b8154815290600101906020018083116110f157829003601f168201915b505050918352505060058201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156111a25780601f10611177576101008083540402835291602001916111a2565b820191906000526020600020905b81548152906001019060200180831161118557829003601f168201915b50505050508152505082828151811015156111b957fe5b60209081029091010152600101610ff9565b8193505b50505092915050565b6060600081818085116112005760405160e560020a62461bcd02815260040161032e90612428565b8460405190808252806020026020018201604052801561123a57816020015b611227611aba565b81526020019060019003908161121f5790505b5091508590505b6004870154811015611408578483141561125a57611408565b6004870180548290811061126a57fe5b60009182526020918290206040805160c0810182526006939093029091018054835260018082015484860152600280830154858501526003830154606086015260048301805485516000199482161561010002949094011691909104601f810187900487028301870190945283825293949193608086019391929091908301828280156113385780601f1061130d57610100808354040283529160200191611338565b820191906000526020600020905b81548152906001019060200180831161131b57829003601f168201915b505050918352505060058201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156113cc5780601f106113a1576101008083540402835291602001916113cc565b820191906000526020600020905b8154815290600101906020018083116113af57829003601f168201915b50505050508152505082848151811015156113e357fe5b602090810290910101526113fe83600163ffffffff6119ed16565b9250600101611241565b5095945050505050565b61141a611aba565b61142483836115f8565b15156114455760405160e560020a62461bcd02815260040161032e906123f8565b6000828152602084905260409020546004840180549091908110610ddb57fe5b600082826040516020018083815260200182805190602001908083835b602083106114a15780518252601f199092019160209182019101611482565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106115055780518252601f1990920191602091820191016114e6565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b60048201546000908190151561155157600091506115f1565b6000838152600285016020526040902054600485018054909190811061157357fe5b600091825260209182902060026006909202018181015460048201805460408051601f6101006001851615026000190190931696909604918201879004870286018701905280855292955087946115ed94929390830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b1491505b5092915050565b6004820154600090151561160e575060006102e3565b600082815260208490526040902054600484018054849290811061162e57fe5b9060005260206000209060060201600101541480156102e0575060008281526020849052604081205460048501805461170a9290811061166a57fe5b6000918252602091829020600560069092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156117005780601f106116d557610100808354040283529160200191611700565b820191906000526020600020905b8154815290600101906020018083116116e357829003601f168201915b5050505050611a03565b119392505050565b60048201546000908190151561172b57600091506115f1565b6000838152600185016020526040902054600485018054909190811061174d57fe5b600091825260209182902060026006909202018181015460058201805460408051601f6101006001851615026000190190931696909604918201879004870286018701905280855292955087946115ed94929390830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b600080600080600087600401868154811015156117e057fe5b60009182526020909120600690910201600381015490925015611807578160030154611809565b865b905061181a88828460010154611a35565b9094509250831561182e5760009450611859565b6000818152600389016020908152604082206001808601548254808301845592855292909320015594505b505050509392505050565b60008282111561187057fe5b50900390565b600080600080600080600080896004018981548110151561189357fe5b600091825260209091206006909102016003810154909750159550856118bd578660030154611922565b6002878101546004890180546040805160206001841615610100026000190190931695909504601f8101839004830286018301909152808552611922949291830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b94506119338a868960010154611a35565b909450925083151561194857600097506119e0565b600085815260038b01602052604090209150858015611968575081546001105b1561197657600097506119e0565b8154829061198b90600163ffffffff61186416565b8154811061199557fe5b906000526020600020015490508082848154811015156119b157fe5b60009182526020909120015581546119d090600163ffffffff61186416565b6119da8382611c18565b50600197505b5050505050505092915050565b6000828201838110156119fc57fe5b9392505050565b805160009082906104001015611a2e5760405160e560020a62461bcd02815260040161032e90612448565b5192915050565b600080600080866004018054905060001415611a575760009350839250611ab0565b505060008481526003860160205260408120905b8154811015611aa857848282815481101515611a8357fe5b90600052602060002001541415611aa05760018193509350611ab0565b600101611a6b565b600093508392505b5050935093915050565b60c0604051908101604052806000815260200160008152602001600081526020016000801916815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b3557805160ff1916838001178555611b62565b82800160010185558215611b62579182015b82811115611b62578251825591602001919060010190611b47565b50611b6e929150611c38565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611bab5780548555611b62565b82800160010185558215611b6257600052602060002091601f016020900482015b82811115611b62578254825591600101919060010190611bcc565b815481835581811115611c1357600602816006028360005260206000209182019101611c139190611c52565b505050565b815481835581811115611c1357600083815260209020611c139181019083015b6102c391905b80821115611b6e5760008155600101611c3e565b6102c391905b80821115611b6e576000808255600182018190556002820181905560038201819055611c876004830182611c9e565b611c95600583016000611c9e565b50600601611c58565b50805460018160011615610100020316600290046000825580601f10611cc45750611ce2565b601f016020900490600052602060002090810190611ce29190611c38565b50565b60006102e08235612500565b60006102e082356102c3565b6000601f82018313611d0e57600080fd5b8135611d21611d1c826124ce565b6124a7565b91508082526020830160208301858383011115611d3d57600080fd5b6111cf838284612511565b600060208284031215611d5a57600080fd5b6000611d668484611ce5565b949350505050565b600060208284031215611d8057600080fd5b6000611d668484611cf1565b60008060408385031215611d9f57600080fd5b6000611dab8585611cf1565b925050602083013567ffffffffffffffff811115611dc857600080fd5b611dd485828601611cfd565b9150509250929050565b60008060408385031215611df157600080fd5b6000611dfd8585611cf1565b9250506020611dd485828601611cf1565b600080600080600060a08688031215611e2657600080fd5b6000611e328888611cf1565b9550506020611e4388828901611cf1565b9450506040611e5488828901611cf1565b935050606086013567ffffffffffffffff811115611e7157600080fd5b611e7d88828901611cfd565b925050608086013567ffffffffffffffff811115611e9a57600080fd5b611ea688828901611cfd565b9150509295509295909350565b611ebc81612500565b82525050565b6000611ecd826124fc565b80845260208401935083602082028501611ee6856124f6565b60005b84811015611f1d578383038852611f018383516122ce565b9250611f0c826124f6565b602098909801979150600101611ee9565b50909695505050505050565b611ebc8161250c565b611ebc816102c3565b6000611f46826124fc565b808452611f5a81602086016020860161251d565b611f638161254d565b9093016020019392505050565b601981527f6973737565722064617461206d75737420626520657869737400000000000000602082015260400190565b602b81527f6f6e6c79206f776e6572206f722061646d696e6973747261746f722063616e2060208201527f6d6f646966792074686973000000000000000000000000000000000000000000604082015260600190565b602e81527f43616e206e6f74207472616e736665722061646d696e6973747261746f72207460208201527f6f207a65726f2061646472657373000000000000000000000000000000000000604082015260600190565b601a81527f6f6e6c79206f776e65722063616e206d6f646966792074686973000000000000602082015260400190565b601981527f6f726967696e2064617461206d75737420626520657869737400000000000000602082015260400190565b601881527f746f6b656e2064617461206d7573742062652065786973740000000000000000602082015260400190565b602681527f43616e206e6f74207472616e73666572206f776e657220746f207a65726f206160208201527f6464726573730000000000000000000000000000000000000000000000000000604082015260600190565b601981527f73796d626f6c2064617461206d75737420626520657869737400000000000000602082015260400190565b60208082527f72657475726e206e756d626572206d75737420626967676572207468616e20309082015260400190565b601081527f61646420746f6b656e206661696c656400000000000000000000000000000000602082015260400190565b602381527f746f6f206c6172676520737472696e67206d616b65206f766572666c6f77207260208201527f69736b0000000000000000000000000000000000000000000000000000000000604082015260600190565b601381527f72656d6f766520746f6b656e206661696c656400000000000000000000000000602082015260400190565b602381527f696e646578206d75737420736d616c6c207468616e2063757272656e7420636f60208201527f756e740000000000000000000000000000000000000000000000000000000000604082015260600190565b601581527f6f726967696e206c697374206861766520646174610000000000000000000000602082015260400190565b805160009060c08401906122e28582611f32565b5060208301516122f56020860182611f32565b5060408301516123086040860182611f32565b50606083015161231b6060860182611f32565b50608083015184820360808601526123338282611f3b565b91505060a083015184820360a086015261234d8282611f3b565b95945050505050565b602081016102e38284611eb3565b602080825281016102e08184611ec2565b602081016102e38284611f29565b604080825281016123948185611f3b565b90508181036020830152611d668184611f3b565b602080825281016102e381611f70565b602080825281016102e381611fa0565b602080825281016102e381611ff6565b602080825281016102e38161204c565b602080825281016102e38161207c565b602080825281016102e3816120ac565b602080825281016102e3816120dc565b602080825281016102e381612132565b602080825281016102e381612162565b602080825281016102e381612192565b602080825281016102e3816121c2565b602080825281016102e381612218565b602080825281016102e381612248565b602080825281016102e38161229e565b602080825281016102e081846122ce565b602081016102e38284611f32565b60405181810167ffffffffffffffff811182821017156124c657600080fd5b604052919050565b600067ffffffffffffffff8211156124e557600080fd5b506020601f91909101601f19160190565b60200190565b5190565b600160a060020a031690565b151590565b82818337506000910152565b60005b83811015612538578181015183820152602001612520565b83811115612547576000848401525b50505050565b601f01601f1916905600a265627a7a72305820afe4ed7e29291c06ecb0e70b019de9a7a1a108f8d50503d2c2cc074d98fec5e26c6578706572696d656e74616cf50037",
  "deployedBytecode": "0x6080604052600436106100cf5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306661abd81146100d45780631aafff66146100ff57806326d325ac1461012c5780634cc822151461015957806366f1ef6c14610179578063715018a6146101995780638da5cb5b146101b05780639507d39a146101d2578063987a2012146101f2578063a9816b081461021f578063c648a3a21461023f578063f2fde38b1461025f578063f4f4d2371461027f578063f851a4401461029f575b600080fd5b3480156100e057600080fd5b506100e96102b4565b6040516100f69190612499565b60405180910390f35b34801561010b57600080fd5b5061011f61011a366004611d8c565b6102c6565b6040516100f69190612488565b34801561013857600080fd5b5061014c610147366004611e0e565b6102e9565b6040516100f69190612375565b34801561016557600080fd5b5061014c610174366004611d6e565b6103b9565b34801561018557600080fd5b5061011f610194366004611d8c565b610463565b3480156101a557600080fd5b506101ae61047d565b005b3480156101bc57600080fd5b506101c5610501565b6040516100f69190612356565b3480156101de57600080fd5b5061011f6101ed366004611d6e565b610510565b3480156101fe57600080fd5b5061021261020d366004611d6e565b610529565b6040516100f69190612364565b34801561022b57600080fd5b5061021261023a366004611dde565b61053c565b34801561024b57600080fd5b506101ae61025a366004611d48565b610550565b34801561026b57600080fd5b506101ae61027a366004611d48565b610628565b34801561028b57600080fd5b5061011f61029a366004611d6e565b6106e8565b3480156102ab57600080fd5b506101c5610701565b60006102c06002610710565b90505b90565b6102ce611aba565b6102e06002848463ffffffff61071716565b90505b92915050565b60008054600160a060020a031633148061030d5750600154600160a060020a031633145b15156103375760405160e560020a62461bcd02815260040161032e906123b8565b60405180910390fd5b61034c6002878787878763ffffffff6108ef16565b151561036d5760405160e560020a62461bcd02815260040161032e90612438565b836000191685877fd9da4750661c53286ff28810f8fc42d4a49d8b736c9858f14229ad0b38236ca786866040516103a5929190612383565b60405180910390a450600195945050505050565b60008054600160a060020a03163314806103dd5750600154600160a060020a031633145b15156103fe5760405160e560020a62461bcd02815260040161032e906123b8565b61040f60028363ffffffff610ab616565b15156104305760405160e560020a62461bcd02815260040161032e90612458565b60405182907f476e4aa4bb19dbdea8700b4db99d81ad2fefcf51924ba5d493b7be6393f8220190600090a2506001919050565b61046b611aba565b6102e06002848463ffffffff610d3a16565b600054600160a060020a031633146104aa5760405160e560020a62461bcd02815260040161032e906123d8565b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031690565b610518611aba565b6102e360028363ffffffff610d9d16565b60606102e360028363ffffffff610f4e16565b60606102e06002848463ffffffff6111d816565b600054600160a060020a03163314806105735750600154600160a060020a031633145b15156105945760405160e560020a62461bcd02815260040161032e906123b8565b600160a060020a03811615156105bf5760405160e560020a62461bcd02815260040161032e906123c8565b600154604051600160a060020a038084169216907f399b55200f7f639a63d76efe3dcfa9156ce367058d6b673041b84a628885f5a790600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146106555760405160e560020a62461bcd02815260040161032e906123d8565b600160a060020a03811615156106805760405160e560020a62461bcd02815260040161032e90612408565b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6106f0611aba565b6102e360028363ffffffff61141216565b600154600160a060020a031690565b6004015490565b61071f611aba565b600061072b8484611465565b90506107378582611538565b15156107585760405160e560020a62461bcd02815260040161032e906123a8565b6000818152600286016020526040902054600486018054909190811061077a57fe5b60009182526020918290206040805160c0810182526006939093029091018054835260018082015484860152600280830154858501526003830154606086015260048301805485516000199482161561010002949094011691909104601f810187900487028301870190945283825293949193608086019391929091908301828280156108485780601f1061081d57610100808354040283529160200191610848565b820191906000526020600020905b81548152906001019060200180831161082b57829003601f168201915b505050918352505060058201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b5050505050815250509150509392505050565b60008060006108fc611aba565b6109068a8a6115f8565b156109145760009350610aa9565b61091e8886611465565b925061092a8887611465565b91506109368a84611712565b8061094657506109468a83611538565b156109545760009350610aa9565b861580159061096a57506109688a88611538565b155b156109785760009350610aa9565b506040805160c0810182526004808c01805480845260208085018e81529585018d8152606086018d8152608087018d815260a088018d905260018086018088556000978852968590208951600690970201958655985198850198909855905160028401555160038301559451805194959294869492936109fc938501920190611af4565b5060a08201518051610a18916005840191602090910190611af4565b5050505080600001518a60000160008b81526020019081526020016000208190555080600001518a600101600085600019166000191681526020019081526020016000208190555080600001518a6002016000846000191660001916815260200190815260200160002081905550610a958a8383600001516117c7565b1515610aa45760009350610aa9565b600193505b5050509695505050505050565b6000806000806000610ac887876115f8565b1515610ad75760009450610d30565b60008681526020889052604090205460048801805491955090610b0190600163ffffffff61186416565b81548110610b0b57fe5b90600052602060002090600602019250610b258785611876565b1515610b345760009450610d30565b828760040185815481101515610b4657fe5b60009182526020909120825460069092020190815560018083015481830155600280840154818401556003808501549084015560048085018054610b9c9492860193919281161561010002600019011604611b72565b5060058201816005019080546001816001161561010002031660029004610bc4929190611b72565b5050506001838101546000908152602089815260409182902087905560028087015460058801805485519681161561010002600019011692909204601f8101849004840286018401909452838552610c759490939092830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b820191906000526020600020905b815481529060010190602001808311610c4e57829003601f168201915b5050505050611465565b600280850154600486018054604080516020601f6000196101006001871615020190941696909604928301869004860281018601909152818152949650610cde949293830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b60008381526001808a016020908152604080842089905584845260028c019091529091208690556004890154919250610d1d919063ffffffff61186416565b610d2a6004890182611be7565b50600194505b5050505092915050565b610d42611aba565b6000610d4e8484611465565b9050610d5a8582611712565b1515610d7b5760405160e560020a62461bcd02815260040161032e90612418565b6000818152600186016020526040902054600486018054909190811061077a57fe5b610da5611aba565b60048301548210610dcb5760405160e560020a62461bcd02815260040161032e90612468565b60048301805483908110610ddb57fe5b60009182526020918290206040805160c0810182526006939093029091018054835260018082015484860152600280830154858501526003830154606086015260048301805485516000199482161561010002949094011691909104601f81018790048702830187019094528382529394919360808601939192909190830182828015610ea95780601f10610e7e57610100808354040283529160200191610ea9565b820191906000526020600020905b815481529060010190602001808311610e8c57829003601f168201915b505050918352505060058201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015610f3d5780601f10610f1257610100808354040283529160200191610f3d565b820191906000526020600020905b815481529060010190602001808311610f2057829003601f168201915b505050505081525050905092915050565b6060600060606000610f608686611538565b1515610f815760405160e560020a62461bcd02815260040161032e906123e8565b60008581526003870160205260408120805490945011610fb65760405160e560020a62461bcd02815260040161032e90612478565b8254604080518281526020808402820101909152908015610ff157816020015b610fde611aba565b815260200190600190039081610fd65790505b509150600090505b82548110156111cb5785600401866000016000858481548110151561101a57fe5b906000526020600020015481526020019081526020016000205481548110151561104057fe5b60009182526020918290206040805160c0810182526006939093029091018054835260018082015484860152600280830154858501526003830154606086015260048301805485516000199482161561010002949094011691909104601f8101879004870283018701909452838252939491936080860193919290919083018282801561110e5780601f106110e35761010080835404028352916020019161110e565b820191906000526020600020905b8154815290600101906020018083116110f157829003601f168201915b505050918352505060058201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156111a25780601f10611177576101008083540402835291602001916111a2565b820191906000526020600020905b81548152906001019060200180831161118557829003601f168201915b50505050508152505082828151811015156111b957fe5b60209081029091010152600101610ff9565b8193505b50505092915050565b6060600081818085116112005760405160e560020a62461bcd02815260040161032e90612428565b8460405190808252806020026020018201604052801561123a57816020015b611227611aba565b81526020019060019003908161121f5790505b5091508590505b6004870154811015611408578483141561125a57611408565b6004870180548290811061126a57fe5b60009182526020918290206040805160c0810182526006939093029091018054835260018082015484860152600280830154858501526003830154606086015260048301805485516000199482161561010002949094011691909104601f810187900487028301870190945283825293949193608086019391929091908301828280156113385780601f1061130d57610100808354040283529160200191611338565b820191906000526020600020905b81548152906001019060200180831161131b57829003601f168201915b505050918352505060058201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156113cc5780601f106113a1576101008083540402835291602001916113cc565b820191906000526020600020905b8154815290600101906020018083116113af57829003601f168201915b50505050508152505082848151811015156113e357fe5b602090810290910101526113fe83600163ffffffff6119ed16565b9250600101611241565b5095945050505050565b61141a611aba565b61142483836115f8565b15156114455760405160e560020a62461bcd02815260040161032e906123f8565b6000828152602084905260409020546004840180549091908110610ddb57fe5b600082826040516020018083815260200182805190602001908083835b602083106114a15780518252601f199092019160209182019101611482565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106115055780518252601f1990920191602091820191016114e6565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b60048201546000908190151561155157600091506115f1565b6000838152600285016020526040902054600485018054909190811061157357fe5b600091825260209182902060026006909202018181015460048201805460408051601f6101006001851615026000190190931696909604918201879004870286018701905280855292955087946115ed94929390830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b1491505b5092915050565b6004820154600090151561160e575060006102e3565b600082815260208490526040902054600484018054849290811061162e57fe5b9060005260206000209060060201600101541480156102e0575060008281526020849052604081205460048501805461170a9290811061166a57fe5b6000918252602091829020600560069092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156117005780601f106116d557610100808354040283529160200191611700565b820191906000526020600020905b8154815290600101906020018083116116e357829003601f168201915b5050505050611a03565b119392505050565b60048201546000908190151561172b57600091506115f1565b6000838152600185016020526040902054600485018054909190811061174d57fe5b600091825260209182902060026006909202018181015460058201805460408051601f6101006001851615026000190190931696909604918201879004870286018701905280855292955087946115ed94929390830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b600080600080600087600401868154811015156117e057fe5b60009182526020909120600690910201600381015490925015611807578160030154611809565b865b905061181a88828460010154611a35565b9094509250831561182e5760009450611859565b6000818152600389016020908152604082206001808601548254808301845592855292909320015594505b505050509392505050565b60008282111561187057fe5b50900390565b600080600080600080600080896004018981548110151561189357fe5b600091825260209091206006909102016003810154909750159550856118bd578660030154611922565b6002878101546004890180546040805160206001841615610100026000190190931695909504601f8101839004830286018301909152808552611922949291830182828015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b94506119338a868960010154611a35565b909450925083151561194857600097506119e0565b600085815260038b01602052604090209150858015611968575081546001105b1561197657600097506119e0565b8154829061198b90600163ffffffff61186416565b8154811061199557fe5b906000526020600020015490508082848154811015156119b157fe5b60009182526020909120015581546119d090600163ffffffff61186416565b6119da8382611c18565b50600197505b5050505050505092915050565b6000828201838110156119fc57fe5b9392505050565b805160009082906104001015611a2e5760405160e560020a62461bcd02815260040161032e90612448565b5192915050565b600080600080866004018054905060001415611a575760009350839250611ab0565b505060008481526003860160205260408120905b8154811015611aa857848282815481101515611a8357fe5b90600052602060002001541415611aa05760018193509350611ab0565b600101611a6b565b600093508392505b5050935093915050565b60c0604051908101604052806000815260200160008152602001600081526020016000801916815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b3557805160ff1916838001178555611b62565b82800160010185558215611b62579182015b82811115611b62578251825591602001919060010190611b47565b50611b6e929150611c38565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611bab5780548555611b62565b82800160010185558215611b6257600052602060002091601f016020900482015b82811115611b62578254825591600101919060010190611bcc565b815481835581811115611c1357600602816006028360005260206000209182019101611c139190611c52565b505050565b815481835581811115611c1357600083815260209020611c139181019083015b6102c391905b80821115611b6e5760008155600101611c3e565b6102c391905b80821115611b6e576000808255600182018190556002820181905560038201819055611c876004830182611c9e565b611c95600583016000611c9e565b50600601611c58565b50805460018160011615610100020316600290046000825580601f10611cc45750611ce2565b601f016020900490600052602060002090810190611ce29190611c38565b50565b60006102e08235612500565b60006102e082356102c3565b6000601f82018313611d0e57600080fd5b8135611d21611d1c826124ce565b6124a7565b91508082526020830160208301858383011115611d3d57600080fd5b6111cf838284612511565b600060208284031215611d5a57600080fd5b6000611d668484611ce5565b949350505050565b600060208284031215611d8057600080fd5b6000611d668484611cf1565b60008060408385031215611d9f57600080fd5b6000611dab8585611cf1565b925050602083013567ffffffffffffffff811115611dc857600080fd5b611dd485828601611cfd565b9150509250929050565b60008060408385031215611df157600080fd5b6000611dfd8585611cf1565b9250506020611dd485828601611cf1565b600080600080600060a08688031215611e2657600080fd5b6000611e328888611cf1565b9550506020611e4388828901611cf1565b9450506040611e5488828901611cf1565b935050606086013567ffffffffffffffff811115611e7157600080fd5b611e7d88828901611cfd565b925050608086013567ffffffffffffffff811115611e9a57600080fd5b611ea688828901611cfd565b9150509295509295909350565b611ebc81612500565b82525050565b6000611ecd826124fc565b80845260208401935083602082028501611ee6856124f6565b60005b84811015611f1d578383038852611f018383516122ce565b9250611f0c826124f6565b602098909801979150600101611ee9565b50909695505050505050565b611ebc8161250c565b611ebc816102c3565b6000611f46826124fc565b808452611f5a81602086016020860161251d565b611f638161254d565b9093016020019392505050565b601981527f6973737565722064617461206d75737420626520657869737400000000000000602082015260400190565b602b81527f6f6e6c79206f776e6572206f722061646d696e6973747261746f722063616e2060208201527f6d6f646966792074686973000000000000000000000000000000000000000000604082015260600190565b602e81527f43616e206e6f74207472616e736665722061646d696e6973747261746f72207460208201527f6f207a65726f2061646472657373000000000000000000000000000000000000604082015260600190565b601a81527f6f6e6c79206f776e65722063616e206d6f646966792074686973000000000000602082015260400190565b601981527f6f726967696e2064617461206d75737420626520657869737400000000000000602082015260400190565b601881527f746f6b656e2064617461206d7573742062652065786973740000000000000000602082015260400190565b602681527f43616e206e6f74207472616e73666572206f776e657220746f207a65726f206160208201527f6464726573730000000000000000000000000000000000000000000000000000604082015260600190565b601981527f73796d626f6c2064617461206d75737420626520657869737400000000000000602082015260400190565b60208082527f72657475726e206e756d626572206d75737420626967676572207468616e20309082015260400190565b601081527f61646420746f6b656e206661696c656400000000000000000000000000000000602082015260400190565b602381527f746f6f206c6172676520737472696e67206d616b65206f766572666c6f77207260208201527f69736b0000000000000000000000000000000000000000000000000000000000604082015260600190565b601381527f72656d6f766520746f6b656e206661696c656400000000000000000000000000602082015260400190565b602381527f696e646578206d75737420736d616c6c207468616e2063757272656e7420636f60208201527f756e740000000000000000000000000000000000000000000000000000000000604082015260600190565b601581527f6f726967696e206c697374206861766520646174610000000000000000000000602082015260400190565b805160009060c08401906122e28582611f32565b5060208301516122f56020860182611f32565b5060408301516123086040860182611f32565b50606083015161231b6060860182611f32565b50608083015184820360808601526123338282611f3b565b91505060a083015184820360a086015261234d8282611f3b565b95945050505050565b602081016102e38284611eb3565b602080825281016102e08184611ec2565b602081016102e38284611f29565b604080825281016123948185611f3b565b90508181036020830152611d668184611f3b565b602080825281016102e381611f70565b602080825281016102e381611fa0565b602080825281016102e381611ff6565b602080825281016102e38161204c565b602080825281016102e38161207c565b602080825281016102e3816120ac565b602080825281016102e3816120dc565b602080825281016102e381612132565b602080825281016102e381612162565b602080825281016102e381612192565b602080825281016102e3816121c2565b602080825281016102e381612218565b602080825281016102e381612248565b602080825281016102e38161229e565b602080825281016102e081846122ce565b602081016102e38284611f32565b60405181810167ffffffffffffffff811182821017156124c657600080fd5b604052919050565b600067ffffffffffffffff8211156124e557600080fd5b506020601f91909101601f19160190565b60200190565b5190565b600160a060020a031690565b151590565b82818337506000910152565b60005b83811015612538578181015183820152602001612520565b83811115612547576000848401525b50505050565b601f01601f1916905600a265627a7a72305820afe4ed7e29291c06ecb0e70b019de9a7a1a108f8d50503d2c2cc074d98fec5e26c6578706572696d656e74616cf50037",
  "sourceMap": "561:1800:33:-;;;862:40;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1142:6:30;:19;;1151:10;-1:-1:-1;;;;;;1142:19:30;;;;;;;;-1:-1:-1;1167:19:30;;;;;;;;;;;1197:40;;-1:-1:-1;;;;;1230:6:30;;;;1142;1197:40;;1142:6;;1197:40;1285:6;;1248:44;;-1:-1:-1;;;;;1285:6:30;;;;;;1248:44;;1285:6;;1248:44;561:1800:33;;;;;;",
  "deployedSourceMap": "561:1800:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2280:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2280:79:33;;;;;;;;;;;;;;;;;;;;1807:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1807:164:33;;;;;;;;;;;;;;;;;906:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;906:343:33;;;;;;;;;;;;;;;;;1253:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1253:166:33;;;;;;;;;1639:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1639:164:33;;;;;;;;;1844:127:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1844:127:30;;;;;;2458:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2458:71:30;;;;;;;;;;;;1423:101:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1423:101:33;;;;;;;;;1975:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1975:141:33;;;;;;;;;;;;;;;;;2120:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2120:156:33;;;;;;;;;2197:257:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2197:257:30;;;;;;;;;1975:218;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1975:218:30;;;;;;;;;1528:107:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1528:107:33;;;;;;;;;2533:71:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2533:71:30;;;;2280:79:33;2318:7;2340:14;:6;:12;:14::i;:::-;2333:21;;2280:79;;:::o;1807:164::-;1895:17;;:::i;:::-;1929:37;:6;1948:8;1958:7;1929:37;:18;:37;:::i;:::-;1922:44;;1807:164;;;;;:::o;906:343::-;1057:4;1581:6:30;;-1:-1:-1;;;;;1581:6:30;1567:10;:20;;1566:48;;-1:-1:-1;1607:6:30;;-1:-1:-1;;;;;1607:6:30;1593:10;:20;1566:48;1551:122;;;;;;-1:-1:-1;;;;;1551:122:30;;;;;;;;;;;;;;;;;1084:55:33;:6;1098:3;1103:8;1113:7;1122;1131;1084:55;:13;:55;:::i;:::-;1069:102;;;;;;-1:-1:-1;;;;;1069:102:33;;;;;;;;;1201:7;1182:45;;;1191:8;1186:3;1182:45;1210:7;1219;1182:45;;;;;;;;;;;;;;;;-1:-1:-1;1240:4:33;906:343;;;;;;;:::o;1253:166::-;1313:4;1581:6:30;;-1:-1:-1;;;;;1581:6:30;1567:10;:20;;1566:48;;-1:-1:-1;1607:6:30;;-1:-1:-1;;;;;1607:6:30;1593:10;:20;1566:48;1551:122;;;;;;-1:-1:-1;;;;;1551:122:30;;;;;;;;;1333:18:33;:6;1347:3;1333:18;:13;:18;:::i;:::-;1325:50;;;;;;-1:-1:-1;;;;;1325:50:33;;;;;;;;;1386:11;;1393:3;;1386:11;;;;;-1:-1:-1;1410:4:33;1253:166;;;:::o;1639:164::-;1727:17;;:::i;:::-;1761:37;:6;1780:8;1790:7;1761:37;:18;:37;:::i;1844:127:30:-;1350:6;;-1:-1:-1;;;;;1350:6:30;1336:10;:20;1328:59;;;;-1:-1:-1;;;;;1328:59:30;;;;;;;;;1938:1;1922:6;;1901:40;;-1:-1:-1;;;;;1922:6:30;;;;1901:40;;1938:1;;1901:40;1964:1;1947:19;;-1:-1:-1;;1947:19:30;;;1844:127::o;2458:71::-;2496:7;2518:6;-1:-1:-1;;;;;2518:6:30;2458:71;:::o;1423:101:33:-;1471:17;;:::i;:::-;1503:16;:6;1514:4;1503:16;:10;:16;:::i;1975:141::-;2047:19;2083:28;:6;2103:7;2083:28;:19;:28;:::i;2120:156::-;2200:19;2243:28;:6;2258:4;2264:6;2243:28;:14;:28;:::i;2197:257:30:-;1581:6;;-1:-1:-1;;;;;1581:6:30;1567:10;:20;;1566:48;;-1:-1:-1;1607:6:30;;-1:-1:-1;;;;;1607:6:30;1593:10;:20;1566:48;1551:122;;;;;;-1:-1:-1;;;;;1551:122:30;;;;;;;;;-1:-1:-1;;;;;2289:22:30;;;;2274:99;;;;-1:-1:-1;;;;;2274:99:30;;;;;;;;;2409:6;;2384:42;;-1:-1:-1;;;;;2384:42:30;;;;2409:6;;2384:42;;2409:6;;2384:42;2432:6;:17;;-1:-1:-1;;2432:17:30;-1:-1:-1;;;;;2432:17:30;;;;;;;;;;2197:257::o;1975:218::-;1350:6;;-1:-1:-1;;;;;1350:6:30;1336:10;:20;1328:59;;;;-1:-1:-1;;;;;1328:59:30;;;;;;;;;-1:-1:-1;;;;;2051:22:30;;;;2043:73;;;;-1:-1:-1;;;;;2043:73:30;;;;;;;;;2148:6;;;2127:38;;-1:-1:-1;;;;;2127:38:30;;;;2148:6;;;2127:38;;;2171:6;:17;;-1:-1:-1;;2171:17:30;-1:-1:-1;;;;;2171:17:30;;;;;;;;;;1975:218::o;1528:107:33:-;1579:17;;:::i;:::-;1611:19;:6;1626:3;1611:19;:14;:19;:::i;2533:71:30:-;2593:6;;-1:-1:-1;;;;;2593:6:30;2533:71;:::o;6054:104:17:-;6137:9;;:16;;6054:104::o;6927:320::-;7044:17;;:::i;:::-;7069:19;7091:26;7099:8;7109:7;7091;:26::i;:::-;7069:48;;7131:30;7143:4;7149:11;7131;:30::i;:::-;7123:68;;;;;;-1:-1:-1;;;;;7123:68:17;;;;;;;;;7214:27;;;;:14;;;:27;;;;;;7204:9;;;:38;;:9;;7214:27;7204:38;;;;;;;;;;;;;;;7197:45;;;;;;;;7204:38;;;;;;;;7197:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7197:45:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7204:38;;7197:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7197:45:17;;;-1:-1:-1;;7197:45:17;;;;;;;;;;;;;;;;-1:-1:-1;;7197:45:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6927:320;;;;;;:::o;4306:1054::-;4471:4;4540:19;4594;4876:16;;:::i;:::-;4487:18;4495:4;4501:3;4487:7;:18::i;:::-;4483:51;;;4522:5;4515:12;;;;4483:51;4562:26;4570:8;4580:7;4562;:26::i;:::-;4540:48;;4616:26;4624:8;4634:7;4616;:26::i;:::-;4594:48;;4653:30;4665:4;4671:11;4653;:30::i;:::-;:64;;;;4687:30;4699:4;4705:11;4687;:30::i;:::-;4649:97;;;4734:5;4727:12;;;;4649:97;4796:14;;;;;:45;;;4815:26;4827:4;4833:7;4815:11;:26::i;:::-;4814:27;4796:45;4792:78;;;4858:5;4851:12;;;;4792:78;-1:-1:-1;4901:167:17;;;;;;;;4924:9;;;;:16;;4901:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39:1:-1;23:18;;;45:23;;;-1:-1;5075:17:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4901:167;;23:18:-1;;4901:167:17;;5075:17;;;;;;;;;;:::i;:::-;-1:-1:-1;5075:17:17;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5116:1;:5;;;5098:4;:10;;:15;5109:3;5098:15;;;;;;;;;;;:23;;;;5157:1;:5;;;5127:4;:14;;:27;5142:11;5127:27;;;;;;;;;;;;;;;;;:35;;;;5198:1;:5;;;5168:4;:14;;:27;5183:11;5168:27;;;;;;;;;;;;;;;;;:35;;;;5272:37;5284:4;5290:11;5303:1;:5;;;5272:11;:37::i;:::-;5271:38;5267:71;;;5326:5;5319:12;;;;5267:71;5351:4;5344:11;;4306:1054;;;;;;;;;;;;:::o;5364:686::-;5434:4;5504:15;5544:25;5755:19;5827;5451:18;5459:4;5465:3;5451:7;:18::i;:::-;5450:19;5446:52;;;5486:5;5479:12;;;;5446:52;5522:10;:15;;;;;;;;;;;5572:9;;;5582:16;;5522:15;;-1:-1:-1;5572:9:17;5582:23;;5603:1;5582:23;:20;:23;:::i;:::-;5572:34;;;;;;;;;;;;;;;;;;5544:62;;5618:26;5630:4;5636:7;5618:11;:26::i;:::-;5617:27;5613:60;;;5661:5;5654:12;;;;5613:60;5700:9;5679:4;:9;;5689:7;5679:18;;;;;;;;;;;;;;;;;;:30;;:18;;;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5679:30:17;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;5726:12:17;;;;;5715:10;:24;;;;;;;;;;;;:34;;;5785:17;;;;;5804:16;;;5777:44;;;;;;;;;;-1:-1:-1;;5777:44:17;;;;;;;;;;;;;;;;;;;;;;;;;;5785:17;;5777:44;;;;5804:16;5777:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:44::i;:::-;5857:17;;;;;5876:16;;;5849:44;;;;;;;-1:-1:-1;;5849:44:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5755:66;;-1:-1:-1;5849:44:17;;5857:17;;5849:44;;5876:16;5849:44;;;;;;;;;;;;;;;;;;;;;;;;;5899:27;;;;:14;;;;:27;;;;;;;;:37;;;5942:27;;;:14;;;:27;;;;;;:37;;;6004:9;;;:16;5827:66;;-1:-1:-1;6004:23:17;;:16;:23;:20;:23;:::i;:::-;5985:42;:9;;;:42;;:::i;:::-;;6041:4;6034:11;;5364:686;;;;;;;;;:::o;6603:320::-;6720:17;;:::i;:::-;6745:19;6767:26;6775:8;6785:7;6767;:26::i;:::-;6745:48;;6807:30;6819:4;6825:11;6807;:30::i;:::-;6799:68;;;;;;-1:-1:-1;;;;;6799:68:17;;;;;;;;;6890:27;;;;:14;;;:27;;;;;;6880:9;;;:38;;:9;;6890:27;6880:38;;;;;6162:219;6248:17;;:::i;:::-;6291:9;;;:16;6283:24;;6275:72;;;;-1:-1:-1;;;;;6275:72:17;;;;;;;;;6360:9;;;:16;;6370:5;;6360:16;;;;;;;;;;;;;;;6353:23;;;;;;;;6360:16;;;;;;;;6353:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6353:23:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6360:16;;6353:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6353:23:17;;;-1:-1:-1;;6353:23:17;;;;;;;;;;;;;;;;-1:-1:-1;;6353:23:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6162:219;;;;:::o;7294:499::-;7391:19;7491:22;7600:30;7681:9;7428:26;7440:4;7446:7;7428:11;:26::i;:::-;7420:64;;;;;;-1:-1:-1;;;;;7420:64:17;;;;;;;;;7516:22;;;;:13;;;:22;;;;;7552:11;;7516:22;;-1:-1:-1;7552:15:17;7544:49;;;;-1:-1:-1;;;;;7544:49:17;;;;;;;;;7657:11;;7633:36;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7600:69;;7693:1;7681:13;;7676:96;7700:11;;7696:15;;7676:96;;;7735:4;:9;;7745:4;:10;;:19;7756:4;7761:1;7756:7;;;;;;;;;;;;;;;;;;7745:19;;;;;;;;;;;;7735:30;;;;;;;;;;;;;;;;;;;7726:39;;;;;;;;7735:30;;;;;;;;7726:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7726:39:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7735:30;;7726:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7726:39:17;;;-1:-1:-1;;7726:39:17;;;;;;;;;;;;;;;;-1:-1:-1;;7726:39:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;7730:1;7726:6;;;;;;;;;;;;;;;;;;:39;7713:3;;7676:96;;;7785:3;7778:10;;7294:499;;;;;;;;:::o;7898:485::-;8007:19;8041:12;8007:19;8041:12;8071:10;;;8063:55;;;;-1:-1:-1;;;;;8063:55:17;;;;;;;;;8181:6;8157:31;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8124:64;;8212:4;8200:16;;8195:167;8222:9;;;:16;8218:20;;8195:167;;;8265:6;8257:4;:14;8253:44;;;8283:5;;8253:44;8317:9;;;:12;;8327:1;;8317:12;;;;;;;;;;;;;;;8305:24;;;;;;;;8317:12;;;;;;;;8305:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8305:24:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8317:12;;8305:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8305:24:17;;;-1:-1:-1;;8305:24:17;;;;;;;;;;;;;;;;-1:-1:-1;;8305:24:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;8309:4;8305:9;;;;;;;;;;;;;;;;;;:24;8344:11;:4;8353:1;8344:11;:8;:11;:::i;:::-;8337:18;-1:-1:-1;8240:3:17;;8195:167;;;-1:-1:-1;8375:3:17;7898:485;-1:-1:-1;;;;;7898:485:17:o;6385:214::-;6473:17;;:::i;:::-;6508:18;6516:4;6522:3;6508:7;:18::i;:::-;6500:55;;;;;;-1:-1:-1;;;;;6500:55:17;;;;;;;;;6578:10;:15;;;;;;;;;;;6568:9;;;:26;;:9;;6578:15;6568:26;;;;;4078:157;4162:7;4213:8;4223:5;4196:33;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4196:33:17;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4196:33:17;;;4186:44;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;4186:44:17;;;;;;;;;;;;-1:-1:-1;;;;;;4078:157:17:o;1946:280::-;2064:9;;;:16;2046:4;;;;2064:21;2060:39;;;2094:5;2087:12;;;;2060:39;2135:27;;;;:14;;;:27;;;;;;2125:9;;;:38;;:9;;2135:27;2125:38;;;;;;;;;;;;;;;2185:9;2125:38;;;;;2185:9;;;;2196:8;;;2177:28;;;;;;;;;;;;-1:-1:-1;;2177:28:17;;;;;;;;;;;;;;;;;;;;;;;;;2125:38;;-1:-1:-1;2209:11:17;;2177:28;;2185:9;;2177:28;;;2196:8;2177:28;;;;;;;;;;;;;;;;;;;;;;;;;:43;;-1:-1:-1;1946:280:17;;;;;;:::o;1400:258::-;1506:9;;;:16;1488:4;;1506:21;1502:39;;;-1:-1:-1;1536:5:17;1529:12;;1502:39;1565:10;:15;;;;;;;;;;;1555:9;;;:26;;1588:3;;1565:15;1555:26;;;;;;;;;;;;;;;;:29;;;:36;:97;;;;-1:-1:-1;1651:1:17;1624:15;;;;;;;;;;;1614:9;;;:26;;1601:47;;1624:15;1614:26;;;;;;;;;;;;;;;:33;:26;;;;;:33;1601:47;;;;;;;-1:-1:-1;;1601:47:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1614:33;1601:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:47::i;:::-;:51;;1400:258;-1:-1:-1;;;1400:258:17:o;1662:280::-;1780:9;;;:16;1762:4;;;;1780:21;1776:39;;;1810:5;1803:12;;;;1776:39;1851:27;;;;:14;;;:27;;;;;;1841:9;;;:38;;:9;;1851:27;1841:38;;;;;;;;;;;;;;;1901:9;1841:38;;;;;1901:9;;;;1912:8;;;1893:28;;;;;;;;;;;;-1:-1:-1;;1893:28:17;;;;;;;;;;;;;;;;;;;;;;;;;1841:38;;-1:-1:-1;1925:11:17;;1893:28;;1901:9;;1893:28;;;1912:8;1893:28;;;;;;;;;;;;;;;;;;;;;;;;2683:433;2796:4;2808:11;2825:18;2849:17;2890:15;2869:4;:9;;2879:4;2869:15;;;;;;;;;;;;;;;;;;;;;;;2908:8;;;;2869:15;;-1:-1:-1;2908:15:17;:40;;2940:1;:8;;;2908:40;;;2926:11;2908:40;2890:58;;2978:31;2989:4;2995:7;3004:1;:4;;;2978:10;:31::i;:::-;2955:54;;-1:-1:-1;2955:54:17;-1:-1:-1;3015:39:17;;;;3042:5;3035:12;;;;3015:39;3060:22;;;;:13;;;:22;;;;;;;3088:4;;;;;27:10:-1;;23:18;;;45:23;;3060:33:17;;;;;;;;;3088:4;-1:-1:-1;2683:433:17;;;;;;;;;;:::o;1093:116:20:-;1153:7;1175:8;;;;1168:16;;;;-1:-1:-1;1197:7:20;;;1093:116::o;3156:717:17:-;3240:4;3254:17;3295:13;3332:19;3411:11;3428:15;3557:22;3736:17;3274:4;:9;;3284:4;3274:15;;;;;;;;;;;;;;;;;;;;;;;3311:8;;;;3274:15;;-1:-1:-1;3311:15:17;;-1:-1:-1;3311:15:17;3354:50;;3396:1;:8;;;3354:50;;;3373:9;;;;;3384:8;;;3365:28;;;;;;;;;;;;-1:-1:-1;;3365:28:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3384:8;3365:28;;3384:8;3365:28;;;;;;;;;;;;;;;;;;;;;;;;;3332:72;;3470:35;3481:4;3487:11;3500:1;:4;;;3470:10;:35::i;:::-;3450:55;;-1:-1:-1;3450:55:17;-1:-1:-1;3515:7:17;;3511:40;;;3539:5;3532:12;;;;3511:40;3582:26;;;;:13;;;:26;;;;;;-1:-1:-1;3674:8:17;:27;;;;-1:-1:-1;3686:11:17;;3700:1;-1:-1:-1;3674:27:17;3670:60;;;3718:5;3711:12;;;;3670:60;3761:11;;3756:4;;3761:18;;3777:1;3761:18;:15;:18;:::i;:::-;3756:24;;;;;;;;;;;;;;;;3736:44;;3803:9;3787:4;3792:7;3787:13;;;;;;;;;;;;;;;;;;;:25;3832:11;;:18;;3848:1;3832:18;:15;:18;:::i;:::-;3818:32;:4;:32;;:::i;:::-;;3864:4;3857:11;;3156:717;;;;;;;;;;;;:::o;1319:134:20:-;1379:7;1406;;;1426;;;;1419:15;;;;1447:1;1319:134;-1:-1:-1;;;1319:134:20:o;3877:197:17:-;3992:8;;3935:7;;3973:4;;4004;-1:-1:-1;3992:16:17;3984:64;;;;-1:-1:-1;;;;;3984:64:17;;;;;;;;;4061:8;;3877:197;-1:-1:-1;;3877:197:17:o;2266:377::-;2378:4;2384:7;2450:22;2509:9;2403:4;:9;;:16;;;;2423:1;2403:21;2399:44;;;2434:5;;-1:-1:-1;2434:5:17;;-1:-1:-1;2426:17:17;;2399:44;-1:-1:-1;;2475:22:17;;;;:13;;;:22;;;;;;2504:111;2528:11;;2524:15;;2504:111;;;2569:3;2558:4;2563:1;2558:7;;;;;;;;;;;;;;;;;;:14;2554:55;;;2592:4;2598:1;2584:16;;;;;;2554:55;2541:3;;2504:111;;;2629:5;;-1:-1:-1;2629:5:17;;-1:-1:-1;2266:377:17;;;;;;;;;:::o;561:1800:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;561:1800:33;;;-1:-1:-1;561:1800:33;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:118;;197:46;235:6;222:20;197:46;;256:442;;351:4;339:17;;335:27;-1:-1;325:2;;376:1;373;366:12;325:2;413:6;400:20;435:65;450:49;492:6;450:49;;;435:65;;;426:74;;520:6;513:5;506:21;556:4;548:6;544:17;589:4;582:5;578:16;624:3;615:6;610:3;606:16;603:25;600:2;;;641:1;638;631:12;600:2;651:41;685:6;680:3;675;651:41;;831:241;;935:2;923:9;914:7;910:23;906:32;903:2;;;951:1;948;941:12;903:2;986:1;1003:53;1048:7;1028:9;1003:53;;;993:63;897:175;-1:-1;;;;897:175;1079:241;;1183:2;1171:9;1162:7;1158:23;1154:32;1151:2;;;1199:1;1196;1189:12;1151:2;1234:1;1251:53;1296:7;1276:9;1251:53;;1575:472;;;1706:2;1694:9;1685:7;1681:23;1677:32;1674:2;;;1722:1;1719;1712:12;1674:2;1757:1;1774:53;1819:7;1799:9;1774:53;;;1764:63;;1736:97;1892:2;1881:9;1877:18;1864:32;1916:18;1908:6;1905:30;1902:2;;;1948:1;1945;1938:12;1902:2;1968:63;2023:7;2014:6;2003:9;1999:22;1968:63;;;1958:73;;1843:194;1668:379;;;;;;2054:366;;;2175:2;2163:9;2154:7;2150:23;2146:32;2143:2;;;2191:1;2188;2181:12;2143:2;2226:1;2243:53;2288:7;2268:9;2243:53;;;2233:63;;2205:97;2333:2;2351:53;2396:7;2387:6;2376:9;2372:22;2351:53;;2427:955;;;;;;2619:3;2607:9;2598:7;2594:23;2590:33;2587:2;;;2636:1;2633;2626:12;2587:2;2671:1;2688:53;2733:7;2713:9;2688:53;;;2678:63;;2650:97;2778:2;2796:53;2841:7;2832:6;2821:9;2817:22;2796:53;;;2786:63;;2757:98;2886:2;2904:53;2949:7;2940:6;2929:9;2925:22;2904:53;;;2894:63;;2865:98;3022:2;3011:9;3007:18;2994:32;3046:18;3038:6;3035:30;3032:2;;;3078:1;3075;3068:12;3032:2;3098:63;3153:7;3144:6;3133:9;3129:22;3098:63;;;3088:73;;2973:194;3226:3;3215:9;3211:19;3198:33;3251:18;3243:6;3240:30;3237:2;;;3283:1;3280;3273:12;3237:2;3303:63;3358:7;3349:6;3338:9;3334:22;3303:63;;;3293:73;;3177:195;2581:801;;;;;;;;;3389:110;3462:31;3487:5;3462:31;;;3457:3;3450:44;3444:55;;;3571:878;;3748:75;3817:5;3748:75;;;3841:6;3836:3;3829:19;3865:4;3860:3;3856:14;3849:21;;3913:3;3955:4;3947:6;3943:17;3938:3;3934:27;3981:77;4052:5;3981:77;;;4079:1;4064:346;4089:6;4086:1;4083:13;4064:346;;;4151:9;4145:4;4141:20;4136:3;4129:33;4177:100;4272:4;4263:6;4257:13;4177:100;;;4169:108;;4294:81;4368:6;4294:81;;;4398:4;4389:14;;;;;4284:91;-1:-1;4111:1;4104:9;4064:346;;;-1:-1;4423:4;;3727:722;-1:-1;;;;;;3727:722;4457:101;4524:28;4546:5;4524:28;;4565:110;4638:31;4663:5;4638:31;;4682:300;;4784:39;4817:5;4784:39;;;4840:6;4835:3;4828:19;4852:63;4908:6;4901:4;4896:3;4892:14;4885:4;4878:5;4874:16;4852:63;;;4947:29;4969:6;4947:29;;;4927:50;;;4940:4;4927:50;;4764:218;-1:-1;;;4764:218;5289:296;5444:2;5432:15;;5481:66;5476:2;5467:12;;5460:88;5576:2;5567:12;;5425:160;5594:397;5749:2;5737:15;;5786:66;5781:2;5772:12;;5765:88;5887:66;5882:2;5873:12;;5866:88;5982:2;5973:12;;5730:261;6000:397;6155:2;6143:15;;6192:66;6187:2;6178:12;;6171:88;6293:66;6288:2;6279:12;;6272:88;6388:2;6379:12;;6136:261;6406:296;6561:2;6549:15;;6598:66;6593:2;6584:12;;6577:88;6693:2;6684:12;;6542:160;6711:296;6866:2;6854:15;;6903:66;6898:2;6889:12;;6882:88;6998:2;6989:12;;6847:160;7016:296;7171:2;7159:15;;7208:66;7203:2;7194:12;;7187:88;7303:2;7294:12;;7152:160;7321:397;7476:2;7464:15;;7513:66;7508:2;7499:12;;7492:88;7614:66;7609:2;7600:12;;7593:88;7709:2;7700:12;;7457:261;7727:296;7882:2;7870:15;;7919:66;7914:2;7905:12;;7898:88;8014:2;8005:12;;7863:160;8032:296;8187:2;8175:15;;;8224:66;8210:12;;;8203:88;8319:2;8310:12;;8168:160;8337:296;8492:2;8480:15;;8529:66;8524:2;8515:12;;8508:88;8624:2;8615:12;;8473:160;8642:397;8797:2;8785:15;;8834:66;8829:2;8820:12;;8813:88;8935:66;8930:2;8921:12;;8914:88;9030:2;9021:12;;8778:261;9048:296;9203:2;9191:15;;9240:66;9235:2;9226:12;;9219:88;9335:2;9326:12;;9184:160;9353:397;9508:2;9496:15;;9545:66;9540:2;9531:12;;9524:88;9646:66;9641:2;9632:12;;9625:88;9741:2;9732:12;;9489:261;9759:296;9914:2;9902:15;;9951:66;9946:2;9937:12;;9930:88;10046:2;10037:12;;9895:160;10122:1307;10331:22;;10122:1307;;10263:4;10254:14;;;10365:61;10258:3;10331:22;10365:61;;;10283:155;10512:4;10505:5;10501:16;10495:23;10530:62;10586:4;10581:3;10577:14;10564:11;10530:62;;;10448:156;10683:4;10676:5;10672:16;10666:23;10701:62;10757:4;10752:3;10748:14;10735:11;10701:62;;;10614:161;10853:4;10846:5;10842:16;10836:23;10871:62;10927:4;10922:3;10918:14;10905:11;10871:62;;;10785:160;11023:4;11016:5;11012:16;11006:23;11074:3;11068:4;11064:14;11057:4;11052:3;11048:14;11041:38;11094:68;11157:4;11144:11;11094:68;;;11086:76;;10955:219;11252:4;11245:5;11241:16;11235:23;11303:3;11297:4;11293:14;11286:4;11281:3;11277:14;11270:38;11323:68;11386:4;11373:11;11323:68;;;11315:76;10236:1193;-1:-1;;;;;10236:1193;12922:193;13030:2;13015:18;;13044:61;13019:9;13078:6;13044:61;;13122:425;13322:2;13336:47;;;13307:18;;13397:140;13307:18;13523:6;13397:140;;13554:181;13656:2;13641:18;;13670:55;13645:9;13698:6;13670:55;;13742:470;13918:2;13932:47;;;13903:18;;13993:68;13903:18;14047:6;13993:68;;;13985:76;;14109:9;14103:4;14099:20;14094:2;14083:9;14079:18;14072:48;14134:68;14197:4;14188:6;14134:68;;14219:387;14400:2;14414:47;;;14385:18;;14475:121;14385:18;14475:121;;14613:387;14794:2;14808:47;;;14779:18;;14869:121;14779:18;14869:121;;15007:387;15188:2;15202:47;;;15173:18;;15263:121;15173:18;15263:121;;15401:387;15582:2;15596:47;;;15567:18;;15657:121;15567:18;15657:121;;15795:387;15976:2;15990:47;;;15961:18;;16051:121;15961:18;16051:121;;16189:387;16370:2;16384:47;;;16355:18;;16445:121;16355:18;16445:121;;16583:387;16764:2;16778:47;;;16749:18;;16839:121;16749:18;16839:121;;16977:387;17158:2;17172:47;;;17143:18;;17233:121;17143:18;17233:121;;17371:387;17552:2;17566:47;;;17537:18;;17627:121;17537:18;17627:121;;17765:387;17946:2;17960:47;;;17931:18;;18021:121;17931:18;18021:121;;18159:387;18340:2;18354:47;;;18325:18;;18415:121;18325:18;18415:121;;18553:387;18734:2;18748:47;;;18719:18;;18809:121;18719:18;18809:121;;18947:387;19128:2;19142:47;;;19113:18;;19203:121;19113:18;19203:121;;19341:387;19522:2;19536:47;;;19507:18;;19597:121;19507:18;19597:121;;19735:341;19893:2;19907:47;;;19878:18;;19968:98;19878:18;20052:6;19968:98;;20083:193;20191:2;20176:18;;20205:61;20180:9;20239:6;20205:61;;20283:256;20345:2;20339:9;20371:17;;;20446:18;20431:34;;20467:22;;;20428:62;20425:2;;;20503:1;20500;20493:12;20425:2;20519;20512:22;20323:216;;-1:-1;20323:216;20546:259;;20690:18;20682:6;20679:30;20676:2;;;20722:1;20719;20712:12;20676:2;-1:-1;20795:4;20766;20743:17;;;;-1:-1;;20739:33;20785:15;;20613:192;20814:142;20944:4;20932:17;;20913:43;20965:128;21076:12;;21060:33;21446:128;-1:-1;;;;;21515:54;;21498:76;21581:92;21654:13;21647:21;;21630:43;22160:145;22241:6;22236:3;22231;22218:30;-1:-1;22297:1;22279:16;;22272:27;22211:94;22314:268;22379:1;22386:101;22400:6;22397:1;22394:13;22386:101;;;22467:11;;;22461:18;22448:11;;;22441:39;22422:2;22415:10;22386:101;;;22502:6;22499:1;22496:13;22493:2;;;22567:1;22558:6;22553:3;22549:16;22542:27;22493:2;22363:219;;;;;22590:97;22678:2;22658:14;-1:-1;;22654:28;;22638:49",
  "source": "pragma solidity >=0.4.24;\npragma experimental ABIEncoderV2;\n\nimport \"../owner/Administrative.sol\";\nimport \"../list/TokenList.sol\";\n\n/**\n * Token清单\n * 提供链和通证的定义字典，提供不同链通证映射关系，为跨链转移资产提供基础数据支持\n * 1. 支持多签名钱包操作\n * 2. 支持编码和符号查询\n * 3. 支持不同链通证映射查询\n * 链的定义遵循 BIP44 规范， 参见\n * https://github.com/satoshilabs/slips/blob/master/slip-0044.md\n * 通证基于不同链的定义方式，以字符串形式保存\n */\ncontract JCCTokenList is Administrative {\n  using TokenList for TokenList.tokenMap;\n\n  event Add(\n    uint256 indexed tokenId,\n    uint256 indexed chainId,\n    bytes32 indexed _origin,\n    string issuer,\n    string symbol\n  );\n  event Remove(uint256 indexed tokenId);\n\n  TokenList.tokenMap tokens;\n\n  constructor() public Administrative() {}\n\n  function insert(\n    uint256 _id,\n    uint256 _chainId,\n    bytes32 _origin,\n    string _issuer,\n    string _symbol\n  ) public onlyPrivileged returns (bool) {\n    require(\n      tokens.insert(_id, _chainId, _origin, _issuer, _symbol),\n      \"add token failed\"\n    );\n    emit Add(_id, _chainId, _origin, _issuer, _symbol);\n    return true;\n  }\n\n  function remove(uint256 _id) public onlyPrivileged returns (bool) {\n    require(tokens.remove(_id), \"remove token failed\");\n    emit Remove(_id);\n    return true;\n  }\n\n  function get(uint256 _idx) public view returns (TokenList.element) {\n    return tokens.get(_idx);\n  }\n\n  function getById(uint256 _id) public view returns (TokenList.element) {\n    return tokens.getById(_id);\n  }\n\n  function getBySymbol(uint256 _chainId, string _symbol)\n    public\n    view\n    returns (TokenList.element)\n  {\n    return tokens.getBySymbol(_chainId, _symbol);\n  }\n\n  function getByIssuer(uint256 _chainId, string _issuer)\n    public\n    view\n    returns (TokenList.element)\n  {\n    return tokens.getByIssuer(_chainId, _issuer);\n  }\n\n  function getCrossList(bytes32 _origin)\n    public\n    view\n    returns (TokenList.element[])\n  {\n    return tokens.getCrossList(_origin);\n  }\n\n  function getList(uint256 from, uint256 _count)\n    public\n    view\n    returns (TokenList.element[] memory)\n  {\n    return tokens.getList(from, _count);\n  }\n\n  function count() public view returns (uint256) {\n    return tokens.count();\n  }\n}\n",
  "sourcePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/utils/JCCTokenList.sol",
  "ast": {
    "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/utils/JCCTokenList.sol",
    "exportedSymbols": {
      "JCCTokenList": [
        7311
      ]
    },
    "id": 7312,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7115,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:25:33"
      },
      {
        "id": 7116,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "26:33:33"
      },
      {
        "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/owner/Administrative.sol",
        "file": "../owner/Administrative.sol",
        "id": 7117,
        "nodeType": "ImportDirective",
        "scope": 7312,
        "sourceUnit": 6731,
        "src": "61:37:33",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol",
        "file": "../list/TokenList.sol",
        "id": 7118,
        "nodeType": "ImportDirective",
        "scope": 7312,
        "sourceUnit": 4974,
        "src": "99:31:33",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 7119,
              "name": "Administrative",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6730,
              "src": "586:14:33",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Administrative_$6730",
                "typeString": "contract Administrative"
              }
            },
            "id": 7120,
            "nodeType": "InheritanceSpecifier",
            "src": "586:14:33"
          }
        ],
        "contractDependencies": [
          6730
        ],
        "contractKind": "contract",
        "documentation": "Token清单\n提供链和通证的定义字典，提供不同链通证映射关系，为跨链转移资产提供基础数据支持\n1. 支持多签名钱包操作\n2. 支持编码和符号查询\n3. 支持不同链通证映射查询\n链的定义遵循 BIP44 规范， 参见\nhttps://github.com/satoshilabs/slips/blob/master/slip-0044.md\n通证基于不同链的定义方式，以字符串形式保存",
        "fullyImplemented": true,
        "id": 7311,
        "linearizedBaseContracts": [
          7311,
          6730
        ],
        "name": "JCCTokenList",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 7123,
            "libraryName": {
              "contractScope": null,
              "id": 7121,
              "name": "TokenList",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4973,
              "src": "611:9:33",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_TokenList_$4973",
                "typeString": "library TokenList"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "605:39:33",
            "typeName": {
              "contractScope": null,
              "id": 7122,
              "name": "TokenList.tokenMap",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4056,
              "src": "625:18:33",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                "typeString": "struct TokenList.tokenMap"
              }
            }
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 7135,
            "name": "Add",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 7134,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7125,
                  "indexed": true,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "663:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7124,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "663:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7127,
                  "indexed": true,
                  "name": "chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "692:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7126,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "692:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7129,
                  "indexed": true,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "721:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7128,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "721:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7131,
                  "indexed": false,
                  "name": "issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "750:13:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7130,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "750:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7133,
                  "indexed": false,
                  "name": "symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "769:13:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7132,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "769:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "657:129:33"
            },
            "src": "648:139:33"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 7139,
            "name": "Remove",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 7138,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7137,
                  "indexed": true,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7139,
                  "src": "803:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7136,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "803:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "802:25:33"
            },
            "src": "790:38:33"
          },
          {
            "constant": false,
            "id": 7141,
            "name": "tokens",
            "nodeType": "VariableDeclaration",
            "scope": 7311,
            "src": "832:25:33",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
              "typeString": "struct TokenList.tokenMap"
            },
            "typeName": {
              "contractScope": null,
              "id": 7140,
              "name": "TokenList.tokenMap",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4056,
              "src": "832:18:33",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                "typeString": "struct TokenList.tokenMap"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7146,
              "nodeType": "Block",
              "src": "900:2:33",
              "statements": []
            },
            "documentation": null,
            "id": 7147,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 7144,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7143,
                  "name": "Administrative",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6730,
                  "src": "883:14:33",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Administrative_$6730_$",
                    "typeString": "type(contract Administrative)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "883:16:33"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7142,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "873:2:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7145,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "900:0:33"
            },
            "scope": 7311,
            "src": "862:40:33",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7186,
              "nodeType": "Block",
              "src": "1063:186:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7167,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7149,
                            "src": "1098:3:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 7168,
                            "name": "_chainId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7151,
                            "src": "1103:8:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 7169,
                            "name": "_origin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7153,
                            "src": "1113:7:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 7170,
                            "name": "_issuer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7155,
                            "src": "1122:7:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 7171,
                            "name": "_symbol",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7157,
                            "src": "1131:7:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7165,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7141,
                            "src": "1084:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                              "typeString": "struct TokenList.tokenMap storage ref"
                            }
                          },
                          "id": 7166,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "insert",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4577,
                          "src": "1084:13:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,uint256,uint256,bytes32,string memory,string memory) returns (bool)"
                          }
                        },
                        "id": 7172,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1084:55:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61646420746f6b656e206661696c6564",
                        "id": 7173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1147:18:33",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7bec5e121557aeae50addbab38afd9cd717c1aba6007b894b3ab9357207fb2f6",
                          "typeString": "literal_string \"add token failed\""
                        },
                        "value": "add token failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7bec5e121557aeae50addbab38afd9cd717c1aba6007b894b3ab9357207fb2f6",
                          "typeString": "literal_string \"add token failed\""
                        }
                      ],
                      "id": 7164,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "1069:7:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7174,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1069:102:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7175,
                  "nodeType": "ExpressionStatement",
                  "src": "1069:102:33"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7177,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7149,
                        "src": "1186:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7178,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7151,
                        "src": "1191:8:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7179,
                        "name": "_origin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7153,
                        "src": "1201:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7180,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7155,
                        "src": "1210:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7181,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7157,
                        "src": "1219:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 7176,
                      "name": "Add",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7135,
                      "src": "1182:3:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,bytes32,string memory,string memory)"
                      }
                    },
                    "id": 7182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1182:45:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7183,
                  "nodeType": "EmitStatement",
                  "src": "1177:50:33"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 7184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1240:4:33",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 7163,
                  "id": 7185,
                  "nodeType": "Return",
                  "src": "1233:11:33"
                }
              ]
            },
            "documentation": null,
            "id": 7187,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 7160,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7159,
                  "name": "onlyPrivileged",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6642,
                  "src": "1033:14:33",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1033:14:33"
              }
            ],
            "name": "insert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7149,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "927:11:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7148,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7151,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "944:16:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7150,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "944:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7153,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "966:15:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7152,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "966:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7155,
                  "name": "_issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "987:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7154,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "987:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7157,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "1007:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7156,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1007:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "921:104:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7162,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "1057:4:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7161,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:4:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1056:6:33"
            },
            "scope": 7311,
            "src": "906:343:33",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7210,
              "nodeType": "Block",
              "src": "1319:100:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7199,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7189,
                            "src": "1347:3:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7197,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7141,
                            "src": "1333:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                              "typeString": "struct TokenList.tokenMap storage ref"
                            }
                          },
                          "id": 7198,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "remove",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4690,
                          "src": "1333:13:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) returns (bool)"
                          }
                        },
                        "id": 7200,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1333:18:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72656d6f766520746f6b656e206661696c6564",
                        "id": 7201,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1353:21:33",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a7e28bedd7228732134f62da631cbf5af8f47a10249ba390d76632e4e327ab53",
                          "typeString": "literal_string \"remove token failed\""
                        },
                        "value": "remove token failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a7e28bedd7228732134f62da631cbf5af8f47a10249ba390d76632e4e327ab53",
                          "typeString": "literal_string \"remove token failed\""
                        }
                      ],
                      "id": 7196,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "1325:7:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7202,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1325:50:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7203,
                  "nodeType": "ExpressionStatement",
                  "src": "1325:50:33"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7205,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7189,
                        "src": "1393:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7204,
                      "name": "Remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7139,
                      "src": "1386:6:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 7206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1386:11:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7207,
                  "nodeType": "EmitStatement",
                  "src": "1381:16:33"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 7208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1410:4:33",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 7195,
                  "id": 7209,
                  "nodeType": "Return",
                  "src": "1403:11:33"
                }
              ]
            },
            "documentation": null,
            "id": 7211,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 7192,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7191,
                  "name": "onlyPrivileged",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6642,
                  "src": "1289:14:33",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1289:14:33"
              }
            ],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7190,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7189,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 7211,
                  "src": "1269:11:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7188,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1269:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1268:13:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7194,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7211,
                  "src": "1313:4:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7193,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1313:4:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1312:6:33"
            },
            "scope": 7311,
            "src": "1253:166:33",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7223,
              "nodeType": "Block",
              "src": "1490:34:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7220,
                        "name": "_idx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7213,
                        "src": "1514:4:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7218,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "1503:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7219,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "get",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4726,
                      "src": "1503:10:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_struct$_element_$4035_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (struct TokenList.element memory)"
                      }
                    },
                    "id": 7221,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1503:16:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "functionReturnParameters": 7217,
                  "id": 7222,
                  "nodeType": "Return",
                  "src": "1496:23:33"
                }
              ]
            },
            "documentation": null,
            "id": 7224,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7214,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7213,
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 7224,
                  "src": "1436:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7212,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1436:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1435:14:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7217,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7216,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7224,
                  "src": "1471:17:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7215,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1471:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1470:19:33"
            },
            "scope": 7311,
            "src": "1423:101:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7236,
              "nodeType": "Block",
              "src": "1598:37:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7233,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7226,
                        "src": "1626:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7231,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "1611:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7232,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getById",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4752,
                      "src": "1611:14:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_struct$_element_$4035_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (struct TokenList.element memory)"
                      }
                    },
                    "id": 7234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1611:19:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "functionReturnParameters": 7230,
                  "id": 7235,
                  "nodeType": "Return",
                  "src": "1604:26:33"
                }
              ]
            },
            "documentation": null,
            "id": 7237,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getById",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7226,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 7237,
                  "src": "1545:11:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7225,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1545:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1544:13:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7230,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7229,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7237,
                  "src": "1579:17:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7228,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1579:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1578:19:33"
            },
            "scope": 7311,
            "src": "1528:107:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7252,
              "nodeType": "Block",
              "src": "1748:55:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7248,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7239,
                        "src": "1780:8:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7249,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7241,
                        "src": "1790:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7246,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "1761:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7247,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBySymbol",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4787,
                      "src": "1761:18:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_struct$_element_$4035_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256,string memory) view returns (struct TokenList.element memory)"
                      }
                    },
                    "id": 7250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1761:37:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "functionReturnParameters": 7245,
                  "id": 7251,
                  "nodeType": "Return",
                  "src": "1754:44:33"
                }
              ]
            },
            "documentation": null,
            "id": 7253,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBySymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7242,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7239,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7253,
                  "src": "1660:16:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7238,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1660:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7241,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 7253,
                  "src": "1678:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7240,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1678:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1659:34:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7245,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7244,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7253,
                  "src": "1727:17:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7243,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1727:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1726:19:33"
            },
            "scope": 7311,
            "src": "1639:164:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7268,
              "nodeType": "Block",
              "src": "1916:55:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7264,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7255,
                        "src": "1948:8:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7265,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7257,
                        "src": "1958:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7262,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "1929:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7263,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getByIssuer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4822,
                      "src": "1929:18:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_struct$_element_$4035_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256,string memory) view returns (struct TokenList.element memory)"
                      }
                    },
                    "id": 7266,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1929:37:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "functionReturnParameters": 7261,
                  "id": 7267,
                  "nodeType": "Return",
                  "src": "1922:44:33"
                }
              ]
            },
            "documentation": null,
            "id": 7269,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getByIssuer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7258,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7255,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7269,
                  "src": "1828:16:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7254,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1828:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7257,
                  "name": "_issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 7269,
                  "src": "1846:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7256,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1846:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1827:34:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7261,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7260,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7269,
                  "src": "1895:17:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7259,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1895:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1894:19:33"
            },
            "scope": 7311,
            "src": "1807:164:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7282,
              "nodeType": "Block",
              "src": "2070:46:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7279,
                        "name": "_origin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7271,
                        "src": "2103:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7277,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "2083:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7278,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCrossList",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4899,
                      "src": "2083:19:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (struct TokenList.element memory[] memory)"
                      }
                    },
                    "id": 7280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2083:28:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "functionReturnParameters": 7276,
                  "id": 7281,
                  "nodeType": "Return",
                  "src": "2076:35:33"
                }
              ]
            },
            "documentation": null,
            "id": 7283,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCrossList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7272,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7271,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 7283,
                  "src": "1997:15:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7270,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1997:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1996:17:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7275,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7283,
                  "src": "2047:19:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                    "typeString": "struct TokenList.element[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7273,
                      "name": "TokenList.element",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4035,
                      "src": "2047:17:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      }
                    },
                    "id": 7274,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2047:19:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                      "typeString": "struct TokenList.element[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2046:21:33"
            },
            "scope": 7311,
            "src": "1975:141:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7299,
              "nodeType": "Block",
              "src": "2230:46:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7295,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7285,
                        "src": "2258:4:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7296,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7287,
                        "src": "2264:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7293,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "2243:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7294,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getList",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4972,
                      "src": "2243:14:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256,uint256) view returns (struct TokenList.element memory[] memory)"
                      }
                    },
                    "id": 7297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2243:28:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "functionReturnParameters": 7292,
                  "id": 7298,
                  "nodeType": "Return",
                  "src": "2236:35:33"
                }
              ]
            },
            "documentation": null,
            "id": 7300,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7285,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 7300,
                  "src": "2137:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7284,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2137:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7287,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 7300,
                  "src": "2151:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7286,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2151:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2136:30:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7292,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7291,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7300,
                  "src": "2200:19:33",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                    "typeString": "struct TokenList.element[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7289,
                      "name": "TokenList.element",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4035,
                      "src": "2200:17:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      }
                    },
                    "id": 7290,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2200:19:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                      "typeString": "struct TokenList.element[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2199:28:33"
            },
            "scope": 7311,
            "src": "2120:156:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7309,
              "nodeType": "Block",
              "src": "2327:32:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7305,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "2340:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7306,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "count",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4702,
                      "src": "2340:12:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 7307,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2340:14:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7304,
                  "id": 7308,
                  "nodeType": "Return",
                  "src": "2333:21:33"
                }
              ]
            },
            "documentation": null,
            "id": 7310,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "count",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7301,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2294:2:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7303,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7310,
                  "src": "2318:7:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7302,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2318:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2317:9:33"
            },
            "scope": 7311,
            "src": "2280:79:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 7312,
        "src": "561:1800:33"
      }
    ],
    "src": "0:2362:33"
  },
  "legacyAST": {
    "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/utils/JCCTokenList.sol",
    "exportedSymbols": {
      "JCCTokenList": [
        7311
      ]
    },
    "id": 7312,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7115,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:25:33"
      },
      {
        "id": 7116,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "26:33:33"
      },
      {
        "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/owner/Administrative.sol",
        "file": "../owner/Administrative.sol",
        "id": 7117,
        "nodeType": "ImportDirective",
        "scope": 7312,
        "sourceUnit": 6731,
        "src": "61:37:33",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/list/TokenList.sol",
        "file": "../list/TokenList.sol",
        "id": 7118,
        "nodeType": "ImportDirective",
        "scope": 7312,
        "sourceUnit": 4974,
        "src": "99:31:33",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 7119,
              "name": "Administrative",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6730,
              "src": "586:14:33",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Administrative_$6730",
                "typeString": "contract Administrative"
              }
            },
            "id": 7120,
            "nodeType": "InheritanceSpecifier",
            "src": "586:14:33"
          }
        ],
        "contractDependencies": [
          6730
        ],
        "contractKind": "contract",
        "documentation": "Token清单\n提供链和通证的定义字典，提供不同链通证映射关系，为跨链转移资产提供基础数据支持\n1. 支持多签名钱包操作\n2. 支持编码和符号查询\n3. 支持不同链通证映射查询\n链的定义遵循 BIP44 规范， 参见\nhttps://github.com/satoshilabs/slips/blob/master/slip-0044.md\n通证基于不同链的定义方式，以字符串形式保存",
        "fullyImplemented": true,
        "id": 7311,
        "linearizedBaseContracts": [
          7311,
          6730
        ],
        "name": "JCCTokenList",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 7123,
            "libraryName": {
              "contractScope": null,
              "id": 7121,
              "name": "TokenList",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4973,
              "src": "611:9:33",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_TokenList_$4973",
                "typeString": "library TokenList"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "605:39:33",
            "typeName": {
              "contractScope": null,
              "id": 7122,
              "name": "TokenList.tokenMap",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4056,
              "src": "625:18:33",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                "typeString": "struct TokenList.tokenMap"
              }
            }
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 7135,
            "name": "Add",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 7134,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7125,
                  "indexed": true,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "663:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7124,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "663:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7127,
                  "indexed": true,
                  "name": "chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "692:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7126,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "692:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7129,
                  "indexed": true,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "721:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7128,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "721:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7131,
                  "indexed": false,
                  "name": "issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "750:13:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7130,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "750:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7133,
                  "indexed": false,
                  "name": "symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 7135,
                  "src": "769:13:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7132,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "769:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "657:129:33"
            },
            "src": "648:139:33"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 7139,
            "name": "Remove",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 7138,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7137,
                  "indexed": true,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7139,
                  "src": "803:23:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7136,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "803:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "802:25:33"
            },
            "src": "790:38:33"
          },
          {
            "constant": false,
            "id": 7141,
            "name": "tokens",
            "nodeType": "VariableDeclaration",
            "scope": 7311,
            "src": "832:25:33",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
              "typeString": "struct TokenList.tokenMap"
            },
            "typeName": {
              "contractScope": null,
              "id": 7140,
              "name": "TokenList.tokenMap",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4056,
              "src": "832:18:33",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_tokenMap_$4056_storage_ptr",
                "typeString": "struct TokenList.tokenMap"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7146,
              "nodeType": "Block",
              "src": "900:2:33",
              "statements": []
            },
            "documentation": null,
            "id": 7147,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 7144,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7143,
                  "name": "Administrative",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6730,
                  "src": "883:14:33",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Administrative_$6730_$",
                    "typeString": "type(contract Administrative)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "883:16:33"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7142,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "873:2:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7145,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "900:0:33"
            },
            "scope": 7311,
            "src": "862:40:33",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7186,
              "nodeType": "Block",
              "src": "1063:186:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7167,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7149,
                            "src": "1098:3:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 7168,
                            "name": "_chainId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7151,
                            "src": "1103:8:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 7169,
                            "name": "_origin",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7153,
                            "src": "1113:7:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 7170,
                            "name": "_issuer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7155,
                            "src": "1122:7:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 7171,
                            "name": "_symbol",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7157,
                            "src": "1131:7:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7165,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7141,
                            "src": "1084:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                              "typeString": "struct TokenList.tokenMap storage ref"
                            }
                          },
                          "id": 7166,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "insert",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4577,
                          "src": "1084:13:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,uint256,uint256,bytes32,string memory,string memory) returns (bool)"
                          }
                        },
                        "id": 7172,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1084:55:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "61646420746f6b656e206661696c6564",
                        "id": 7173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1147:18:33",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7bec5e121557aeae50addbab38afd9cd717c1aba6007b894b3ab9357207fb2f6",
                          "typeString": "literal_string \"add token failed\""
                        },
                        "value": "add token failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7bec5e121557aeae50addbab38afd9cd717c1aba6007b894b3ab9357207fb2f6",
                          "typeString": "literal_string \"add token failed\""
                        }
                      ],
                      "id": 7164,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "1069:7:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7174,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1069:102:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7175,
                  "nodeType": "ExpressionStatement",
                  "src": "1069:102:33"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7177,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7149,
                        "src": "1186:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7178,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7151,
                        "src": "1191:8:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7179,
                        "name": "_origin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7153,
                        "src": "1201:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7180,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7155,
                        "src": "1210:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7181,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7157,
                        "src": "1219:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 7176,
                      "name": "Add",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7135,
                      "src": "1182:3:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,uint256,bytes32,string memory,string memory)"
                      }
                    },
                    "id": 7182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1182:45:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7183,
                  "nodeType": "EmitStatement",
                  "src": "1177:50:33"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 7184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1240:4:33",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 7163,
                  "id": 7185,
                  "nodeType": "Return",
                  "src": "1233:11:33"
                }
              ]
            },
            "documentation": null,
            "id": 7187,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 7160,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7159,
                  "name": "onlyPrivileged",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6642,
                  "src": "1033:14:33",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1033:14:33"
              }
            ],
            "name": "insert",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7149,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "927:11:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7148,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7151,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "944:16:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7150,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "944:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7153,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "966:15:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7152,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "966:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7155,
                  "name": "_issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "987:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7154,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "987:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7157,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "1007:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7156,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1007:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "921:104:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7162,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7187,
                  "src": "1057:4:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7161,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:4:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1056:6:33"
            },
            "scope": 7311,
            "src": "906:343:33",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7210,
              "nodeType": "Block",
              "src": "1319:100:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7199,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7189,
                            "src": "1347:3:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7197,
                            "name": "tokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7141,
                            "src": "1333:6:33",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                              "typeString": "struct TokenList.tokenMap storage ref"
                            }
                          },
                          "id": 7198,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "remove",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 4690,
                          "src": "1333:13:33",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                            "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) returns (bool)"
                          }
                        },
                        "id": 7200,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1333:18:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "72656d6f766520746f6b656e206661696c6564",
                        "id": 7201,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1353:21:33",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a7e28bedd7228732134f62da631cbf5af8f47a10249ba390d76632e4e327ab53",
                          "typeString": "literal_string \"remove token failed\""
                        },
                        "value": "remove token failed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a7e28bedd7228732134f62da631cbf5af8f47a10249ba390d76632e4e327ab53",
                          "typeString": "literal_string \"remove token failed\""
                        }
                      ],
                      "id": 7196,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        9044,
                        9045
                      ],
                      "referencedDeclaration": 9045,
                      "src": "1325:7:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7202,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1325:50:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7203,
                  "nodeType": "ExpressionStatement",
                  "src": "1325:50:33"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7205,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7189,
                        "src": "1393:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7204,
                      "name": "Remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7139,
                      "src": "1386:6:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 7206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1386:11:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7207,
                  "nodeType": "EmitStatement",
                  "src": "1381:16:33"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 7208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1410:4:33",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 7195,
                  "id": 7209,
                  "nodeType": "Return",
                  "src": "1403:11:33"
                }
              ]
            },
            "documentation": null,
            "id": 7211,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 7192,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7191,
                  "name": "onlyPrivileged",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6642,
                  "src": "1289:14:33",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1289:14:33"
              }
            ],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7190,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7189,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 7211,
                  "src": "1269:11:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7188,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1269:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1268:13:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7194,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7211,
                  "src": "1313:4:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7193,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1313:4:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1312:6:33"
            },
            "scope": 7311,
            "src": "1253:166:33",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7223,
              "nodeType": "Block",
              "src": "1490:34:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7220,
                        "name": "_idx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7213,
                        "src": "1514:4:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7218,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "1503:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7219,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "get",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4726,
                      "src": "1503:10:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_struct$_element_$4035_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (struct TokenList.element memory)"
                      }
                    },
                    "id": 7221,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1503:16:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "functionReturnParameters": 7217,
                  "id": 7222,
                  "nodeType": "Return",
                  "src": "1496:23:33"
                }
              ]
            },
            "documentation": null,
            "id": 7224,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7214,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7213,
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 7224,
                  "src": "1436:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7212,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1436:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1435:14:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7217,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7216,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7224,
                  "src": "1471:17:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7215,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1471:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1470:19:33"
            },
            "scope": 7311,
            "src": "1423:101:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7236,
              "nodeType": "Block",
              "src": "1598:37:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7233,
                        "name": "_id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7226,
                        "src": "1626:3:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7231,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "1611:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7232,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getById",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4752,
                      "src": "1611:14:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$returns$_t_struct$_element_$4035_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256) view returns (struct TokenList.element memory)"
                      }
                    },
                    "id": 7234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1611:19:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "functionReturnParameters": 7230,
                  "id": 7235,
                  "nodeType": "Return",
                  "src": "1604:26:33"
                }
              ]
            },
            "documentation": null,
            "id": 7237,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getById",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7226,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 7237,
                  "src": "1545:11:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7225,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1545:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1544:13:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7230,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7229,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7237,
                  "src": "1579:17:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7228,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1579:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1578:19:33"
            },
            "scope": 7311,
            "src": "1528:107:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7252,
              "nodeType": "Block",
              "src": "1748:55:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7248,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7239,
                        "src": "1780:8:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7249,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7241,
                        "src": "1790:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7246,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "1761:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7247,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBySymbol",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4787,
                      "src": "1761:18:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_struct$_element_$4035_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256,string memory) view returns (struct TokenList.element memory)"
                      }
                    },
                    "id": 7250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1761:37:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "functionReturnParameters": 7245,
                  "id": 7251,
                  "nodeType": "Return",
                  "src": "1754:44:33"
                }
              ]
            },
            "documentation": null,
            "id": 7253,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getBySymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7242,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7239,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7253,
                  "src": "1660:16:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7238,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1660:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7241,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 7253,
                  "src": "1678:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7240,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1678:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1659:34:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7245,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7244,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7253,
                  "src": "1727:17:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7243,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1727:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1726:19:33"
            },
            "scope": 7311,
            "src": "1639:164:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7268,
              "nodeType": "Block",
              "src": "1916:55:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7264,
                        "name": "_chainId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7255,
                        "src": "1948:8:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7265,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7257,
                        "src": "1958:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7262,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "1929:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7263,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getByIssuer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4822,
                      "src": "1929:18:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_struct$_element_$4035_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256,string memory) view returns (struct TokenList.element memory)"
                      }
                    },
                    "id": 7266,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1929:37:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                      "typeString": "struct TokenList.element memory"
                    }
                  },
                  "functionReturnParameters": 7261,
                  "id": 7267,
                  "nodeType": "Return",
                  "src": "1922:44:33"
                }
              ]
            },
            "documentation": null,
            "id": 7269,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getByIssuer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7258,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7255,
                  "name": "_chainId",
                  "nodeType": "VariableDeclaration",
                  "scope": 7269,
                  "src": "1828:16:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7254,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1828:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7257,
                  "name": "_issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 7269,
                  "src": "1846:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7256,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1846:6:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1827:34:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7261,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7260,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7269,
                  "src": "1895:17:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_element_$4035_memory_ptr",
                    "typeString": "struct TokenList.element"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7259,
                    "name": "TokenList.element",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4035,
                    "src": "1895:17:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                      "typeString": "struct TokenList.element"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1894:19:33"
            },
            "scope": 7311,
            "src": "1807:164:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7282,
              "nodeType": "Block",
              "src": "2070:46:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7279,
                        "name": "_origin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7271,
                        "src": "2103:7:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7277,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "2083:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7278,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCrossList",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4899,
                      "src": "2083:19:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_bytes32_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,bytes32) view returns (struct TokenList.element memory[] memory)"
                      }
                    },
                    "id": 7280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2083:28:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "functionReturnParameters": 7276,
                  "id": 7281,
                  "nodeType": "Return",
                  "src": "2076:35:33"
                }
              ]
            },
            "documentation": null,
            "id": 7283,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCrossList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7272,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7271,
                  "name": "_origin",
                  "nodeType": "VariableDeclaration",
                  "scope": 7283,
                  "src": "1997:15:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7270,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1997:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1996:17:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7275,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7283,
                  "src": "2047:19:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                    "typeString": "struct TokenList.element[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7273,
                      "name": "TokenList.element",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4035,
                      "src": "2047:17:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      }
                    },
                    "id": 7274,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2047:19:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                      "typeString": "struct TokenList.element[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2046:21:33"
            },
            "scope": 7311,
            "src": "1975:141:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7299,
              "nodeType": "Block",
              "src": "2230:46:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7295,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7285,
                        "src": "2258:4:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7296,
                        "name": "_count",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7287,
                        "src": "2264:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7293,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "2243:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7294,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getList",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4972,
                      "src": "2243:14:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer,uint256,uint256) view returns (struct TokenList.element memory[] memory)"
                      }
                    },
                    "id": 7297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2243:28:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                      "typeString": "struct TokenList.element memory[] memory"
                    }
                  },
                  "functionReturnParameters": 7292,
                  "id": 7298,
                  "nodeType": "Return",
                  "src": "2236:35:33"
                }
              ]
            },
            "documentation": null,
            "id": 7300,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getList",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7285,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 7300,
                  "src": "2137:12:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7284,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2137:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7287,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 7300,
                  "src": "2151:14:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7286,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2151:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2136:30:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7292,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7291,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7300,
                  "src": "2200:19:33",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_element_$4035_memory_$dyn_memory_ptr",
                    "typeString": "struct TokenList.element[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7289,
                      "name": "TokenList.element",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4035,
                      "src": "2200:17:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_element_$4035_storage_ptr",
                        "typeString": "struct TokenList.element"
                      }
                    },
                    "id": 7290,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2200:19:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_element_$4035_storage_$dyn_storage_ptr",
                      "typeString": "struct TokenList.element[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2199:28:33"
            },
            "scope": 7311,
            "src": "2120:156:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7309,
              "nodeType": "Block",
              "src": "2327:32:33",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7305,
                        "name": "tokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7141,
                        "src": "2340:6:33",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_tokenMap_$4056_storage",
                          "typeString": "struct TokenList.tokenMap storage ref"
                        }
                      },
                      "id": 7306,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "count",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4702,
                      "src": "2340:12:33",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_tokenMap_$4056_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_tokenMap_$4056_storage_ptr_$",
                        "typeString": "function (struct TokenList.tokenMap storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 7307,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2340:14:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7304,
                  "id": 7308,
                  "nodeType": "Return",
                  "src": "2333:21:33"
                }
              ]
            },
            "documentation": null,
            "id": 7310,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "count",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7301,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2294:2:33"
            },
            "payable": false,
            "returnParameters": {
              "id": 7304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7303,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7310,
                  "src": "2318:7:33",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7302,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2318:7:33",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2317:9:33"
            },
            "scope": 7311,
            "src": "2280:79:33",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 7312,
        "src": "561:1800:33"
      }
    ],
    "src": "0:2362:33"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.16",
  "updatedAt": "2021-03-06T09:30:01.061Z",
  "devdoc": {
    "methods": {
      "renounceOwnership()": {
        "details": "放弃合约的所有权，注意，合约没有任何人可以拥有了，那么很多拥有者应该有的能力，都不能访问了"
      }
    }
  },
  "userdoc": {
    "methods": {}
  }
}